From bfdb91a734b6564e82181879086a024cdbe5a165 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 11 Aug 2021 07:10:38 +0300 Subject: [PATCH 01/32] init --- package-lock.json | 14 ++--- package.json | 2 +- tests/compiler/resolve-binary.optimized.wat | 59 +++++++++++---------- 3 files changed, 38 insertions(+), 37 deletions(-) diff --git a/package-lock.json b/package-lock.json index 403438e4fe..7d70380877 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "101.0.0-nightly.20210723", + "binaryen": "101.0.0-nightly.20210811", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" @@ -732,9 +732,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "101.0.0-nightly.20210723", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz", - "integrity": "sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA==", + "version": "101.0.0-nightly.20210811", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210811.tgz", + "integrity": "sha512-ErNA3ygqnBO66brhfGpqIbwM7YGlSR3iapVXdqSHmC6BDpXPTamT66uPG//ahXEMeuICXhigF4Z+q7Be8RgWmQ==", "bin": { "wasm-opt": "bin/wasm-opt" } @@ -3497,9 +3497,9 @@ "dev": true }, "binaryen": { - "version": "101.0.0-nightly.20210723", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210723.tgz", - "integrity": "sha512-eioJNqhHlkguVSbblHOtLqlhtC882SOEPKmNFZaDuz1hzQjolxZ+eu3/kaS10n3sGPONsIZsO7R9fR00UyhEUA==" + "version": "101.0.0-nightly.20210811", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210811.tgz", + "integrity": "sha512-ErNA3ygqnBO66brhfGpqIbwM7YGlSR3iapVXdqSHmC6BDpXPTamT66uPG//ahXEMeuICXhigF4Z+q7Be8RgWmQ==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 3567e682e3..0cd0d61887 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "101.0.0-nightly.20210723", + "binaryen": "101.0.0-nightly.20210811", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index 346530940b..6a1c5c2f52 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -3872,10 +3872,11 @@ (func $~lib/number/F64#toString (result i32) (local $0 i64) (local $1 i64) - (local $2 i64) + (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i64) + (local $4 i64) + (local $5 f64) + (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3903,34 +3904,34 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $0 + local.tee $1 i64.const 32 i64.shr_u - local.set $2 - local.get $0 + local.set $4 + local.get $1 i64.const 4294967295 i64.and - local.tee $0 + local.tee $1 i64.const 31 i64.shl - local.get $0 + local.get $1 i64.const 10 i64.shl i64.const 32 i64.shr_u i64.add - local.set $1 - local.get $2 + local.set $0 + local.get $4 i64.const 31 i64.shl - local.get $0 + local.get $1 i64.const 31 i64.shl - local.tee $5 + local.tee $6 i64.const 32 i64.shr_u i64.add - local.get $5 + local.get $6 i64.const 4294967295 i64.and i64.const 2147483647 @@ -3939,20 +3940,20 @@ i64.shr_u i64.add global.get $~lib/util/number/_exp_pow - local.tee $4 + local.tee $2 i32.const 3 i32.add - local.get $2 + local.get $4 i64.const 31 i64.shl - local.get $1 + local.get $0 i64.const 32 i64.shr_u i64.add - local.get $1 + local.get $0 i64.const 4294967295 i64.and - local.get $2 + local.get $4 i64.const 10 i64.shl i64.add @@ -3963,31 +3964,31 @@ i64.add i64.const 1 i64.sub - local.tee $1 - local.get $4 + local.tee $0 + local.get $2 i32.const 3 i32.add - local.get $1 - local.get $2 + local.get $0 + local.get $4 i64.const 2147483647 i64.mul - local.get $0 + local.get $1 i64.const 2147483647 i64.mul - local.get $0 + local.get $1 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $1 + local.tee $0 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $4 i64.const 4294966784 i64.mul - local.get $1 + local.get $0 i64.const 4294967295 i64.and i64.add @@ -4007,14 +4008,14 @@ local.get $3 i32.const 1 i32.shl - local.tee $4 + local.tee $2 i32.const 1 call $~lib/rt/itcms/__new local.tee $3 i32.store local.get $3 i32.const 9760 - local.get $4 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 From 8f742c636922d0dac9f59b8c53cef64a19ca7982 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 13 Aug 2021 07:48:01 +0300 Subject: [PATCH 02/32] update --- package-lock.json | 54 ++++++++++++++++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 38 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d70380877..934897365e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "101.0.0-nightly.20210811", + "binaryen": "101.0.0-nightly.20210813", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" @@ -712,6 +712,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -732,9 +733,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "101.0.0-nightly.20210811", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210811.tgz", - "integrity": "sha512-ErNA3ygqnBO66brhfGpqIbwM7YGlSR3iapVXdqSHmC6BDpXPTamT66uPG//ahXEMeuICXhigF4Z+q7Be8RgWmQ==", + "version": "101.0.0-nightly.20210813", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210813.tgz", + "integrity": "sha512-zrow7BywSHkHLRQJXovXlpN7X6u8plcRANWz0XOrJ7wNu3EDCBKeWodZndIdQY3+80wbbysUMZrfSEonj73uBg==", "bin": { "wasm-opt": "bin/wasm-opt" } @@ -787,7 +788,8 @@ "node_modules/buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true }, "node_modules/callsites": { "version": "3.1.0", @@ -1813,7 +1815,8 @@ "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, "node_modules/merge-stream": { "version": "2.0.0", @@ -1888,12 +1891,14 @@ "node_modules/minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "node_modules/mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, "dependencies": { "minimist": "^1.2.5" }, @@ -2430,6 +2435,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, "engines": { "node": ">=0.10.0" } @@ -2438,6 +2444,7 @@ "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -2647,6 +2654,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-6.2.0.tgz", "integrity": "sha512-ZNT+OEGfUNVMGkpIaDJJ44Zq3Yr0bkU/ugN1PHbU+/01Z7UV1fsELRiTx1KuQNvQ1A3pGh3y25iYF6jXgxV21A==", + "dev": true, "dependencies": { "arrify": "^1.0.0", "buffer-from": "^1.1.0", @@ -2668,6 +2676,7 @@ "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true, "engines": { "node": ">=0.3.1" } @@ -2941,6 +2950,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true, "engines": { "node": ">=4" } @@ -3482,7 +3492,8 @@ "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true }, "astral-regex": { "version": "2.0.0", @@ -3497,9 +3508,9 @@ "dev": true }, "binaryen": { - "version": "101.0.0-nightly.20210811", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210811.tgz", - "integrity": "sha512-ErNA3ygqnBO66brhfGpqIbwM7YGlSR3iapVXdqSHmC6BDpXPTamT66uPG//ahXEMeuICXhigF4Z+q7Be8RgWmQ==" + "version": "101.0.0-nightly.20210813", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210813.tgz", + "integrity": "sha512-zrow7BywSHkHLRQJXovXlpN7X6u8plcRANWz0XOrJ7wNu3EDCBKeWodZndIdQY3+80wbbysUMZrfSEonj73uBg==" }, "brace-expansion": { "version": "1.1.11", @@ -3536,7 +3547,8 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true }, "callsites": { "version": "3.1.0", @@ -4325,7 +4337,8 @@ "make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true }, "merge-stream": { "version": "2.0.0", @@ -4382,12 +4395,14 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "mkdirp": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, "requires": { "minimist": "^1.2.5" } @@ -4754,12 +4769,14 @@ "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true }, "source-map-support": { "version": "0.5.19", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -4916,6 +4933,7 @@ "version": "6.2.0", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-6.2.0.tgz", "integrity": "sha512-ZNT+OEGfUNVMGkpIaDJJ44Zq3Yr0bkU/ugN1PHbU+/01Z7UV1fsELRiTx1KuQNvQ1A3pGh3y25iYF6jXgxV21A==", + "dev": true, "requires": { "arrify": "^1.0.0", "buffer-from": "^1.1.0", @@ -4930,7 +4948,8 @@ "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true } } }, @@ -5119,7 +5138,8 @@ "yn": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true }, "yocto-queue": { "version": "0.1.0", diff --git a/package.json b/package.json index 0cd0d61887..45a7b97acf 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "101.0.0-nightly.20210811", + "binaryen": "101.0.0-nightly.20210813", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" From ad62850b6640946712ac23ff83b7fd0b8c735949 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 13 Aug 2021 14:04:23 +0300 Subject: [PATCH 03/32] update fixtures --- tests/compiler/resolve-binary.optimized.wat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index d5c86c9763..f09953a61a 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -3964,7 +3964,7 @@ (func $~lib/number/F64#toString (result i32) (local $0 i64) (local $1 i64) - (local $2 i32) + (local $2 i64) (local $3 i32) (local $4 i64) (local $5 i32) From 324ad408ea19f6cb6c5f2a8e7ee2dd5971117b38 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 14 Aug 2021 10:22:05 +0300 Subject: [PATCH 04/32] update --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 934897365e..e99ac215bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "101.0.0-nightly.20210813", + "binaryen": "101.0.0-nightly.20210814", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" @@ -733,9 +733,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "101.0.0-nightly.20210813", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210813.tgz", - "integrity": "sha512-zrow7BywSHkHLRQJXovXlpN7X6u8plcRANWz0XOrJ7wNu3EDCBKeWodZndIdQY3+80wbbysUMZrfSEonj73uBg==", + "version": "101.0.0-nightly.20210814", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210814.tgz", + "integrity": "sha512-17KK+OfZzlZUY0pvS9rJcG3rh/Y+jqY7FoLS/KD+aEtHfHhp8RwIwKE9+F8CyK3kX7SuK4AFfibAm+2UqEz22g==", "bin": { "wasm-opt": "bin/wasm-opt" } @@ -3508,9 +3508,9 @@ "dev": true }, "binaryen": { - "version": "101.0.0-nightly.20210813", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210813.tgz", - "integrity": "sha512-zrow7BywSHkHLRQJXovXlpN7X6u8plcRANWz0XOrJ7wNu3EDCBKeWodZndIdQY3+80wbbysUMZrfSEonj73uBg==" + "version": "101.0.0-nightly.20210814", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210814.tgz", + "integrity": "sha512-17KK+OfZzlZUY0pvS9rJcG3rh/Y+jqY7FoLS/KD+aEtHfHhp8RwIwKE9+F8CyK3kX7SuK4AFfibAm+2UqEz22g==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 45a7b97acf..43c0b5f903 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "101.0.0-nightly.20210813", + "binaryen": "101.0.0-nightly.20210814", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" From bb820a9802e9bd7616612c2b21e14dc73a8951ce Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 14 Aug 2021 10:38:36 +0300 Subject: [PATCH 05/32] add zero filled memory option --- cli/asc.d.ts | 2 ++ cli/asc.js | 5 +++-- cli/asc.json | 6 ++++++ src/compiler.ts | 2 ++ src/glue/binaryen.d.ts | 2 ++ src/module.ts | 16 +++++++++++++++- 6 files changed, 30 insertions(+), 3 deletions(-) diff --git a/cli/asc.d.ts b/cli/asc.d.ts index 0fcc0a7524..3887d60105 100644 --- a/cli/asc.d.ts +++ b/cli/asc.d.ts @@ -139,6 +139,8 @@ export interface CompilerOptions { maximumMemory?: number; /** Declare memory as shared. Requires maximumMemory. */ sharedMemory?: boolean; + /** Assume that imported memory is zero filled. Requires importMemory. */ + zeroFilledMemory?: boolean; /** Sets the start offset of compiler-generated static memory. */ memoryBase?: number; /** Imports the function table provided as 'env.table'. */ diff --git a/cli/asc.js b/cli/asc.js index 095bad76a2..bd2ad47097 100644 --- a/cli/asc.js +++ b/cli/asc.js @@ -943,6 +943,7 @@ exports.main = function main(argv, options, callback) { // Optimize the module const debugInfo = opts.debug; const converge = opts.converge; + const zeroFilledMemory = opts.zeroFilledMemory; const runPasses = []; if (opts.runPasses) { if (typeof opts.runPasses === "string") { @@ -960,7 +961,7 @@ exports.main = function main(argv, options, callback) { stats.optimizeTime += measure(() => { stats.optimizeCount++; try { - module.optimize(optimizeLevel, shrinkLevel, debugInfo); + module.optimize(optimizeLevel, shrinkLevel, debugInfo, zeroFilledMemory); } catch (e) { crash("optimize", e); } @@ -979,7 +980,7 @@ exports.main = function main(argv, options, callback) { do { stats.optimizeCount++; try { - module.optimize(optimizeLevel, shrinkLevel, debugInfo); + module.optimize(optimizeLevel, shrinkLevel, debugInfo, zeroFilledMemory); } catch (e) { crash("optimize (converge)", e); } diff --git a/cli/asc.json b/cli/asc.json index 6e97f32ff3..e8b049cf63 100644 --- a/cli/asc.json +++ b/cli/asc.json @@ -156,6 +156,12 @@ "type": "b", "default": false }, + "zeroFilledMemory": { + "category": "Features", + "description": "Assume that imported memory is zero filled. Requires importMemory.", + "type": "b", + "default": false + }, "importTable": { "category": "Features", "description": "Imports the function table from 'env.table'.", diff --git a/src/compiler.ts b/src/compiler.ts index 0e0e06d405..eacc7d5713 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -225,6 +225,8 @@ export class Options { maximumMemory: u32 = 0; /** If true, memory is declared as shared. */ sharedMemory: bool = false; + /** If true, imported memory is zero filled. */ + zeroFilledMemory: bool = false; /** If true, imports the function table provided by the embedder. */ importTable: bool = false; /** If true, exports the function table. */ diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index b527040095..88ae557c75 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -599,6 +599,8 @@ export declare function _BinaryenGetDebugInfo(): bool; export declare function _BinaryenSetDebugInfo(on: bool): void; export declare function _BinaryenGetLowMemoryUnused(): bool; export declare function _BinaryenSetLowMemoryUnused(on: bool): void; +export declare function _BinaryenGetZeroFilledMemory(): bool; +export declare function _BinaryenSetZeroFilledMemory(on: bool): void; export declare function _BinaryenGetFastMath(): bool; export declare function _BinaryenSetFastMath(on: bool): void; export declare function _BinaryenGetPassArgument(key: StringRef): StringRef; diff --git a/src/module.ts b/src/module.ts index 2c91e9a1d5..42ad5a6a52 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2125,6 +2125,14 @@ export class Module { binaryen._BinaryenSetLowMemoryUnused(on); } + getZeroFilledMemory(): bool { + return binaryen._BinaryenGetLowMemoryUnused(); + } + + setZeroFilledMemory(on: bool): void { + binaryen._BinaryenSetLowMemoryUnused(on); + } + getFastMath(): bool { return binaryen._BinaryenGetFastMath(); } @@ -2207,13 +2215,19 @@ export class Module { for (let i = numNames - 1; i >= 0; --i) binaryen._free(cStrs[i]); } - optimize(optimizeLevel: i32, shrinkLevel: i32, debugInfo: bool = false): void { + optimize( + optimizeLevel: i32, + shrinkLevel: i32, + debugInfo: bool = false, + zeroFilledMemory: bool = false + ): void { // Implicitly run costly non-LLVM optimizations on -O3 or -Oz if (optimizeLevel >= 3 || shrinkLevel >= 2) optimizeLevel = 4; this.setOptimizeLevel(optimizeLevel); this.setShrinkLevel(shrinkLevel); this.setDebugInfo(debugInfo); + this.setZeroFilledMemory(zeroFilledMemory); this.setFastMath(true); this.clearPassArguments(); From bbf18f48a88a865f7455e0d7349ce85f6f489846 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 14 Aug 2021 12:54:34 +0300 Subject: [PATCH 06/32] better --- cli/asc.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cli/asc.js b/cli/asc.js index bd2ad47097..f1dfc427f3 100644 --- a/cli/asc.js +++ b/cli/asc.js @@ -943,7 +943,10 @@ exports.main = function main(argv, options, callback) { // Optimize the module const debugInfo = opts.debug; const converge = opts.converge; - const zeroFilledMemory = opts.zeroFilledMemory; + const zeroFilledMemory = opts.importMemory + ? opts.zeroFilledMemory + : false; + const runPasses = []; if (opts.runPasses) { if (typeof opts.runPasses === "string") { From d992804460b460e2ec8e90c4314a35c40367c2c8 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 18 Aug 2021 07:44:28 +0300 Subject: [PATCH 07/32] update --- package-lock.json | 14 +++++++------- package.json | 2 +- src/compiler.ts | 4 ++-- src/module.ts | 13 +++++++------ 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index e99ac215bf..349dcb2a5b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "101.0.0-nightly.20210814", + "binaryen": "101.0.0-nightly.20210818", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" @@ -733,9 +733,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "101.0.0-nightly.20210814", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210814.tgz", - "integrity": "sha512-17KK+OfZzlZUY0pvS9rJcG3rh/Y+jqY7FoLS/KD+aEtHfHhp8RwIwKE9+F8CyK3kX7SuK4AFfibAm+2UqEz22g==", + "version": "101.0.0-nightly.20210818", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210818.tgz", + "integrity": "sha512-fcl5CAiJ+OFHFEciIueTSEDZtWgOKQtnjMfwfBGP1dQx5f3fSx5/q7YzEGCCoB5gsBogJWlan11ccIhybbbijQ==", "bin": { "wasm-opt": "bin/wasm-opt" } @@ -3508,9 +3508,9 @@ "dev": true }, "binaryen": { - "version": "101.0.0-nightly.20210814", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210814.tgz", - "integrity": "sha512-17KK+OfZzlZUY0pvS9rJcG3rh/Y+jqY7FoLS/KD+aEtHfHhp8RwIwKE9+F8CyK3kX7SuK4AFfibAm+2UqEz22g==" + "version": "101.0.0-nightly.20210818", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210818.tgz", + "integrity": "sha512-fcl5CAiJ+OFHFEciIueTSEDZtWgOKQtnjMfwfBGP1dQx5f3fSx5/q7YzEGCCoB5gsBogJWlan11ccIhybbbijQ==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 43c0b5f903..6be9a60ec4 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "101.0.0-nightly.20210814", + "binaryen": "101.0.0-nightly.20210818", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" diff --git a/src/compiler.ts b/src/compiler.ts index eacc7d5713..9a7632c779 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -427,9 +427,9 @@ export class Compiler extends DiagnosticEmitter { var featureFlags: FeatureFlags = 0; if (options.hasFeature(Feature.SIGN_EXTENSION)) featureFlags |= FeatureFlags.SignExt; if (options.hasFeature(Feature.MUTABLE_GLOBALS)) featureFlags |= FeatureFlags.MutableGloabls; - if (options.hasFeature(Feature.NONTRAPPING_F2I)) featureFlags |= FeatureFlags.NontrappingFPToInt; + if (options.hasFeature(Feature.NONTRAPPING_F2I)) featureFlags |= FeatureFlags.TruncSat; if (options.hasFeature(Feature.BULK_MEMORY)) featureFlags |= FeatureFlags.BulkMemory; - if (options.hasFeature(Feature.SIMD)) featureFlags |= FeatureFlags.SIMD128; + if (options.hasFeature(Feature.SIMD)) featureFlags |= FeatureFlags.SIMD; if (options.hasFeature(Feature.THREADS)) featureFlags |= FeatureFlags.Atomics; if (options.hasFeature(Feature.EXCEPTION_HANDLING)) featureFlags |= FeatureFlags.ExceptionHandling; if (options.hasFeature(Feature.TAIL_CALLS)) featureFlags |= FeatureFlags.TailCall; diff --git a/src/module.ts b/src/module.ts index 42ad5a6a52..86691a5509 100644 --- a/src/module.ts +++ b/src/module.ts @@ -65,8 +65,8 @@ export enum FeatureFlags { MVP = 0 /* _BinaryenFeatureMVP */, Atomics = 1 /* _BinaryenFeatureAtomics */, MutableGloabls = 2 /* _BinaryenFeatureMutableGlobals */, - NontrappingFPToInt = 4 /* _BinaryenFeatureNontrappingFPToInt */, - SIMD128 = 8 /* _BinaryenFeatureSIMD128 */, + TruncSat = 4 /* _BinaryenFeatureNontrappingFPToInt */, + SIMD = 8 /* _BinaryenFeatureSIMD128 */, BulkMemory = 16 /* _BinaryenFeatureBulkMemory */, SignExt = 32 /* _BinaryenFeatureSignExt */, ExceptionHandling = 64 /* _BinaryenFeatureExceptionHandling */, @@ -75,8 +75,8 @@ export enum FeatureFlags { MultiValue = 512 /* _BinaryenFeatureMultivalue */, GC = 1024 /* _BinaryenFeatureGC */, Memory64 = 2048 /* _BinaryenFeatureMemory64 */, - TypedFunctionReferences = 4096 /* _BinaryenTypedFunctionReferences */, - All = 8191 /* _BinaryenFeatureAll */ + TypedFunctionReferences = 4096 /* _BinaryenFeatureTypedFunctionReferences */, + All = 16383 /* _BinaryenFeatureAll */ } /** Binaryen expression id constants. */ @@ -146,7 +146,7 @@ export enum ExpressionId { ArrayGet = 62 /* _BinaryenArrayGetId */, ArraySet = 63 /* _BinaryenArraySetId */, ArrayLen = 64 /* _BinaryenArrayLenId */, - RefAs = 65 /* _BinaryenRefAsId */ + RefAs = 66 /* _BinaryenRefAsId */ } /** Binaryen external kind constants. */ @@ -3058,7 +3058,8 @@ export enum SideEffects { IsAtomic = 512 /* _BinaryenSideEffectIsAtomic */, Throws = 1024 /* _BinaryenSideEffectThrows */, DanglingPop = 2048 /* _BinaryenSideEffectDanglingPop */, - Any = 4095 /* _BinaryenSideEffectAny */ + TrapsNeverHappen = 4096 /* _BinaryenSideEffectTrapsNeverHappen */, + Any = 8191 /* _BinaryenSideEffectAny */ } export function getSideEffects(expr: ExpressionRef, features: FeatureFlags = FeatureFlags.All): SideEffects { From 7aebe3153300293dfaba6623caf39e7c287e314f Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 18 Aug 2021 08:28:44 +0300 Subject: [PATCH 08/32] update fixtures --- tests/compiler/builtins.optimized.wat | 27 +- tests/compiler/call-super.optimized.wat | 237 +- tests/compiler/class-implements.optimized.wat | 74 +- .../class-overloading-cast.optimized.wat | 108 +- .../compiler/class-overloading.optimized.wat | 111 +- .../class-static-function.optimized.wat | 4 +- tests/compiler/class.optimized.wat | 110 +- tests/compiler/comma.optimized.wat | 28 +- tests/compiler/constructor.optimized.wat | 222 +- tests/compiler/do.optimized.wat | 67 +- .../empty-exportruntime.optimized.wat | 226 +- tests/compiler/empty-new.optimized.wat | 67 +- tests/compiler/exports.optimized.wat | 67 +- .../exportstar-rereexport.optimized.wat | 67 +- .../extends-baseaggregate.optimized.wat | 602 +- .../compiler/extends-recursive.optimized.wat | 70 +- tests/compiler/features/simd.optimized.wat | 197 +- .../field-initialization.optimized.wat | 183 +- tests/compiler/for.optimized.wat | 67 +- tests/compiler/function-call.optimized.wat | 67 +- .../function-expression.optimized.wat | 67 +- tests/compiler/getter-call.optimized.wat | 67 +- tests/compiler/heap.optimized.wat | 480 +- .../implicit-getter-setter.optimized.wat | 67 +- tests/compiler/infer-array.optimized.wat | 745 +- tests/compiler/infer-generic.optimized.wat | 78 +- tests/compiler/inlining.optimized.wat | 222 +- tests/compiler/instanceof-class.optimized.wat | 73 +- tests/compiler/issues/1095.optimized.wat | 70 +- tests/compiler/issues/1225.optimized.wat | 116 +- tests/compiler/issues/1699.optimized.wat | 688 +- tests/compiler/logical.optimized.wat | 67 +- tests/compiler/loop-flow.optimized.wat | 28 +- tests/compiler/managed-cast.optimized.wat | 191 +- tests/compiler/memcpy.optimized.wat | 430 +- tests/compiler/memset.optimized.wat | 64 +- tests/compiler/new.optimized.wat | 67 +- tests/compiler/number.optimized.wat | 723 +- tests/compiler/object-literal.optimized.wat | 672 +- .../optional-typeparameters.optimized.wat | 73 +- tests/compiler/reexport.optimized.wat | 67 +- tests/compiler/rereexport.optimized.wat | 67 +- tests/compiler/resolve-access.optimized.wat | 1001 +- tests/compiler/resolve-binary.optimized.wat | 867 +- .../resolve-elementaccess.optimized.wat | 862 +- .../resolve-function-expression.optimized.wat | 285 +- tests/compiler/resolve-nested.optimized.wat | 67 +- tests/compiler/resolve-new.optimized.wat | 71 +- .../resolve-propertyaccess.optimized.wat | 240 +- tests/compiler/resolve-ternary.optimized.wat | 743 +- tests/compiler/resolve-unary.optimized.wat | 282 +- tests/compiler/retain-i32.optimized.wat | 3 - tests/compiler/rt/finalize.optimized.wat | 67 +- tests/compiler/rt/instanceof.optimized.wat | 67 +- .../runtime-incremental-export.optimized.wat | 226 +- .../rt/runtime-minimal-export.optimized.wat | 137 +- .../rt/runtime-stub-export.optimized.wat | 4 +- tests/compiler/std-wasi/console.optimized.wat | 219 +- tests/compiler/std-wasi/crypto.optimized.wat | 2617 +-- tests/compiler/std-wasi/process.optimized.wat | 770 +- tests/compiler/std/array-access.optimized.wat | 86 +- .../compiler/std/array-literal.optimized.wat | 251 +- tests/compiler/std/array.optimized.wat | 10807 +++++----- tests/compiler/std/arraybuffer.optimized.wat | 571 +- tests/compiler/std/dataview.optimized.wat | 116 +- tests/compiler/std/date.optimized.wat | 1470 +- tests/compiler/std/hash.optimized.wat | 14 +- tests/compiler/std/map.optimized.wat | 4829 ++--- tests/compiler/std/math.optimized.wat | 1405 +- tests/compiler/std/mod.optimized.wat | 64 +- tests/compiler/std/new.optimized.wat | 67 +- .../std/operator-overloading.optimized.wat | 378 +- tests/compiler/std/pointer.optimized.wat | 487 +- tests/compiler/std/set.optimized.wat | 1238 +- tests/compiler/std/static-array.optimized.wat | 737 +- tests/compiler/std/staticarray.optimized.wat | 645 +- .../std/string-casemapping.optimized.wat | 1005 +- .../std/string-encoding.optimized.wat | 1131 +- tests/compiler/std/string.optimized.wat | 1491 +- tests/compiler/std/symbol.optimized.wat | 648 +- tests/compiler/std/trace.optimized.wat | 4 +- tests/compiler/std/typedarray.optimized.wat | 16771 ++++++++-------- tests/compiler/std/uri.optimized.wat | 838 +- tests/compiler/super-inline.optimized.wat | 70 +- tests/compiler/tablebase.optimized.wat | 4 +- tests/compiler/templateliteral.optimized.wat | 1565 +- tests/compiler/throw.optimized.wat | 56 +- tests/compiler/typeof.optimized.wat | 67 +- tests/compiler/unary.optimized.wat | 35 +- tests/compiler/wasi/abort.optimized.wat | 8 +- tests/compiler/wasi/seed.optimized.wat | 12 +- tests/compiler/wasi/trace.optimized.wat | 925 +- tests/compiler/while.optimized.wat | 67 +- 93 files changed, 34340 insertions(+), 29773 deletions(-) diff --git a/tests/compiler/builtins.optimized.wat b/tests/compiler/builtins.optimized.wat index 9fb655e61a..97c3dc14d9 100644 --- a/tests/compiler/builtins.optimized.wat +++ b/tests/compiler/builtins.optimized.wat @@ -218,10 +218,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i64.const 0 i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 i32.const 31 @@ -451,21 +450,6 @@ i32.load global.set $builtins/i i32.const 8 - i32.load8_u - drop - i32.const 8 - i32.load16_u - drop - i32.const 8 - i32.load - drop - i32.const 8 - i32.load8_s - drop - i32.const 8 - i32.load16_s - drop - i32.const 8 i32.load drop i32.const 8 @@ -579,10 +563,9 @@ i32.const 1168 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 i32.const 1056 @@ -607,10 +590,9 @@ i32.const 1168 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1200 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1200 i32.store offset=4 i32.const 1200 @@ -706,10 +688,9 @@ f64.const 24 call $~lib/builtins/trace global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1376 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1376 i32.store offset=4 i32.const 1376 diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index fb546c7cc1..c3b5dd33e3 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -99,8 +99,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -160,11 +160,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -178,10 +178,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -218,11 +218,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -283,19 +283,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -361,22 +361,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -624,13 +626,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -667,11 +672,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -695,11 +700,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -1082,8 +1087,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1245,12 +1249,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1266,20 +1270,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1287,15 +1291,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1306,13 +1311,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1320,34 +1325,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1361,16 +1366,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1378,18 +1383,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1401,11 +1406,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1440 @@ -1414,13 +1419,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1433,54 +1439,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1490,33 +1497,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1532,18 +1540,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1552,18 +1560,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1572,10 +1580,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1584,20 +1592,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1612,10 +1620,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1632,16 +1640,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1664,8 +1672,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1835,7 +1843,7 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1875,7 +1883,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store local.get $0 @@ -1972,7 +1979,7 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2000,7 +2007,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store local.get $0 @@ -2093,7 +2099,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2133,7 +2139,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store local.get $0 @@ -2205,7 +2210,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2233,7 +2238,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store local.get $0 @@ -2305,7 +2309,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2333,7 +2337,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store local.get $0 diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index 6ca4cd18b7..e5cd45dfdc 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -121,8 +121,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -182,11 +182,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -200,10 +200,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1504 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -240,11 +240,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -305,19 +305,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -383,22 +383,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -646,13 +648,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -689,11 +694,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -717,11 +722,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1104,8 +1109,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1124,11 +1128,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1138,12 +1142,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1156,7 +1160,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1165,6 +1168,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1211,13 +1215,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1346,18 +1350,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1374,19 +1373,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -1444,7 +1443,6 @@ unreachable ) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1505,10 +1503,9 @@ call $class-implements/C#constructor global.set $class-implements/c global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-implements/c i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1549,6 +1546,7 @@ ) (func $class-implements/C#constructor (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1572,6 +1570,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1595,7 +1594,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index f183e1991e..e9deb91f82 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -135,8 +135,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -196,11 +196,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -214,10 +214,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1616 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -254,11 +254,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -319,19 +319,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -397,22 +397,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -660,13 +662,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -703,11 +708,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -731,11 +736,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1118,8 +1123,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1138,11 +1142,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1152,12 +1156,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1170,7 +1174,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1179,6 +1182,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1225,13 +1229,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1360,18 +1364,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1388,19 +1387,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -1594,6 +1593,7 @@ (func $start:class-overloading-cast (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1716,7 +1716,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1740,7 +1740,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1750,23 +1749,22 @@ local.get $0 global.set $class-overloading-cast/v3 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading-cast/v - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) block $default block $case1 - local.get $1 + local.get $0 i32.const 8 i32.sub i32.load - local.tee $1 + local.tee $0 i32.const 3 i32.ne if - local.get $1 + local.get $0 i32.const 5 i32.eq br_if $case1 @@ -1780,12 +1778,12 @@ end i32.const 1456 end - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1834,12 +1832,12 @@ i32.const 6 i32.eq select - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1488 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1869,7 +1867,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1893,7 +1891,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1915,10 +1912,10 @@ i32.sub i32.load drop - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1456 i32.store offset=4 i32.const 1456 @@ -1935,13 +1932,14 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $class-overloading-cast/c local.tee $1 + global.get $class-overloading-cast/c + local.tee $2 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1600 i32.store offset=12 - local.get $1 + local.get $2 i32.const 8 i32.sub i32.load diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index 614313239d..5527e883bb 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -159,8 +159,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -220,11 +220,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -238,10 +238,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1792 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -278,11 +278,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -343,19 +343,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -421,22 +421,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -684,13 +686,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -727,11 +732,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -755,11 +760,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -1142,8 +1147,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1162,11 +1166,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1176,12 +1180,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1194,7 +1198,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1203,6 +1206,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1249,13 +1253,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1384,18 +1388,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1412,19 +1411,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -1768,14 +1767,13 @@ local.get $0 call $class-overloading/A#a@virtual global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -1984,14 +1982,13 @@ i32.store call $class-overloading/C#a global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1616 call $~lib/string/String.__eq i32.eqz @@ -2091,14 +2088,13 @@ local.get $0 call $class-overloading/A#a@virtual global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2282,14 +2278,13 @@ local.get $0 call $class-overloading/A#a@virtual global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2498,14 +2493,13 @@ local.get $0 call $class-overloading/A#a@virtual global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $class-overloading/which - local.tee $1 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1648 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -2849,7 +2843,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2873,7 +2867,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2924,7 +2917,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2948,7 +2941,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -3000,6 +2992,7 @@ ) (func $class-overloading/B#constructor (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3023,6 +3016,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3046,7 +3040,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-static-function.optimized.wat b/tests/compiler/class-static-function.optimized.wat index 3f47129a82..0eb6807c75 100644 --- a/tests/compiler/class-static-function.optimized.wat +++ b/tests/compiler/class-static-function.optimized.wat @@ -17,7 +17,6 @@ i32.const 42 ) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -34,10 +33,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index eded372932..a2b0cece7c 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -92,8 +92,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -153,11 +153,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -171,10 +171,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1536 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -211,11 +211,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -295,19 +295,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -373,22 +373,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -636,13 +638,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -679,11 +684,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -707,11 +712,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1094,8 +1099,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1461,13 +1465,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1482,7 +1486,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1519,7 +1524,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1528,6 +1532,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1588,12 +1593,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1392 @@ -1606,8 +1611,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1621,7 +1627,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1630,15 +1636,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1653,22 +1659,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1678,37 +1685,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1716,7 +1724,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 diff --git a/tests/compiler/comma.optimized.wat b/tests/compiler/comma.optimized.wat index 29a41112be..30a6004906 100644 --- a/tests/compiler/comma.optimized.wat +++ b/tests/compiler/comma.optimized.wat @@ -13,11 +13,11 @@ (local $0 i32) (local $1 i32) global.get $comma/a - local.tee $0 + local.tee $1 i32.const 1 i32.add global.set $comma/a - local.get $0 + local.get $1 global.set $comma/b global.get $comma/a i32.const 1 @@ -44,9 +44,8 @@ i32.add global.set $comma/a global.get $comma/a - local.tee $0 global.set $comma/b - local.get $0 + global.get $comma/a i32.const 2 i32.ne if @@ -82,34 +81,23 @@ global.set $comma/b i32.const 2 global.set $comma/a - global.get $comma/b - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 19 - i32.const 1 - call $~lib/builtins/abort - unreachable - end loop $for-loop|0 - local.get $1 global.get $comma/a - i32.lt_s + local.get $0 + i32.gt_s if global.get $comma/a i32.const 1 i32.sub global.set $comma/a - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end - local.get $1 + local.get $0 i32.const 1 i32.ne if diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index 62e050820e..c3b58f47de 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -176,8 +176,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -237,11 +237,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -255,10 +255,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -295,11 +295,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -360,19 +360,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -438,22 +438,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -701,13 +703,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -744,11 +749,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -772,11 +777,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1159,8 +1164,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1322,12 +1326,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1343,20 +1347,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1364,15 +1368,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1383,13 +1388,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1397,34 +1402,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1438,16 +1443,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1455,18 +1460,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1478,11 +1483,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1392 @@ -1491,13 +1496,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1510,54 +1516,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1567,33 +1574,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1609,18 +1617,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1629,18 +1637,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1649,10 +1657,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1661,20 +1669,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1689,10 +1697,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1709,16 +1717,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1741,8 +1749,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index d99c6cceeb..ea6b6474cf 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -99,8 +99,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -160,11 +160,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -178,10 +178,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1472 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -218,11 +218,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -283,19 +283,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -361,22 +361,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -624,13 +626,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -667,11 +672,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -695,11 +700,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -1082,8 +1087,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1102,11 +1106,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1116,12 +1120,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1134,7 +1138,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1143,6 +1146,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1685,13 +1689,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1820,18 +1824,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1848,19 +1847,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 - local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 1178f405c9..6471fed617 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -146,8 +146,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -177,10 +177,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1568 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -217,11 +217,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -301,19 +301,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -379,22 +379,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -642,13 +644,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -685,11 +690,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -713,11 +718,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1100,8 +1105,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1263,12 +1267,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1284,20 +1288,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1305,15 +1309,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1324,13 +1329,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1338,34 +1343,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1379,16 +1384,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1396,18 +1401,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1419,11 +1424,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1392 @@ -1432,13 +1437,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1451,54 +1457,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1508,33 +1515,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1550,18 +1558,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1570,18 +1578,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1590,10 +1598,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1602,20 +1610,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1630,10 +1638,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1650,16 +1658,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1682,8 +1690,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1764,11 +1772,11 @@ local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $3 @@ -1816,19 +1824,19 @@ i32.load offset=8 local.set $1 local.get $0 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $0 local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index ca6a7070f4..d77208c668 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -95,8 +95,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -156,11 +156,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -174,10 +174,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -214,11 +214,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -279,19 +279,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -357,22 +357,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -620,13 +622,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -663,11 +668,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -691,11 +696,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1078,8 +1083,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1098,11 +1102,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1112,12 +1116,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1130,7 +1134,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1139,6 +1142,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1243,13 +1247,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1378,18 +1382,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1406,19 +1405,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 - local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index 16332c0eca..c1aed13673 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -149,8 +149,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -210,11 +210,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -228,10 +228,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -268,11 +268,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -333,19 +333,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -411,22 +411,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -674,13 +676,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -717,11 +722,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -745,11 +750,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1132,8 +1137,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1152,11 +1156,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1166,12 +1170,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1184,7 +1188,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1193,6 +1196,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1239,13 +1243,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1374,18 +1378,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1402,19 +1401,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index 389f2644bf..b7aa72ea7f 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -150,8 +150,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -211,11 +211,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -229,10 +229,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1536 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -269,11 +269,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -334,19 +334,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -412,22 +412,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -675,13 +677,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -718,11 +723,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -746,11 +751,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -1133,8 +1138,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1153,11 +1157,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1167,12 +1171,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1185,7 +1189,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1194,6 +1197,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1428,13 +1432,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1563,18 +1567,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1591,19 +1590,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 - local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index ddb37e01f6..ba206a97de 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -98,8 +98,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -159,11 +159,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -177,10 +177,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1696 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1408 i32.const 1472 @@ -217,11 +217,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -301,19 +301,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -379,22 +379,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -642,13 +644,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -685,11 +690,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1552 @@ -713,11 +718,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1552 @@ -1100,8 +1105,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1467,13 +1471,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1488,7 +1492,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1525,7 +1530,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1534,6 +1538,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1594,12 +1599,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1552 @@ -1612,8 +1617,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1627,7 +1633,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1636,15 +1642,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1659,22 +1665,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1684,37 +1691,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1722,7 +1730,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1794,6 +1802,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1838,17 +1848,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1873,9 +1895,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -1953,27 +1979,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1985,7 +2019,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1995,8 +2031,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2004,10 +2044,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2015,10 +2059,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2026,7 +2074,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2052,19 +2100,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2076,7 +2128,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2086,8 +2140,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2095,10 +2153,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2106,10 +2168,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2117,7 +2183,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2163,7 +2229,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2173,8 +2241,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2182,10 +2254,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2193,10 +2269,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2204,7 +2284,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2231,145 +2311,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2380,73 +2492,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2457,37 +2585,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2498,19 +2634,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2536,11 +2676,11 @@ (local $11 i32) i32.const 1180 i32.load - local.tee $7 + local.tee $8 i32.const 1 i32.add - local.tee $6 - local.tee $3 + local.tee $7 + local.tee $5 i32.const 1176 i32.load local.tee $10 @@ -2548,7 +2688,7 @@ i32.shr_u i32.gt_u if - local.get $3 + local.get $5 i32.const 268435455 i32.gt_u if @@ -2559,10 +2699,6 @@ call $~lib/builtins/abort unreachable end - i32.const 1168 - i32.load - local.tee $9 - local.set $1 block $__inlined_func$~lib/rt/itcms/__renew local.get $10 i32.const 1 @@ -2574,9 +2710,9 @@ i32.lt_u select local.tee $2 - local.get $3 + local.get $5 i32.const 8 - local.get $3 + local.get $5 i32.const 8 i32.gt_u select @@ -2587,12 +2723,15 @@ local.get $4 i32.gt_u select - local.tee $8 - local.tee $3 - local.get $9 + local.tee $9 + local.tee $11 + i32.const 1168 + i32.load + local.tee $6 + local.tee $1 i32.const 20 i32.sub - local.tee $2 + local.tee $3 i32.load i32.const -4 i32.and @@ -2600,25 +2739,23 @@ i32.sub i32.le_u if - local.get $2 local.get $3 + local.get $11 i32.store offset=16 - local.get $1 - local.set $5 br $__inlined_func$~lib/rt/itcms/__renew end + local.get $11 local.get $3 - local.get $2 i32.load offset=12 call $~lib/rt/itcms/__new local.tee $5 local.set $4 + local.get $11 local.get $3 - local.get $2 i32.load offset=16 local.tee $2 local.get $2 - local.get $3 + local.get $11 i32.gt_u select local.set $11 @@ -2807,36 +2944,38 @@ end end end + local.get $5 + local.set $1 end - local.get $5 + local.get $1 local.get $10 i32.add - local.get $8 + local.get $9 local.get $10 i32.sub call $~lib/memory/memory.fill - local.get $5 - local.get $9 + local.get $1 + local.get $6 i32.ne if i32.const 1168 - local.get $5 + local.get $1 i32.store i32.const 1172 - local.get $5 + local.get $1 i32.store i32.const 1168 - local.get $5 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link end i32.const 1176 - local.get $8 + local.get $9 i32.store end i32.const 1172 i32.load - local.get $7 + local.get $8 i32.const 2 i32.shl i32.add @@ -2847,7 +2986,7 @@ i32.const 1 call $~lib/rt/itcms/__link i32.const 1180 - local.get $6 + local.get $7 i32.store ) (func $~lib/array/Array~visit (param $0 i32) @@ -3001,7 +3140,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3039,7 +3178,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index fab896cbc3..6cfc9f0fd7 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -87,8 +87,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -148,11 +148,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -166,10 +166,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -206,11 +206,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -290,19 +290,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -368,22 +368,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -631,13 +633,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -674,11 +679,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -702,11 +707,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1089,8 +1094,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1109,11 +1113,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1123,12 +1127,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1141,7 +1145,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1150,6 +1153,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1196,13 +1200,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1331,18 +1335,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1359,19 +1358,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -1597,6 +1596,7 @@ ) (func $export:extends-recursive/Child#constructor (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1632,6 +1632,7 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1661,7 +1662,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/features/simd.optimized.wat b/tests/compiler/features/simd.optimized.wat index 22b782c7a2..38e87c090d 100644 --- a/tests/compiler/features/simd.optimized.wat +++ b/tests/compiler/features/simd.optimized.wat @@ -1,10 +1,9 @@ (module (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -66,19 +65,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -144,22 +143,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -407,13 +408,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -450,11 +454,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1056 @@ -478,11 +482,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1056 @@ -741,19 +745,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -764,13 +761,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -778,32 +775,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $0 i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -819,16 +816,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -836,7 +833,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -844,10 +841,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $3 i32.eqz if i32.const 0 @@ -858,12 +855,12 @@ unreachable end end - local.get $0 - local.get $1 + local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $1 + i32.lt_u if i32.const 0 i32.const 1056 @@ -872,13 +869,14 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $3 - local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $3 + local.tee $2 i32.load - local.set $2 - local.get $0 + local.set $3 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -891,54 +889,55 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 - local.get $0 local.get $2 + local.get $3 i32.const 2 i32.and + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $2 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 local.get $2 + local.get $3 i32.const -2 i32.and i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.tee $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $0 - local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $2 i32.load i32.const -4 i32.and @@ -948,9 +947,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $2 ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -1005,16 +1002,32 @@ ) (func $~start (local $0 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 64 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 local.get $0 v128.load offset=16 v128.store offset=32 local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i32.const 42 i32.store8 @@ -1034,8 +1047,16 @@ end local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i32.const 42 i32.store16 @@ -1055,8 +1076,16 @@ end local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i32.const 42 i32.store @@ -1076,8 +1105,16 @@ end local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i64.const 42 i64.store @@ -1097,8 +1134,16 @@ end local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i32.const 42 i32.store @@ -1118,8 +1163,16 @@ end local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i64.const 42 i64.store diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index acad288279..8abbd485bb 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -105,8 +105,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -166,11 +166,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -184,10 +184,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1792 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -224,11 +224,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -308,19 +308,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -386,22 +386,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -649,13 +651,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -692,11 +697,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -720,11 +725,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1107,8 +1112,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1474,13 +1478,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1495,7 +1499,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1532,7 +1537,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1541,6 +1545,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1601,12 +1606,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1392 @@ -1619,8 +1624,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1634,7 +1640,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1643,15 +1649,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1666,22 +1672,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1691,37 +1698,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1729,7 +1737,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2092,7 +2100,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2117,7 +2126,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store local.get $0 @@ -2131,7 +2139,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2160,7 +2169,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store local.get $0 @@ -2175,7 +2183,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2204,7 +2213,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store local.get $0 @@ -2219,7 +2227,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2247,7 +2256,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store local.get $0 @@ -2261,7 +2269,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2286,7 +2295,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store local.get $0 @@ -2300,7 +2308,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2325,7 +2334,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store local.get $0 @@ -2341,7 +2349,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2369,7 +2378,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store local.get $0 @@ -2385,7 +2393,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2414,7 +2423,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store local.get $0 @@ -2429,7 +2437,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2464,7 +2473,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store local.get $0 @@ -2483,7 +2491,7 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2511,12 +2519,11 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store offset=4 - local.get $1 local.get $0 i32.load + local.get $1 i32.ne if i32.const 0 @@ -2527,7 +2534,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2555,7 +2563,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -2569,7 +2576,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2598,7 +2606,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -2613,7 +2620,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2648,7 +2656,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -2663,7 +2670,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2690,7 +2698,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -2705,7 +2712,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2732,7 +2740,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -3087,7 +3094,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3122,7 +3130,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store local.get $0 @@ -3137,7 +3144,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.const 23 call $~lib/rt/itcms/__new @@ -3150,7 +3158,6 @@ local.get $0 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $0 i32.store offset=24 local.get $0 @@ -3165,7 +3172,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.const 24 call $~lib/rt/itcms/__new @@ -3184,7 +3192,6 @@ local.get $0 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $0 i32.store local.get $0 diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 6c0a12536a..f6b45dd1d5 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -99,8 +99,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -160,11 +160,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -178,10 +178,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1472 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -218,11 +218,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -283,19 +283,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -361,22 +361,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -624,13 +626,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -667,11 +672,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -695,11 +700,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -1082,8 +1087,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1102,11 +1106,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1116,12 +1120,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1134,7 +1138,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1143,6 +1146,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1687,13 +1691,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1822,18 +1826,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1850,19 +1849,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 - local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index ca661c44a5..7ff42f0739 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -137,8 +137,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -198,11 +198,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -216,10 +216,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1760 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -256,11 +256,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -321,19 +321,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -399,22 +399,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -662,13 +664,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -705,11 +710,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -733,11 +738,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -1120,8 +1125,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1140,11 +1144,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1154,12 +1158,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1172,7 +1176,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1181,6 +1184,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1376,13 +1380,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1511,18 +1515,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1539,19 +1538,19 @@ i32.load offset=8 local.set $4 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $4 i32.store offset=8 local.get $4 - local.get $0 local.get $4 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index 5db5d3f05d..5d137c4339 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -151,8 +151,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -212,11 +212,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -230,10 +230,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 2112 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1792 i32.const 1856 @@ -270,11 +270,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -354,19 +354,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -432,22 +432,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -695,13 +697,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -738,11 +743,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1936 @@ -766,11 +771,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1936 @@ -1153,8 +1158,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1173,11 +1177,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1187,12 +1191,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1205,7 +1209,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1214,6 +1217,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1359,13 +1363,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1494,18 +1498,13 @@ local.get $0 i32.const 4 i32.add - local.tee $2 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1522,19 +1521,19 @@ i32.load offset=8 local.set $4 local.get $0 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $0 local.get $4 i32.store offset=8 local.get $4 - local.get $0 local.get $4 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 4a33cdc28d..0a5f5429b0 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -102,8 +102,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -163,11 +163,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -181,10 +181,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1472 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -221,11 +221,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -286,19 +286,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -364,22 +364,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -627,13 +629,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -670,11 +675,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -698,11 +703,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1085,8 +1090,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1105,11 +1109,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1119,12 +1123,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1137,7 +1141,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1146,6 +1149,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1291,13 +1295,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1426,18 +1430,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1454,19 +1453,19 @@ i32.load offset=8 local.set $4 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $4 i32.store offset=8 local.get $4 - local.get $0 local.get $4 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index daf2baa022..f49e9bb803 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -74,19 +74,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -152,22 +152,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -415,13 +417,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -458,11 +463,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1056 @@ -486,11 +491,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1056 @@ -835,17 +840,18 @@ local.get $1 i32.const 4 i32.add - local.tee $0 local.get $1 i32.load i32.const -4 i32.and i32.add local.get $1 + i32.const 4 + i32.add + local.get $1 i32.load i32.const -4 i32.and - local.get $0 i32.add i32.load i32.const -3 @@ -1008,6 +1014,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1052,17 +1060,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1087,9 +1107,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -1167,27 +1191,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1199,7 +1231,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1209,8 +1243,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -1218,10 +1256,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1229,10 +1271,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -1240,7 +1286,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -1266,19 +1312,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -1290,7 +1340,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -1300,8 +1352,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -1309,10 +1365,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -1320,10 +1380,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -1331,7 +1395,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -1377,7 +1441,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -1387,8 +1453,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -1396,10 +1466,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -1407,10 +1481,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -1418,7 +1496,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -1445,145 +1523,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -1594,73 +1704,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -1671,37 +1797,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -1712,19 +1846,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -1745,17 +1883,17 @@ local.get $0 local.get $2 call $~lib/rt/tlsf/allocateBlock - local.set $6 + local.tee $6 + i32.const 4 + i32.add + local.set $2 local.get $1 i32.load i32.const -4 i32.and local.set $7 block $~lib/util/memory/memmove|inlined.0 - local.get $6 - i32.const 4 - i32.add - local.tee $2 + local.get $2 local.get $1 i32.const 4 i32.add diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index 6a4d583892..afd10f5826 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -93,8 +93,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -154,11 +154,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -172,10 +172,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -212,11 +212,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -296,19 +296,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -374,22 +374,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -637,13 +639,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -680,11 +685,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -708,11 +713,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1095,8 +1100,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1115,11 +1119,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1129,12 +1133,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1147,7 +1151,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1156,6 +1159,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1202,13 +1206,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1337,18 +1341,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1365,19 +1364,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index 307c71492d..b4e5aaaad1 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -119,8 +119,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -180,11 +180,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -198,10 +198,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 2112 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -238,11 +238,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -322,19 +322,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -400,22 +400,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -663,13 +665,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -706,11 +711,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -734,11 +739,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -1121,8 +1126,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1284,12 +1288,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1305,20 +1309,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1326,15 +1330,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1345,13 +1350,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1359,34 +1364,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1400,16 +1405,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1417,18 +1422,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1440,11 +1445,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1424 @@ -1453,13 +1458,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1472,54 +1478,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1529,33 +1536,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1571,18 +1579,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1591,18 +1599,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1611,10 +1619,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1623,20 +1631,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1651,10 +1659,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1671,16 +1679,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1703,8 +1711,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1751,6 +1759,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1795,17 +1805,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1830,9 +1852,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -1910,27 +1936,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1942,7 +1976,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1952,8 +1988,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -1961,10 +2001,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1972,10 +2016,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -1983,7 +2031,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2009,19 +2057,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2033,7 +2085,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2043,8 +2097,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2052,10 +2110,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2063,10 +2125,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2074,7 +2140,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2120,7 +2186,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2130,8 +2198,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2139,10 +2211,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2150,10 +2226,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2161,7 +2241,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2188,145 +2268,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2337,73 +2449,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2414,37 +2542,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2455,19 +2591,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2642,7 +2782,9 @@ br_if $folding-inner0 local.get $0 i32.load offset=4 - i32.load offset=4 + i32.const 4 + i32.add + i32.load i32.const -1 i32.ne if @@ -2675,7 +2817,9 @@ br_if $folding-inner0 local.get $0 i32.load offset=4 - f32.load offset=4 + i32.const 4 + i32.add + f32.load drop global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor @@ -2686,7 +2830,7 @@ local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $3 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 8 @@ -2706,7 +2850,6 @@ i32.const 1 local.get $2 call $~lib/array/Array#__uset - local.get $3 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2718,7 +2861,7 @@ local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $3 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 8 @@ -2738,7 +2881,6 @@ i32.const 1 local.get $2 call $~lib/array/Array#__uset - local.get $3 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -2746,7 +2888,7 @@ local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 8 @@ -2766,7 +2908,6 @@ i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $2 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2805,7 +2946,7 @@ call $~lib/rt/__newArray i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 11 @@ -2833,7 +2974,6 @@ i32.const 1968 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2947,34 +3087,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $6 i32.const 0 i32.store + local.get $6 local.get $0 local.get $1 i32.shl local.tee $9 - local.tee $1 + local.set $8 + local.get $9 i32.const 0 call $~lib/rt/itcms/__new - local.set $7 + local.set $6 local.get $3 if block $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.set $6 - local.get $3 - local.get $7 + local.get $6 local.tee $1 + local.get $3 i32.eq br_if $~lib/util/memory/memmove|inlined.0 local.get $3 local.get $1 i32.sub - local.get $6 + local.get $8 i32.sub i32.const 0 - local.get $6 + local.get $8 i32.const 1 i32.shl i32.sub @@ -2982,7 +3122,7 @@ if local.get $1 local.get $3 - local.get $6 + local.get $8 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end @@ -3003,13 +3143,13 @@ i32.const 7 i32.and if - local.get $6 + local.get $8 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $6 + local.get $8 i32.const 1 i32.sub - local.set $6 + local.set $8 local.get $1 local.tee $4 i32.const 1 @@ -3028,7 +3168,7 @@ end end loop $while-continue|1 - local.get $6 + local.get $8 i32.const 8 i32.ge_u if @@ -3036,10 +3176,10 @@ local.get $3 i64.load i64.store - local.get $6 + local.get $8 i32.const 8 i32.sub - local.set $6 + local.set $8 local.get $1 i32.const 8 i32.add @@ -3053,7 +3193,7 @@ end end loop $while-continue|2 - local.get $6 + local.get $8 if local.get $1 local.tee $4 @@ -3069,10 +3209,10 @@ local.get $5 i32.load8_u i32.store8 - local.get $6 + local.get $8 i32.const 1 i32.sub - local.set $6 + local.set $8 br $while-continue|2 end end @@ -3087,22 +3227,22 @@ if loop $while-continue|3 local.get $1 - local.get $6 + local.get $8 i32.add i32.const 7 i32.and if - local.get $6 + local.get $8 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 local.get $1 - local.get $6 + local.get $8 i32.const 1 i32.sub - local.tee $6 + local.tee $8 i32.add local.get $3 - local.get $6 + local.get $8 i32.add i32.load8_u i32.store8 @@ -3110,18 +3250,18 @@ end end loop $while-continue|4 - local.get $6 + local.get $8 i32.const 8 i32.ge_u if local.get $1 - local.get $6 + local.get $8 i32.const 8 i32.sub - local.tee $6 + local.tee $8 i32.add local.get $3 - local.get $6 + local.get $8 i32.add i64.load i64.store @@ -3130,16 +3270,16 @@ end end loop $while-continue|5 - local.get $6 + local.get $8 if local.get $1 - local.get $6 + local.get $8 i32.const 1 i32.sub - local.tee $6 + local.tee $8 i32.add local.get $3 - local.get $6 + local.get $8 i32.add i32.load8_u i32.store8 @@ -3149,21 +3289,20 @@ end end end - local.get $8 - local.get $7 + local.get $6 i32.store i32.const 16 local.get $2 call $~lib/rt/itcms/__new local.tee $1 - local.get $7 + local.get $6 i32.store local.get $1 - local.get $7 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link local.get $1 - local.get $7 + local.get $6 i32.store offset=4 local.get $1 local.get $9 diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index b4dcdc6c79..8a0e36d29c 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -124,8 +124,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -185,11 +185,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -203,10 +203,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1616 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1424 i32.const 1488 @@ -243,11 +243,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -308,19 +308,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -386,22 +386,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -649,13 +651,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -692,11 +697,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1568 @@ -720,11 +725,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1568 @@ -1107,8 +1112,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1127,11 +1131,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1141,12 +1145,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1159,7 +1163,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1168,6 +1171,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1251,7 +1255,6 @@ i32.load local.set $1 loop $for-loop|0 - local.get $2 local.get $1 i32.const 1164 i32.load @@ -1260,7 +1263,8 @@ local.get $1 i32.gt_s select - i32.lt_s + local.get $2 + i32.gt_s if local.get $3 i32.const 1156 @@ -1316,7 +1320,8 @@ i32.const 1520 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1362,13 +1367,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1497,18 +1502,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1525,19 +1525,19 @@ i32.load offset=8 local.set $2 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $2 i32.store offset=8 local.get $2 - local.get $0 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 @@ -1592,17 +1592,15 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=8 local.get $1 i32.const 2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index 3ff34a60d8..4a432893e3 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -111,8 +111,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -172,11 +172,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -190,10 +190,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1520 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1328 i32.const 1392 @@ -230,11 +230,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -295,19 +295,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -373,22 +373,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -636,13 +638,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -679,11 +684,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1472 @@ -707,11 +712,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1472 @@ -1094,8 +1099,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1257,12 +1261,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1278,20 +1282,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1299,15 +1303,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1318,13 +1323,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1332,34 +1337,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1373,16 +1378,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1390,18 +1395,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1413,11 +1418,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1472 @@ -1426,13 +1431,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1445,54 +1451,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1502,33 +1509,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1544,18 +1552,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1564,18 +1572,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1584,10 +1592,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1596,20 +1604,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1624,10 +1632,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1644,16 +1652,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1676,8 +1684,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index 75f85fe4a3..15084a54fd 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -113,8 +113,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -174,11 +174,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -192,10 +192,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1504 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -232,11 +232,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -297,19 +297,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -375,22 +375,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -638,13 +640,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -681,11 +686,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -709,11 +714,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1096,8 +1101,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1116,11 +1120,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1130,12 +1134,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1148,7 +1152,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1157,6 +1160,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1203,13 +1207,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1338,18 +1342,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1366,19 +1365,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -1451,7 +1450,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1475,7 +1474,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1502,7 +1500,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1526,7 +1524,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index 112260552c..c928eac58a 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -87,8 +87,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -148,11 +148,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -166,10 +166,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1584 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -206,11 +206,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -290,19 +290,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -368,22 +368,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -631,13 +633,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -674,11 +679,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -702,11 +707,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1089,8 +1094,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1109,11 +1113,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1123,12 +1127,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1141,7 +1145,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1150,6 +1153,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1335,13 +1339,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1470,18 +1474,13 @@ local.get $0 i32.const 4 i32.add - local.tee $2 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1498,19 +1497,19 @@ i32.load offset=8 local.set $2 local.get $0 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $0 local.get $2 i32.store offset=8 local.get $2 - local.get $0 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $3 @@ -1568,10 +1567,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index e26fed4218..d80f36fe2f 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -108,8 +108,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -169,11 +169,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -187,10 +187,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -227,11 +227,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -292,19 +292,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -370,22 +370,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -633,13 +635,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -676,11 +681,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -704,11 +709,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1091,8 +1096,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1111,11 +1115,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1125,12 +1129,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1143,7 +1147,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1152,6 +1155,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1198,13 +1202,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1221,11 +1225,11 @@ i32.eqz if memory.size - local.tee $2 + local.tee $3 i32.const 4 local.get $1 i32.load offset=1568 - local.get $2 + local.get $3 i32.const 16 i32.shl i32.const 4 @@ -1240,7 +1244,7 @@ i32.shr_u local.tee $0 local.get $0 - local.get $2 + local.get $3 i32.lt_s select memory.grow @@ -1256,7 +1260,7 @@ end end local.get $1 - local.get $2 + local.get $3 i32.const 16 i32.shl memory.size @@ -1295,17 +1299,17 @@ call $~lib/rt/tlsf/removeBlock local.get $0 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 i32.sub - local.tee $3 + local.tee $2 i32.const 16 i32.ge_u if local.get $0 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1314,37 +1318,32 @@ local.get $0 i32.const 32 i32.add - local.tee $2 - local.get $3 + local.tee $3 + local.get $2 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $1 - local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $0 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store local.get $0 i32.const 4 i32.add - local.tee $2 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.get $2 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and @@ -1357,26 +1356,26 @@ i32.const 12 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 - local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $0 - local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $0 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 - local.get $2 + local.get $3 local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1392,9 +1391,10 @@ i32.const 20 i32.add local.tee $3 + local.tee $2 i32.const 0 i32.store8 - local.get $3 + local.get $2 i32.const 12 i32.add local.tee $0 @@ -1402,10 +1402,10 @@ i32.sub i32.const 0 i32.store8 - local.get $3 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $3 + local.get $2 i32.const 0 i32.store8 offset=2 local.get $0 @@ -1418,7 +1418,7 @@ i32.sub i32.const 0 i32.store8 - local.get $3 + local.get $2 i32.const 0 i32.store8 offset=3 local.get $0 @@ -1426,9 +1426,9 @@ i32.sub i32.const 0 i32.store8 - local.get $3 + local.get $2 i32.const 0 - local.get $3 + local.get $2 i32.sub i32.const 3 i32.and diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index ec08ef7d19..b0f785c1b7 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -94,8 +94,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -155,11 +155,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -173,10 +173,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1712 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1344 i32.const 1408 @@ -213,11 +213,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -297,19 +297,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -375,22 +375,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -638,13 +640,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -681,11 +686,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1488 @@ -709,11 +714,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1488 @@ -1096,8 +1101,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1463,13 +1467,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1484,7 +1488,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1521,7 +1526,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1530,6 +1534,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1590,12 +1595,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1488 @@ -1608,8 +1613,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1623,7 +1629,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1632,15 +1638,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1655,22 +1661,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1680,37 +1687,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1718,7 +1726,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1790,6 +1798,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1834,17 +1844,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1869,9 +1891,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -1949,27 +1975,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1981,7 +2015,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1991,8 +2027,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2000,10 +2040,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2011,10 +2055,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2022,7 +2070,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2048,19 +2096,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2072,7 +2124,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2082,8 +2136,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2091,10 +2149,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2102,10 +2164,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2113,7 +2179,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2159,7 +2225,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2169,8 +2237,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2178,10 +2250,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2189,10 +2265,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2200,7 +2280,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2227,145 +2307,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 + local.get $4 + i32.load8_u + i32.store8 + local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2376,73 +2488,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2453,37 +2581,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2494,19 +2630,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2528,11 +2668,10 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if local.get $1 i32.const 0 @@ -2548,16 +2687,15 @@ local.get $1 i32.const 1 i32.add - local.tee $9 - local.tee $5 + local.tee $7 local.get $0 i32.load offset=8 - local.tee $11 + local.tee $10 i32.const 2 i32.shr_u i32.gt_u if - local.get $5 + local.get $7 i32.const 268435455 i32.gt_u if @@ -2569,31 +2707,31 @@ unreachable end block $__inlined_func$~lib/rt/itcms/__renew - local.get $11 + local.get $10 i32.const 1 i32.shl - local.tee $3 + local.tee $6 i32.const 1073741820 - local.get $3 + local.get $6 i32.const 1073741820 i32.lt_u select - local.tee $6 - local.get $5 + local.tee $4 + local.get $7 i32.const 8 - local.get $5 + local.get $7 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $3 - local.get $3 + local.tee $6 + local.get $4 local.get $6 - i32.lt_u + i32.gt_u select - local.tee $10 - local.tee $4 + local.tee $9 + local.tee $11 local.get $0 i32.load local.tee $8 @@ -2609,25 +2747,25 @@ i32.le_u if local.get $5 - local.get $4 + local.get $11 i32.store offset=16 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $4 + local.get $11 local.get $5 i32.load offset=12 call $~lib/rt/itcms/__new local.tee $7 local.set $6 - local.get $4 + local.get $11 local.get $5 i32.load offset=16 - local.tee $5 + local.tee $4 local.get $4 - local.get $5 - i32.lt_u + local.get $11 + i32.gt_u select - local.set $12 + local.set $11 block $~lib/util/memory/memmove|inlined.0 local.get $3 local.get $6 @@ -2636,10 +2774,10 @@ local.get $3 local.get $6 i32.sub - local.get $12 + local.get $11 i32.sub i32.const 0 - local.get $12 + local.get $11 i32.const 1 i32.shl i32.sub @@ -2647,7 +2785,7 @@ if local.get $6 local.get $3 - local.get $12 + local.get $11 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end @@ -2668,32 +2806,32 @@ i32.const 7 i32.and if - local.get $12 + local.get $11 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $12 + local.get $11 i32.const 1 i32.sub - local.set $12 + local.set $11 local.get $6 - local.tee $4 + local.tee $5 i32.const 1 i32.add local.set $6 local.get $3 - local.tee $5 + local.tee $4 i32.const 1 i32.add local.set $3 - local.get $4 local.get $5 + local.get $4 i32.load8_u i32.store8 br $while-continue|0 end end loop $while-continue|1 - local.get $12 + local.get $11 i32.const 8 i32.ge_u if @@ -2701,10 +2839,10 @@ local.get $3 i64.load i64.store - local.get $12 + local.get $11 i32.const 8 i32.sub - local.set $12 + local.set $11 local.get $6 i32.const 8 i32.add @@ -2718,26 +2856,26 @@ end end loop $while-continue|2 - local.get $12 + local.get $11 if local.get $6 - local.tee $4 + local.tee $5 i32.const 1 i32.add local.set $6 local.get $3 - local.tee $5 + local.tee $4 i32.const 1 i32.add local.set $3 - local.get $4 local.get $5 + local.get $4 i32.load8_u i32.store8 - local.get $12 + local.get $11 i32.const 1 i32.sub - local.set $12 + local.set $11 br $while-continue|2 end end @@ -2752,22 +2890,22 @@ if loop $while-continue|3 local.get $6 - local.get $12 + local.get $11 i32.add i32.const 7 i32.and if - local.get $12 + local.get $11 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 local.get $6 - local.get $12 + local.get $11 i32.const 1 i32.sub - local.tee $12 + local.tee $11 i32.add local.get $3 - local.get $12 + local.get $11 i32.add i32.load8_u i32.store8 @@ -2775,18 +2913,18 @@ end end loop $while-continue|4 - local.get $12 + local.get $11 i32.const 8 i32.ge_u if local.get $6 - local.get $12 + local.get $11 i32.const 8 i32.sub - local.tee $12 + local.tee $11 i32.add local.get $3 - local.get $12 + local.get $11 i32.add i64.load i64.store @@ -2795,16 +2933,16 @@ end end loop $while-continue|5 - local.get $12 + local.get $11 if local.get $6 - local.get $12 + local.get $11 i32.const 1 i32.sub - local.tee $12 + local.tee $11 i32.add local.get $3 - local.get $12 + local.get $11 i32.add i32.load8_u i32.store8 @@ -2817,10 +2955,10 @@ local.set $3 end local.get $3 - local.get $11 + local.get $10 i32.add + local.get $9 local.get $10 - local.get $11 i32.sub call $~lib/memory/memory.fill local.get $3 @@ -2839,11 +2977,13 @@ call $~lib/rt/itcms/__link end local.get $0 - local.get $10 + local.get $9 i32.store offset=8 end local.get $0 - local.get $9 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -2905,13 +3045,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2949,20 +3089,20 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 32 call $~lib/memory/memory.fill local.get $0 - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $1 + local.get $2 i32.store offset=4 local.get $0 i32.const 32 @@ -2974,7 +3114,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $0 i32.store call $issues/1699/MultiAssignmentTest#constructor @@ -3000,10 +3140,10 @@ i32.const 0 local.set $1 loop $for-loop|0 - local.get $1 local.get $0 i32.load offset=12 - i32.lt_s + local.get $1 + i32.gt_s if global.get $~lib/memory/__stack_pointer call $issues/1699/MultiAssignmentTest#constructor @@ -3193,10 +3333,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1344 i32.const 1104 diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index 7a59cfe8ca..0518b4aeec 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -99,8 +99,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -160,11 +160,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -178,10 +178,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -218,11 +218,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -283,19 +283,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -361,22 +361,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -624,13 +626,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -667,11 +672,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -695,11 +700,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -1082,8 +1087,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1102,11 +1106,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1116,12 +1120,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1134,7 +1138,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1143,6 +1146,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1360,13 +1364,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1495,18 +1499,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1523,19 +1522,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 - local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/loop-flow.optimized.wat b/tests/compiler/loop-flow.optimized.wat index d2e41d0b4f..9812a7bc0e 100644 --- a/tests/compiler/loop-flow.optimized.wat +++ b/tests/compiler/loop-flow.optimized.wat @@ -26,13 +26,10 @@ i32.const 1 ) (func $loop-flow/whileAny (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 1 - i32.eq - local.set $1 loop $while-continue|0 (result i32) - local.get $1 + local.get $0 + i32.const 1 + i32.eq if (result i32) i32.const 1 else @@ -50,13 +47,10 @@ end ) (func $loop-flow/forAny (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 1 - i32.eq - local.set $1 loop $for-loop|0 (result i32) - local.get $1 + local.get $0 + i32.const 1 + i32.eq if (result i32) i32.const 1 else @@ -76,14 +70,10 @@ end ) (func $loop-flow/doAny (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 1 - i32.eq - local.set $1 loop $do-continue|0 - local.get $1 - i32.eqz + local.get $0 + i32.const 1 + i32.ne if local.get $0 i32.const 2 diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 65555741cf..b305a85ae5 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -103,8 +103,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -164,11 +164,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -182,10 +182,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1632 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -222,11 +222,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -287,19 +287,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -365,22 +365,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -628,13 +630,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -671,11 +676,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -699,11 +704,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1086,8 +1091,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1106,11 +1110,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1120,12 +1124,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1138,7 +1142,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1147,6 +1150,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1193,13 +1197,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1328,18 +1332,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1356,19 +1355,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -1468,17 +1467,16 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1489,7 +1487,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $0 i32.eqz if i32.const 1456 @@ -1500,30 +1498,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1535,29 +1532,29 @@ i32.const 0 i32.store block $__inlined_func$~lib/rt/__instanceof (result i32) - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 1632 i32.load i32.le_u if loop $do-continue|0 i32.const 1 - local.get $0 + local.get $2 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof drop - local.get $0 + local.get $2 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $0 + local.tee $2 br_if $do-continue|0 end end @@ -1573,20 +1570,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1595,10 +1591,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i32.eqz if i32.const 1456 @@ -1608,33 +1604,33 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 + local.get $0 i32.store offset=4 block $__inlined_func$~lib/rt/__instanceof11 (result i32) - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1632 i32.load i32.le_u if loop $do-continue|012 i32.const 1 - local.get $0 + local.get $1 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof11 drop - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $0 + local.tee $1 br_if $do-continue|012 end end @@ -1650,20 +1646,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 8 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1672,33 +1667,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/rt/__instanceof14 (result i32) - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 1632 i32.load i32.le_u if loop $do-continue|015 i32.const 1 - local.get $0 + local.get $2 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof14 drop - local.get $0 + local.get $2 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $0 + local.tee $2 br_if $do-continue|015 end end @@ -1713,20 +1708,19 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1735,33 +1729,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store block $__inlined_func$~lib/rt/__instanceof17 (result i32) - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 1632 i32.load i32.le_u if loop $do-continue|018 i32.const 1 - local.get $0 + local.get $2 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof17 drop - local.get $0 + local.get $2 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $0 + local.tee $2 br_if $do-continue|018 end end @@ -1776,8 +1770,8 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1853,7 +1847,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1877,7 +1871,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/memcpy.optimized.wat b/tests/compiler/memcpy.optimized.wat index 529a532405..278bfd3509 100644 --- a/tests/compiler/memcpy.optimized.wat +++ b/tests/compiler/memcpy.optimized.wat @@ -15,6 +15,8 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) + (local $8 i32) local.get $0 local.set $5 loop $while-continue|0 @@ -61,17 +63,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -96,9 +110,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -177,27 +195,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $7 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $8 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $7 + i32.const 1 + i32.add + local.set $0 + local.get $8 + i32.const 1 + i32.add + local.set $1 + local.get $7 + local.get $8 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -209,7 +235,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -219,8 +247,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -228,10 +260,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -239,10 +275,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $6 i32.const 8 i32.shl @@ -250,7 +290,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -276,19 +316,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -300,7 +344,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -310,8 +356,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -319,10 +369,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -330,10 +384,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $6 i32.const 16 i32.shl @@ -341,7 +399,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -387,7 +445,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -397,8 +457,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -406,10 +470,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -417,10 +485,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $6 i32.const 24 i32.shl @@ -428,7 +500,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -455,145 +527,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -604,73 +708,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -681,37 +801,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -722,19 +850,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 diff --git a/tests/compiler/memset.optimized.wat b/tests/compiler/memset.optimized.wat index 6a8834cfd7..be978183b9 100644 --- a/tests/compiler/memset.optimized.wat +++ b/tests/compiler/memset.optimized.wat @@ -34,11 +34,15 @@ return end local.get $0 + i32.const 1 + i32.add local.get $1 - i32.store8 offset=1 + i32.store8 local.get $0 + i32.const 2 + i32.add local.get $1 - i32.store8 offset=2 + i32.store8 local.get $0 local.get $2 i32.add @@ -59,8 +63,10 @@ return end local.get $0 + i32.const 3 + i32.add local.get $1 - i32.store8 offset=3 + i32.store8 local.get $0 local.get $2 i32.add @@ -109,11 +115,15 @@ return end local.get $0 + i32.const 4 + i32.add local.get $1 - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.store offset=8 + i32.store local.get $0 local.get $2 i32.add @@ -134,17 +144,25 @@ return end local.get $0 + i32.const 12 + i32.add local.get $1 - i32.store offset=12 + i32.store local.get $0 + i32.const 16 + i32.add local.get $1 - i32.store offset=16 + i32.store local.get $0 + i32.const 20 + i32.add local.get $1 - i32.store offset=20 + i32.store local.get $0 + i32.const 24 + i32.add local.get $1 - i32.store offset=24 + i32.store local.get $0 local.get $2 i32.add @@ -198,14 +216,20 @@ local.get $4 i64.store local.get $0 + i32.const 8 + i32.add local.get $4 - i64.store offset=8 + i64.store local.get $0 + i32.const 16 + i32.add local.get $4 - i64.store offset=16 + i64.store local.get $0 + i32.const 24 + i32.add local.get $4 - i64.store offset=24 + i64.store local.get $2 i32.const 32 i32.sub @@ -238,7 +262,9 @@ unreachable end global.get $memset/dest - i32.load8_u offset=15 + i32.const 15 + i32.add + i32.load8_u i32.const 1 i32.ne if @@ -268,7 +294,9 @@ unreachable end global.get $memset/dest - i32.load8_u offset=1 + i32.const 1 + i32.add + i32.load8_u i32.const 2 i32.ne if @@ -280,7 +308,9 @@ unreachable end global.get $memset/dest - i32.load8_u offset=14 + i32.const 14 + i32.add + i32.load8_u i32.const 2 i32.ne if @@ -292,7 +322,9 @@ unreachable end global.get $memset/dest - i32.load8_u offset=15 + i32.const 15 + i32.add + i32.load8_u i32.const 1 i32.ne if diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index 35bcb32338..8136285fb0 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -139,8 +139,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -200,11 +200,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -218,10 +218,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -258,11 +258,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -323,19 +323,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -401,22 +401,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -664,13 +666,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -707,11 +712,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -735,11 +740,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1122,8 +1127,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1142,11 +1146,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1156,12 +1160,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1174,7 +1178,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1183,6 +1186,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1229,13 +1233,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1364,18 +1368,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1392,19 +1391,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 96e294fad6..7ec77fbe33 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -146,8 +146,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -207,11 +207,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -225,10 +225,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 4656 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -265,11 +265,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -330,19 +330,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -408,22 +408,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -671,13 +673,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -714,11 +719,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -742,11 +747,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -1129,8 +1134,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1319,14 +1323,14 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1334,15 +1338,16 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $1 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.set $4 + local.get $4 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1353,13 +1358,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1367,34 +1372,34 @@ i32.const 4 i32.sub end - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $3 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 - local.get $2 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $1 i32.add else - local.get $2 + local.get $1 end i32.const 4 - local.get $5 - i32.load offset=1568 local.get $4 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 @@ -1408,16 +1413,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1425,18 +1430,18 @@ unreachable end end - local.get $5 local.get $4 + local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $4 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1448,11 +1453,11 @@ end end local.get $2 - local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $1 + i32.lt_u if i32.const 0 i32.const 1616 @@ -1461,13 +1466,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $4 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.tee $3 + i32.load + local.set $2 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1480,53 +1486,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and - local.get $2 + local.get $1 i32.sub - local.tee $1 + local.tee $5 i32.const 16 i32.ge_u if local.get $3 local.get $2 - local.get $4 i32.const 2 i32.and + local.get $1 i32.or i32.store - local.get $2 + local.get $1 local.get $3 i32.const 4 i32.add i32.add - local.tee $2 - local.get $1 + local.tee $1 + local.get $5 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $4 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $3 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store local.get $3 i32.const 4 i32.add - local.tee $2 local.get $3 i32.load i32.const -4 i32.and i32.add - local.get $2 + local.get $3 + i32.const 4 + i32.add local.get $3 i32.load i32.const -4 @@ -1538,36 +1545,37 @@ i32.store end local.get $3 + local.tee $1 i32.const 1 i32.store offset=12 - local.get $3 + local.get $1 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $3 i32.load offset=8 - local.set $1 - local.get $3 - local.get $2 + local.set $2 + local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $1 + local.get $2 i32.store offset=8 - local.get $1 - local.get $3 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $1 i32.load i32.const -4 i32.and @@ -1575,7 +1583,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $1 i32.const 20 i32.add local.tee $3 @@ -2403,9 +2411,6 @@ br $while-continue|0 end end - local.get $10 - i64.extend_i32_s - local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -2414,10 +2419,11 @@ local.get $6 i64.const 10 i64.mul - local.tee $1 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 + local.tee $1 local.get $4 i64.extend_i32_s i64.or @@ -2434,7 +2440,7 @@ i32.shl i32.const 3456 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -2447,7 +2453,7 @@ i32.sub local.set $8 local.get $3 - local.get $1 + local.get $0 local.get $12 i64.and local.tee $6 @@ -2460,7 +2466,6 @@ global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $9 i32.const 0 local.get $8 i32.sub @@ -2469,6 +2474,7 @@ i32.const 4384 i32.add i64.load32_u + local.get $9 i64.mul local.set $1 local.get $4 @@ -2530,6 +2536,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2574,17 +2582,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2609,9 +2629,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2689,27 +2713,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2721,7 +2753,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2731,8 +2765,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2740,10 +2778,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2751,10 +2793,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2762,7 +2808,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2788,19 +2834,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2812,7 +2862,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2822,8 +2874,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2831,10 +2887,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2842,10 +2902,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2853,7 +2917,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2899,7 +2963,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2909,8 +2975,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2918,10 +2988,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2929,10 +3003,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2940,7 +3018,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2967,145 +3045,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -3116,73 +3226,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -3193,37 +3319,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -3234,19 +3368,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -3472,18 +3610,18 @@ local.get $0 local.get $1 i32.add - local.tee $3 + local.tee $2 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $3 + local.get $2 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -3500,61 +3638,61 @@ br $for-loop|0 end end - local.get $3 + local.get $2 i32.const 1 i32.shl i32.const 3456 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $2 i32.const 2 i32.add else - local.get $3 + local.get $2 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $2 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.shl i32.const 3456 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.add - local.get $3 + local.get $2 i32.const 0 local.get $1 i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $2 i32.const 46 i32.store16 local.get $0 i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $2 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $2 i32.sub - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 3456 @@ -3571,7 +3709,7 @@ local.set $1 loop $for-loop|1 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $1 @@ -3589,7 +3727,7 @@ end end local.get $0 - local.get $3 + local.get $2 i32.add else local.get $0 @@ -3599,13 +3737,13 @@ i32.const 3458 i32.const 101 i32.store16 - local.get $3 + local.get $2 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $3 + local.tee $2 if i32.const 0 local.get $0 @@ -3670,7 +3808,7 @@ i32.const 3460 i32.const 45 i32.const 43 - local.get $3 + local.get $2 select i32.store16 local.get $0 @@ -3696,10 +3834,10 @@ i32.const 101 i32.store16 offset=2 local.get $1 - local.tee $2 i32.const 4 i32.add - local.get $3 + local.tee $3 + local.get $2 i32.const 1 i32.sub local.tee $1 @@ -3713,65 +3851,65 @@ local.set $1 end local.get $1 - local.tee $3 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.set $3 + local.set $2 local.get $1 - local.get $3 + local.get $2 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $3 i32.const 45 i32.const 43 local.get $5 select - i32.store16 offset=4 + i32.store16 local.get $0 local.get $1 i32.add @@ -3867,10 +4005,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3232 i32.store offset=4 local.get $0 @@ -3905,34 +4042,36 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $2 - i64.const 32 - i64.shr_u + local.tee $3 + i64.const 4294967295 + i64.and local.tee $4 i64.const 31 i64.shl - local.tee $6 - local.get $2 - i64.const 4294967295 - i64.and local.tee $2 + local.set $5 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 i64.const 31 i64.shl - local.tee $5 - local.get $2 + local.tee $6 + local.get $4 i64.const 10 i64.shl i64.const 32 i64.shr_u + local.get $2 i64.add - local.tee $3 + local.tee $2 i64.const 32 i64.shr_u i64.add - local.get $3 + local.get $2 i64.const 4294967295 i64.and - local.get $4 + local.get $3 i64.const 10 i64.shl i64.add @@ -3943,11 +4082,11 @@ i64.add i64.const 1 i64.sub - local.set $3 - local.get $6 + local.set $2 local.get $5 i64.const 32 i64.shr_u + local.get $6 i64.add local.get $5 i64.const 4294967295 @@ -3957,31 +4096,31 @@ i64.const 32 i64.shr_u i64.add - local.get $3 + local.get $2 global.get $~lib/util/number/_exp_pow i32.const 2 i32.add + local.get $2 local.get $3 - local.get $4 i64.const 2147483647 i64.mul - local.get $2 + local.get $4 i64.const 2147483647 i64.mul - local.get $2 + local.get $4 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $2 + local.tee $4 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $3 i64.const 4294966784 i64.mul - local.get $2 + local.get $4 i64.const 4294967295 i64.and i64.add diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 9178d47e75..2278576ca7 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1,12 +1,11 @@ (module (type $i32_=>_none (func (param i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) @@ -52,8 +51,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -113,11 +112,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -131,10 +130,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1712 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1200 i32.const 1264 @@ -171,11 +170,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -355,19 +354,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -433,22 +432,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -696,13 +697,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -739,11 +743,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -767,11 +771,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -1159,8 +1163,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1299,19 +1302,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1322,13 +1318,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1336,32 +1332,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $0 i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -1377,16 +1373,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1394,7 +1390,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -1402,10 +1398,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $3 i32.eqz if i32.const 0 @@ -1416,12 +1412,12 @@ unreachable end end - local.get $0 - local.get $1 + local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $1 + i32.lt_u if i32.const 0 i32.const 1440 @@ -1430,13 +1426,14 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $3 - local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $3 + local.tee $2 i32.load - local.set $2 - local.get $0 + local.set $3 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1449,54 +1446,55 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 - local.get $0 local.get $2 + local.get $3 i32.const 2 i32.and + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $2 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 local.get $2 + local.get $3 i32.const -2 i32.and i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.tee $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $0 - local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $2 i32.load i32.const -4 i32.and @@ -1506,9 +1504,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $2 ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1558,13 +1554,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1572,9 +1568,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -1586,19 +1588,19 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 local.get $3 @@ -1913,6 +1915,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1957,17 +1961,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1992,9 +2008,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2072,27 +2092,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2104,7 +2132,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2114,8 +2144,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2123,10 +2157,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2134,10 +2172,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2145,7 +2187,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2171,19 +2213,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2195,7 +2241,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2205,8 +2253,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2214,10 +2266,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2225,10 +2281,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2236,7 +2296,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2282,7 +2342,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2292,8 +2354,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2301,10 +2367,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2312,10 +2382,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2323,7 +2397,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2350,145 +2424,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2499,73 +2605,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2576,37 +2698,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2617,19 +2747,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2845,10 +2979,9 @@ i32.const 1056 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2896,8 +3029,16 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 8 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $6 i32.const 0 i32.store @@ -2922,41 +3063,40 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + i32.const 0 + i32.const 1052 + i32.load + i32.const 1 + i32.shr_u + local.tee $3 + local.get $3 + select + local.tee $1 + i32.const 5 + local.get $3 + local.get $3 + i32.const 5 + i32.gt_u + select + local.tee $0 + local.get $0 + local.get $1 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $2 block $__inlined_func$~lib/string/String#substring - i32.const 0 - i32.const 1052 - i32.load - i32.const 1 - i32.shr_u - local.tee $3 - local.get $3 - i32.const 0 - i32.gt_s - select - local.tee $2 - i32.const 5 - local.get $3 - local.get $3 - i32.const 5 - i32.gt_s - select - local.tee $0 + local.get $1 local.get $0 - local.get $2 + local.get $0 + local.get $1 i32.lt_s select i32.const 1 i32.shl local.tee $1 local.get $2 - local.get $0 - local.get $0 - local.get $2 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $2 i32.sub local.tee $0 i32.eqz @@ -2970,10 +3110,10 @@ br $__inlined_func$~lib/string/String#substring end i32.const 0 - local.get $1 local.get $3 i32.const 1 i32.shl + local.get $1 i32.eq local.get $2 select @@ -3242,7 +3382,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3306,7 +3446,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store offset=8 local.get $0 @@ -3505,7 +3644,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3539,7 +3679,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 i32.store offset=12 local.get $2 @@ -3555,10 +3694,9 @@ f64.const 0 f64.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3617,7 +3755,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3693,7 +3831,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store offset=16 local.get $0 @@ -3736,10 +3873,9 @@ i32.const 0 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index f7431d648f..fe226fd50a 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -111,8 +111,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -172,11 +172,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -190,10 +190,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -230,11 +230,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -295,19 +295,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -373,22 +373,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -636,13 +638,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -679,11 +684,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -707,11 +712,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1094,8 +1099,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1114,11 +1118,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1128,12 +1132,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1146,7 +1150,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1155,6 +1158,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1201,13 +1205,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1336,18 +1340,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1364,19 +1363,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -1498,10 +1497,9 @@ local.get $0 global.set $optional-typeparameters/tConcrete global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $optional-typeparameters/tConcrete i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1525,10 +1523,9 @@ local.get $0 global.set $optional-typeparameters/tDerived global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $optional-typeparameters/tDerived i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 1882267e40..2a8efeb9b7 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -188,8 +188,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -249,11 +249,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -267,10 +267,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -307,11 +307,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -372,19 +372,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -450,22 +450,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -713,13 +715,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -756,11 +761,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -784,11 +789,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -1171,8 +1176,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1191,11 +1195,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1205,12 +1209,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1223,7 +1227,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1232,6 +1235,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1278,13 +1282,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1413,18 +1417,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1441,19 +1440,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index bb01c66df4..81cfd7d615 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -150,8 +150,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -211,11 +211,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -229,10 +229,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1536 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -269,11 +269,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -334,19 +334,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -412,22 +412,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -675,13 +677,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -718,11 +723,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -746,11 +751,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -1133,8 +1138,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1153,11 +1157,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1167,12 +1171,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1185,7 +1189,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1194,6 +1197,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1426,13 +1430,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1561,18 +1565,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1589,19 +1588,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 - local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index f3143731ad..ab87cda390 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -105,8 +105,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -166,11 +166,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -184,10 +184,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 3296 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -224,11 +224,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -308,19 +308,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -386,22 +386,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -649,13 +651,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -692,11 +697,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -720,11 +725,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -1107,8 +1112,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1270,12 +1274,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1291,20 +1295,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1312,15 +1316,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1331,13 +1336,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1345,34 +1350,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1386,16 +1391,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1403,18 +1408,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1426,11 +1431,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1424 @@ -1439,13 +1444,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1458,54 +1464,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1515,33 +1522,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1557,18 +1565,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1577,18 +1585,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1597,10 +1605,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1609,20 +1617,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1637,10 +1645,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1657,16 +1665,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1689,8 +1697,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1740,15 +1748,15 @@ (local $4 i32) (local $5 i32) i32.const 8 - local.set $5 + local.set $4 i32.const 1056 - local.set $3 + local.set $1 loop $while-continue|0 - local.get $3 + local.get $1 i32.const 3 i32.and i32.const 0 - local.get $5 + local.get $4 select if local.get $0 @@ -1756,19 +1764,19 @@ i32.const 1 i32.add local.set $0 - local.get $3 - local.tee $1 + local.get $1 + local.tee $3 i32.const 1 i32.add - local.set $3 + local.set $1 local.get $2 - local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $while-continue|0 end end @@ -1778,108 +1786,124 @@ i32.eqz if loop $while-continue|1 - local.get $5 + local.get $4 i32.const 16 i32.ge_u if local.get $0 - local.get $3 + local.get $1 i32.load i32.store local.get $0 - local.get $3 - i32.load offset=4 - i32.store offset=4 - local.get $0 - local.get $3 - i32.load offset=8 - i32.store offset=8 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 - local.get $3 - i32.load offset=12 - i32.store offset=12 - local.get $3 - i32.const 16 + i32.const 8 + i32.add + local.get $1 + i32.const 8 i32.add - local.set $3 + i32.load + i32.store local.get $0 - i32.const 16 + i32.const 12 i32.add - local.set $0 - local.get $5 - i32.const 16 + local.get $1 + i32.const 12 + i32.add + i32.load + i32.store + local.get $1 + i32.const 16 + i32.add + local.set $1 + local.get $0 + i32.const 16 + i32.add + local.set $0 + local.get $4 + i32.const 16 i32.sub - local.set $5 + local.set $4 br $while-continue|1 end end - local.get $5 + local.get $4 i32.const 8 i32.and if local.get $0 - local.get $3 + local.get $1 i32.load i32.store local.get $0 - local.get $3 - i32.load offset=4 - i32.store offset=4 - local.get $3 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $1 i32.const 8 i32.add - local.set $3 + local.set $1 local.get $0 i32.const 8 i32.add local.set $0 end - local.get $5 + local.get $4 i32.const 4 i32.and if local.get $0 - local.get $3 + local.get $1 i32.load i32.store - local.get $3 + local.get $1 i32.const 4 i32.add - local.set $3 + local.set $1 local.get $0 i32.const 4 i32.add local.set $0 end - local.get $5 + local.get $4 i32.const 2 i32.and if local.get $0 - local.get $3 + local.get $1 i32.load16_u i32.store16 - local.get $3 + local.get $1 i32.const 2 i32.add - local.set $3 + local.set $1 local.get $0 i32.const 2 i32.add local.set $0 end - local.get $5 + local.get $4 i32.const 1 i32.and if local.get $0 - local.get $3 + local.get $1 i32.load8_u i32.store8 end return end - local.get $5 + local.get $4 i32.const 32 i32.ge_u if @@ -1894,579 +1918,693 @@ i32.sub br_table $case0|2 $case1|2 $case2|2 $break|2 end - local.get $3 + local.get $1 i32.load - local.set $4 + local.set $5 local.get $0 - local.get $3 + local.get $1 i32.load8_u i32.store8 local.get $0 - local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add - local.tee $2 + local.tee $0 i32.const 1 i32.add - local.set $0 - local.get $3 - i32.const 2 + local.set $2 + local.get $1 + i32.const 1 i32.add local.tee $1 i32.const 1 i32.add local.set $3 - local.get $2 + local.get $0 local.get $1 i32.load8_u i32.store8 - local.get $5 + local.get $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + i32.const 1 + i32.add + local.set $1 + local.get $2 + local.get $3 + i32.load8_u + i32.store8 + local.get $4 i32.const 3 i32.sub - local.set $5 + local.set $4 loop $while-continue|3 - local.get $5 + local.get $4 i32.const 17 i32.ge_u if local.get $0 - local.get $3 - i32.load offset=1 + local.get $1 + i32.const 1 + i32.add + i32.load local.tee $2 i32.const 8 i32.shl - local.get $4 + local.get $5 i32.const 24 i32.shr_u i32.or i32.store local.get $0 - local.get $2 - i32.const 24 - i32.shr_u - local.get $3 - i32.load offset=5 - local.tee $2 + i32.const 4 + i32.add + local.get $1 + i32.const 5 + i32.add + i32.load + local.tee $3 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $2 i32.const 24 i32.shr_u - local.get $3 - i32.load offset=9 + i32.or + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 9 + i32.add + i32.load local.tee $2 i32.const 8 i32.shl + local.get $3 + i32.const 24 + i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 - local.get $3 - i32.load offset=13 - local.tee $4 + i32.const 12 + i32.add + local.get $1 + i32.const 13 + i32.add + i32.load + local.tee $5 i32.const 8 i32.shl local.get $2 i32.const 24 i32.shr_u i32.or - i32.store offset=12 - local.get $3 + i32.store + local.get $1 i32.const 16 i32.add - local.set $3 + local.set $1 local.get $0 i32.const 16 i32.add local.set $0 - local.get $5 + local.get $4 i32.const 16 i32.sub - local.set $5 + local.set $4 br $while-continue|3 end end br $break|2 end - local.get $3 + local.get $1 i32.load - local.set $4 + local.set $5 local.get $0 - local.get $3 + local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $5 + local.get $3 + i32.load8_u + i32.store8 + local.get $4 i32.const 2 i32.sub - local.set $5 + local.set $4 loop $while-continue|4 - local.get $5 + local.get $4 i32.const 18 i32.ge_u if local.get $0 - local.get $3 - i32.load offset=2 + local.get $1 + i32.const 2 + i32.add + i32.load local.tee $2 i32.const 16 i32.shl - local.get $4 + local.get $5 i32.const 16 i32.shr_u i32.or i32.store local.get $0 - local.get $2 - i32.const 16 - i32.shr_u - local.get $3 - i32.load offset=6 - local.tee $2 + i32.const 4 + i32.add + local.get $1 + i32.const 6 + i32.add + i32.load + local.tee $3 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $2 i32.const 16 i32.shr_u - local.get $3 - i32.load offset=10 + i32.or + i32.store + local.get $0 + i32.const 8 + i32.add + local.get $1 + i32.const 10 + i32.add + i32.load local.tee $2 i32.const 16 i32.shl + local.get $3 + i32.const 16 + i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 - local.get $3 - i32.load offset=14 - local.tee $4 + i32.const 12 + i32.add + local.get $1 + i32.const 14 + i32.add + i32.load + local.tee $5 i32.const 16 i32.shl local.get $2 i32.const 16 i32.shr_u i32.or - i32.store offset=12 - local.get $3 + i32.store + local.get $1 i32.const 16 i32.add - local.set $3 + local.set $1 local.get $0 i32.const 16 i32.add local.set $0 - local.get $5 + local.get $4 i32.const 16 i32.sub - local.set $5 + local.set $4 br $while-continue|4 end end br $break|2 end - local.get $3 + local.get $1 i32.load - local.set $4 + local.set $5 local.get $0 local.tee $2 i32.const 1 i32.add local.set $0 - local.get $3 - local.tee $1 + local.get $1 + local.tee $3 i32.const 1 i32.add - local.set $3 + local.set $1 local.get $2 - local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 loop $while-continue|5 - local.get $5 + local.get $4 i32.const 19 i32.ge_u if local.get $0 - local.get $3 - i32.load offset=3 + local.get $1 + i32.const 3 + i32.add + i32.load local.tee $2 i32.const 24 i32.shl - local.get $4 + local.get $5 i32.const 8 i32.shr_u i32.or i32.store local.get $0 + i32.const 4 + i32.add + local.get $1 + i32.const 7 + i32.add + i32.load + local.tee $3 + i32.const 24 + i32.shl local.get $2 i32.const 8 i32.shr_u - local.get $3 - i32.load offset=7 - local.tee $2 - i32.const 24 - i32.shl i32.or - i32.store offset=4 + i32.store local.get $0 - local.get $2 i32.const 8 - i32.shr_u - local.get $3 - i32.load offset=11 + i32.add + local.get $1 + i32.const 11 + i32.add + i32.load local.tee $2 i32.const 24 i32.shl + local.get $3 + i32.const 8 + i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 - local.get $3 - i32.load offset=15 - local.tee $4 + i32.const 12 + i32.add + local.get $1 + i32.const 15 + i32.add + i32.load + local.tee $5 i32.const 24 i32.shl local.get $2 i32.const 8 i32.shr_u i32.or - i32.store offset=12 - local.get $3 + i32.store + local.get $1 i32.const 16 i32.add - local.set $3 + local.set $1 local.get $0 i32.const 16 i32.add local.set $0 - local.get $5 + local.get $4 i32.const 16 i32.sub - local.set $5 + local.set $4 br $while-continue|5 end end end end - local.get $5 + local.get $4 i32.const 16 i32.and if local.get $0 - local.get $3 + local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 local.get $3 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 local.get $3 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 local.get $3 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 local.get $3 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 local.get $3 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 - local.get $3 + local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 local.get $3 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 end - local.get $5 + local.get $4 i32.const 8 i32.and if local.get $0 - local.get $3 + local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 local.get $3 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 local.get $3 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 local.get $3 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 end - local.get $5 + local.get $4 i32.const 4 i32.and if local.get $0 - local.get $3 + local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 local.get $3 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + local.get $1 + i32.load8_u + i32.store8 + local.get $0 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 end - local.get $5 + local.get $4 i32.const 2 i32.and if local.get $0 - local.get $3 + local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $1 - i32.const 2 + i32.const 1 i32.add - local.set $0 - local.get $3 local.tee $2 - i32.const 2 + i32.const 1 i32.add - local.set $3 + local.set $0 local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.add + local.set $1 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 end - local.get $5 + local.get $4 i32.const 1 i32.and if local.get $0 - local.get $3 + local.get $1 i32.load8_u i32.store8 end @@ -2739,13 +2877,13 @@ i64.const 100000000 i64.ge_u if - local.get $2 local.get $1 i32.const 4 i32.sub local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add local.get $0 local.get $0 @@ -2779,13 +2917,13 @@ i64.shl i64.or i64.store - local.get $2 local.get $1 i32.const 4 i32.sub local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add local.get $3 i32.const 10000 @@ -2936,7 +3074,7 @@ i32.const 0 i32.store i32.const 1056 - local.set $0 + local.set $3 i32.const 8 local.set $7 block $~lib/util/memory/memmove|inlined.0 @@ -2944,31 +3082,31 @@ i32.const 0 call $~lib/rt/itcms/__new local.tee $4 - local.tee $3 + local.tee $0 i32.const 1056 i32.eq br_if $~lib/util/memory/memmove|inlined.0 i32.const 1048 - local.get $3 + local.get $0 i32.sub i32.const -16 i32.le_u if - local.get $3 + local.get $0 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end - local.get $3 + local.get $0 i32.const 1056 i32.lt_u if - local.get $3 + local.get $0 i32.const 7 i32.and i32.eqz if loop $while-continue|0 - local.get $3 + local.get $0 i32.const 7 i32.and if @@ -2979,16 +3117,16 @@ i32.const 1 i32.sub local.set $7 - local.get $3 + local.get $0 local.tee $2 i32.const 1 i32.add - local.set $3 - local.get $0 + local.set $0 + local.get $3 local.tee $1 i32.const 1 i32.add - local.set $0 + local.set $3 local.get $2 local.get $1 i32.load8_u @@ -3001,22 +3139,22 @@ i32.const 8 i32.ge_u if - local.get $3 local.get $0 + local.get $3 i64.load i64.store local.get $7 i32.const 8 i32.sub local.set $7 - local.get $3 - i32.const 8 - i32.add - local.set $3 local.get $0 i32.const 8 i32.add local.set $0 + local.get $3 + i32.const 8 + i32.add + local.set $3 br $while-continue|1 end end @@ -3024,16 +3162,16 @@ loop $while-continue|2 local.get $7 if - local.get $3 + local.get $0 local.tee $2 i32.const 1 i32.add - local.set $3 - local.get $0 + local.set $0 + local.get $3 local.tee $1 i32.const 1 i32.add - local.set $0 + local.set $3 local.get $2 local.get $1 i32.load8_u @@ -3046,13 +3184,13 @@ end end else - local.get $3 + local.get $0 i32.const 7 i32.and i32.eqz if loop $while-continue|3 - local.get $3 + local.get $0 local.get $7 i32.add i32.const 7 @@ -3061,7 +3199,7 @@ local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $3 + local.get $0 local.get $7 i32.const 1 i32.sub @@ -3080,7 +3218,7 @@ i32.const 8 i32.ge_u if - local.get $3 + local.get $0 local.get $7 i32.const 8 i32.sub @@ -3098,7 +3236,7 @@ loop $while-continue|5 local.get $7 if - local.get $3 + local.get $0 local.get $7 i32.const 1 i32.sub @@ -3125,7 +3263,6 @@ local.get $0 i32.store local.get $0 - local.tee $1 if local.get $3 i32.eqz @@ -3138,7 +3275,7 @@ unreachable end global.get $~lib/rt/itcms/white - local.get $1 + local.get $0 i32.const 20 i32.sub local.tee $2 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index f09953a61a..6780f6916a 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -440,8 +440,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -501,11 +501,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -519,10 +519,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 11248 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1632 i32.const 1696 @@ -559,11 +559,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -624,19 +624,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -702,22 +702,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -965,13 +967,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1008,11 +1013,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1776 @@ -1036,11 +1041,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1776 @@ -1423,8 +1428,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1586,12 +1590,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1607,20 +1611,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1628,15 +1632,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1647,13 +1652,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1661,34 +1666,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1702,16 +1707,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1719,18 +1724,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1742,11 +1747,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1776 @@ -1755,13 +1760,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1774,54 +1780,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1831,33 +1838,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1873,18 +1881,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1893,18 +1901,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1913,10 +1921,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1925,20 +1933,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1953,10 +1961,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1973,16 +1981,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -2005,8 +2013,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -2582,9 +2590,6 @@ br $while-continue|0 end end - local.get $10 - i64.extend_i32_s - local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -2593,10 +2598,11 @@ local.get $6 i64.const 10 i64.mul - local.tee $1 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 + local.tee $1 local.get $4 i64.extend_i32_s i64.or @@ -2613,7 +2619,7 @@ i32.shl i32.const 9760 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -2626,7 +2632,7 @@ i32.sub local.set $8 local.get $3 - local.get $1 + local.get $0 local.get $12 i64.and local.tee $6 @@ -2639,7 +2645,6 @@ global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $9 i32.const 0 local.get $8 i32.sub @@ -2648,6 +2653,7 @@ i32.const 10688 i32.add i64.load32_u + local.get $9 i64.mul local.set $1 local.get $4 @@ -2709,6 +2715,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2753,17 +2761,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2788,11 +2808,15 @@ i32.load i32.store local.get $0 - local.get $1 - i32.load offset=4 - i32.store offset=4 - local.get $1 - i32.const 8 + i32.const 4 + i32.add + local.get $1 + i32.const 4 + i32.add + i32.load + i32.store + local.get $1 + i32.const 8 i32.add local.set $1 local.get $0 @@ -2868,27 +2892,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2900,7 +2932,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2910,8 +2944,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2919,10 +2957,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2930,10 +2972,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2941,7 +2987,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2967,19 +3013,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2991,7 +3041,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -3001,8 +3053,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -3010,10 +3066,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -3021,10 +3081,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -3032,7 +3096,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3078,7 +3142,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -3088,8 +3154,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -3097,10 +3167,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -3108,10 +3182,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -3119,7 +3197,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3146,145 +3224,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -3295,73 +3405,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -3372,37 +3498,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -3413,19 +3547,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -3651,18 +3789,18 @@ local.get $0 local.get $1 i32.add - local.tee $3 + local.tee $2 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $3 + local.get $2 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -3679,61 +3817,61 @@ br $for-loop|0 end end - local.get $3 + local.get $2 i32.const 1 i32.shl i32.const 9760 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $2 i32.const 2 i32.add else - local.get $3 + local.get $2 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $2 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.shl i32.const 9760 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.add - local.get $3 + local.get $2 i32.const 0 local.get $1 i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $2 i32.const 46 i32.store16 local.get $0 i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $2 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $2 i32.sub - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 9760 @@ -3750,7 +3888,7 @@ local.set $1 loop $for-loop|1 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $1 @@ -3768,7 +3906,7 @@ end end local.get $0 - local.get $3 + local.get $2 i32.add else local.get $0 @@ -3778,13 +3916,13 @@ i32.const 9762 i32.const 101 i32.store16 - local.get $3 + local.get $2 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s - local.tee $3 + local.tee $2 if i32.const 0 local.get $1 @@ -3849,7 +3987,7 @@ i32.const 9764 i32.const 45 i32.const 43 - local.get $3 + local.get $2 select i32.store16 local.get $0 @@ -3875,10 +4013,10 @@ i32.const 101 i32.store16 offset=2 local.get $1 - local.tee $2 i32.const 4 i32.add - local.get $3 + local.tee $3 + local.get $2 i32.const 1 i32.sub local.tee $1 @@ -3892,65 +4030,65 @@ local.set $1 end local.get $1 - local.tee $3 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.set $3 + local.set $2 local.get $1 - local.get $3 + local.get $2 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $3 i32.const 45 i32.const 43 local.get $5 select - i32.store16 offset=4 + i32.store16 local.get $0 local.get $1 i32.add @@ -3962,12 +4100,12 @@ end ) (func $~lib/number/F64#toString (result i32) - (local $0 i64) + (local $0 i32) (local $1 i64) (local $2 i64) (local $3 i32) (local $4 i64) - (local $5 i32) + (local $5 i64) (local $6 f64) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3996,14 +4134,17 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $4 + local.tee $2 i64.const 4294967295 i64.and - local.set $1 - local.get $4 + local.tee $1 + i64.const 31 + i64.shl + local.set $5 + local.get $2 i64.const 32 i64.shr_u - local.tee $4 + local.tee $2 i64.const 31 i64.shl local.get $1 @@ -4015,14 +4156,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $2 + local.tee $4 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $4 i64.const 4294967295 i64.and - local.get $4 + local.get $2 i64.const 10 i64.shl i64.add @@ -4033,18 +4174,15 @@ i64.add i64.const 1 i64.sub - local.set $0 - local.get $4 - i64.const 31 - i64.shl - local.get $1 + local.set $4 + local.get $2 i64.const 31 i64.shl - local.tee $2 + local.get $5 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $5 i64.const 4294967295 i64.and i64.const 2147483647 @@ -4052,12 +4190,12 @@ i64.const 32 i64.shr_u i64.add - local.get $0 + local.get $4 global.get $~lib/util/number/_exp_pow i32.const 3 i32.add - local.get $0 local.get $4 + local.get $2 i64.const 2147483647 i64.mul local.get $1 @@ -4069,14 +4207,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $0 + local.tee $1 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $2 i64.const 4294966784 i64.mul - local.get $0 + local.get $1 i64.const 4294967295 i64.and i64.add @@ -4091,25 +4229,24 @@ call $~lib/util/number/genDigits global.get $~lib/util/number/_K call $~lib/util/number/prettify + i32.const 1 + i32.shl local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.const 1 - i32.shl - local.tee $5 - i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 9760 - local.get $5 + local.get $3 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $0 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -4149,6 +4286,7 @@ (func $start:resolve-binary (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -5108,13 +5246,13 @@ local.get $0 local.get $1 i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10880 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10880 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 10880 i32.store offset=4 i32.const 10880 @@ -5131,11 +5269,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 10912 @@ -5160,11 +5299,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 10944 @@ -5189,11 +5329,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 10976 @@ -5218,11 +5359,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11008 @@ -5247,11 +5389,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11040 @@ -5276,11 +5419,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11072 @@ -5305,11 +5449,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11104 @@ -5334,11 +5479,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11136 @@ -5363,11 +5509,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11168 @@ -5392,11 +5539,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11200 @@ -5421,11 +5569,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $2 i32.store offset=12 - local.get $0 local.get $1 + local.get $2 i32.store offset=16 local.get $0 i32.const 11232 @@ -5454,13 +5603,15 @@ global.set $resolve-binary/bar2 global.get $~lib/memory/__stack_pointer local.tee $0 + local.tee $1 global.get $resolve-binary/bar i32.store offset=4 - local.get $0 + local.get $1 global.get $resolve-binary/bar2 local.tee $1 + local.tee $2 i32.store offset=8 - local.get $1 + local.get $2 global.set $resolve-binary/bar local.get $0 global.get $resolve-binary/bar diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 1ced59c1ab..0d0ab84bb4 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -157,8 +157,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -218,11 +218,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -236,10 +236,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 4800 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1360 i32.const 1424 @@ -276,11 +276,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -360,19 +360,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -438,22 +438,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -701,13 +703,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -744,11 +749,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1504 @@ -772,11 +777,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1504 @@ -1159,8 +1164,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1526,13 +1530,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1547,7 +1551,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1584,7 +1589,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1593,6 +1597,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1653,12 +1658,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1504 @@ -1671,8 +1676,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1686,7 +1692,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1695,15 +1701,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1718,22 +1724,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1743,37 +1750,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1781,7 +1789,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2202,9 +2210,6 @@ br $while-continue|0 end end - local.get $10 - i64.extend_i32_s - local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -2213,10 +2218,11 @@ local.get $6 i64.const 10 i64.mul - local.tee $1 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 + local.tee $1 local.get $4 i64.extend_i32_s i64.or @@ -2233,7 +2239,7 @@ i32.shl i32.const 1776 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -2246,7 +2252,7 @@ i32.sub local.set $8 local.get $3 - local.get $1 + local.get $0 local.get $12 i64.and local.tee $6 @@ -2259,7 +2265,6 @@ global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $9 i32.const 0 local.get $8 i32.sub @@ -2268,6 +2273,7 @@ i32.const 2704 i32.add i64.load32_u + local.get $9 i64.mul local.set $1 local.get $4 @@ -2329,6 +2335,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2373,17 +2381,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2408,9 +2428,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2488,27 +2512,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2520,7 +2552,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2530,8 +2564,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2539,10 +2577,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2550,10 +2592,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2561,7 +2607,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2587,19 +2633,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2611,7 +2661,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2621,8 +2673,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2630,10 +2686,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2641,10 +2701,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2652,7 +2716,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2698,7 +2762,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2708,8 +2774,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2717,10 +2787,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2728,10 +2802,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2739,7 +2817,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2766,145 +2844,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2915,73 +3025,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2992,37 +3118,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -3033,19 +3167,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -3360,10 +3498,10 @@ local.get $2 i32.eqz if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store @@ -3375,24 +3513,24 @@ local.get $1 local.get $2 i32.add - local.tee $4 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $4 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $4 + local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -3403,31 +3541,32 @@ br $for-loop|0 end end - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store - local.get $4 + local.get $3 i32.const 2 i32.add else - local.get $4 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add + local.tee $4 local.tee $0 i32.const 2 i32.add @@ -3438,29 +3577,29 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $4 i32.const 46 i32.store16 local.get $1 i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const -6 i32.gt_s select if (result i32) - local.get $0 i32.const 2 - local.get $4 + local.get $3 i32.sub - local.tee $5 + local.tee $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $0 local.get $1 @@ -3474,13 +3613,13 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $5 + local.get $4 i32.lt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -3492,7 +3631,7 @@ end end local.get $1 - local.get $5 + local.get $4 i32.add else local.get $1 @@ -3503,10 +3642,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $5 + local.get $3 i32.const 1 i32.sub local.tee $0 @@ -3573,12 +3712,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $5 i32.const 45 i32.const 43 local.get $2 select - i32.store16 offset=4 + i32.store16 local.get $0 i32.const 2 i32.add @@ -3606,16 +3745,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $6 + local.get $3 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -3676,12 +3815,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $6 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select - i32.store16 offset=4 + i32.store16 local.get $0 local.get $1 i32.add @@ -3694,18 +3833,24 @@ ) (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) (local $1 i64) - (local $2 i64) + (local $2 i32) (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i64) (local $7 i64) - (local $8 i32) - (local $9 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) local.get $0 f64.const 0 f64.lt - local.tee $8 + local.tee $5 if (result f64) i32.const 1776 i32.const 45 @@ -3722,66 +3867,66 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $2 + i32.const 1 + local.get $2 + select + i32.const 1075 + i32.sub + local.tee $10 + i32.const 1 + i32.sub + local.get $1 + i64.const 4503599627370495 + i64.and + local.get $2 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl - local.get $1 - i64.const 4503599627370495 - i64.and i64.add - local.tee $2 + local.tee $1 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $1 - local.get $1 + local.tee $3 i64.clz i32.wrap_i64 - local.tee $5 + local.tee $4 + i32.sub + local.set $2 + local.get $3 + local.get $4 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $9 - i32.const 1 - i32.sub - local.get $5 - i32.sub - local.set $4 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $4 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $9 - local.get $5 - i32.sub + local.get $10 local.get $4 i32.sub + local.get $2 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $2 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $4 + local.tee $10 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3790,9 +3935,9 @@ f64.add local.tee $0 i32.trunc_f64_s - local.tee $5 + local.tee $2 local.get $0 - local.get $5 + local.get $2 f64.convert_i32_s f64.ne i32.add @@ -3800,105 +3945,125 @@ i32.shr_s i32.const 1 i32.add - local.tee $5 + local.tee $2 i32.const 3 i32.shl - local.tee $9 + local.tee $4 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $4 i32.const 1832 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $5 + local.get $2 i32.const 1 i32.shl i32.const 2528 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow + local.get $1 + local.get $1 + i64.clz + i64.shl local.tee $6 i64.const 4294967295 i64.and - local.set $1 + local.set $3 + global.get $~lib/util/number/_frc_pow + local.tee $11 + i64.const 4294967295 + i64.and + local.tee $1 + local.tee $7 local.get $6 i64.const 32 i64.shr_u - local.tee $6 + local.tee $13 + i64.mul + local.get $3 + local.get $7 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $6 global.get $~lib/util/number/_frc_plus - local.tee $3 + local.tee $8 + i64.const 4294967295 + i64.and + local.set $7 + local.get $1 + local.get $8 i64.const 32 i64.shr_u - local.tee $7 + local.tee $14 i64.mul local.get $1 local.get $7 i64.mul - local.get $1 - local.get $3 - i64.const 4294967295 - i64.and - local.tee $3 - i64.mul i64.const 32 i64.shr_u i64.add - local.tee $7 + local.set $8 + global.get $~lib/util/number/_frc_minus + local.tee $9 + i64.const 4294967295 + i64.and + local.set $12 + local.get $1 + local.get $9 i64.const 32 i64.shr_u - i64.add - local.get $3 - local.get $6 + local.tee $15 + i64.mul + local.get $1 + local.get $12 i64.mul - local.get $7 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.sub - local.set $3 - local.get $8 + local.set $9 + local.get $5 i32.const 1 i32.shl i32.const 1776 i32.add - local.get $6 - local.get $2 - local.get $2 - i64.clz - i64.shl - local.tee $2 + local.get $13 + local.get $11 i64.const 32 i64.shr_u - local.tee $7 + local.tee $1 + local.tee $11 i64.mul - local.get $1 - local.get $7 + local.get $6 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + local.get $11 i64.mul - local.get $1 - local.get $2 + local.get $6 i64.const 4294967295 i64.and - local.tee $2 - i64.mul + i64.add + i64.const 2147483647 + i64.add i64.const 32 i64.shr_u i64.add - local.tee $7 + local.get $1 + local.get $14 + i64.mul + local.get $8 i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $6 - i64.mul + local.get $1 local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -3907,40 +4072,26 @@ i64.const 32 i64.shr_u i64.add - local.get $3 - local.get $4 + i64.const 1 + i64.sub + local.tee $3 global.get $~lib/util/number/_exp_pow + local.get $10 i32.add i32.const -64 i32.sub local.get $3 - local.get $6 - global.get $~lib/util/number/_frc_minus - local.tee $2 - i64.const 32 - i64.shr_u - local.tee $3 - i64.mul - local.get $1 - local.get $3 - i64.mul local.get $1 - local.get $2 - i64.const 4294967295 - i64.and - local.tee $1 + local.get $15 i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $2 + local.get $9 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $6 + local.get $12 i64.mul - local.get $2 + local.get $9 i64.const 4294967295 i64.and i64.add @@ -3952,13 +4103,13 @@ i64.const 1 i64.add i64.sub - local.get $8 + local.get $5 call $~lib/util/number/genDigits - local.get $8 + local.get $5 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $8 + local.get $5 i32.add ) (func $~lib/number/F32#toString (param $0 f32) (result i32) @@ -4441,10 +4592,9 @@ call $~lib/number/F32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3168 i32.store offset=4 local.get $0 @@ -4469,10 +4619,9 @@ call $~lib/number/F32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3280 i32.store offset=4 local.get $0 @@ -4509,10 +4658,9 @@ call $~lib/number/F32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3312 i32.store offset=4 local.get $0 @@ -4579,7 +4727,7 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4610,7 +4758,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -4645,10 +4792,9 @@ call $~lib/number/U8#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4720 i32.store offset=4 local.get $0 @@ -4673,10 +4819,9 @@ call $~lib/number/U8#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4752 i32.store offset=4 local.get $0 @@ -4713,10 +4858,9 @@ call $~lib/number/U8#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4784 i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index e6d470de48..bd1158bbad 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -139,8 +139,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -200,11 +200,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -218,10 +218,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 3424 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1648 i32.const 1712 @@ -258,11 +258,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -323,19 +323,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -401,22 +401,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -664,13 +666,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -707,11 +712,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1792 @@ -735,11 +740,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1792 @@ -1122,8 +1127,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1312,14 +1316,14 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1327,15 +1331,16 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $1 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.set $4 + local.get $4 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1346,13 +1351,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1360,34 +1365,34 @@ i32.const 4 i32.sub end - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $3 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 - local.get $2 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $1 i32.add else - local.get $2 + local.get $1 end i32.const 4 - local.get $5 - i32.load offset=1568 local.get $4 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 @@ -1401,16 +1406,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1418,18 +1423,18 @@ unreachable end end - local.get $5 local.get $4 + local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $4 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1441,11 +1446,11 @@ end end local.get $2 - local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $1 + i32.lt_u if i32.const 0 i32.const 1792 @@ -1454,13 +1459,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $4 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.tee $3 + i32.load + local.set $2 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1473,53 +1479,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and - local.get $2 + local.get $1 i32.sub - local.tee $1 + local.tee $5 i32.const 16 i32.ge_u if local.get $3 local.get $2 - local.get $4 i32.const 2 i32.and + local.get $1 i32.or i32.store - local.get $2 + local.get $1 local.get $3 i32.const 4 i32.add i32.add - local.tee $2 - local.get $1 + local.tee $1 + local.get $5 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $4 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $3 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store local.get $3 i32.const 4 i32.add - local.tee $2 local.get $3 i32.load i32.const -4 i32.and i32.add - local.get $2 + local.get $3 + i32.const 4 + i32.add local.get $3 i32.load i32.const -4 @@ -1531,36 +1538,37 @@ i32.store end local.get $3 + local.tee $1 i32.const 1 i32.store offset=12 - local.get $3 + local.get $1 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $3 i32.load offset=8 - local.set $1 - local.get $3 - local.get $2 + local.set $2 + local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $1 + local.get $2 i32.store offset=8 - local.get $1 - local.get $3 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $1 i32.load i32.const -4 i32.and @@ -1568,7 +1576,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $1 i32.const 20 i32.add local.tee $3 @@ -1862,7 +1870,7 @@ i32.const 1200 i32.load call_indirect $0 (type $i32_=>_i32) - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1875,7 +1883,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa32 - local.get $1 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -1883,74 +1891,74 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1424 - local.set $1 + local.set $2 br $__inlined_func$~lib/util/number/itoa32 end i32.const 0 - local.get $1 + local.get $2 i32.sub - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 31 i32.shr_u - local.tee $4 + local.tee $3 select local.tee $0 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.get $4 + local.get $3 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.shl call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $while-continue|0 local.get $0 @@ -1960,20 +1968,20 @@ local.get $0 i32.const 10000 i32.rem_u - local.set $3 + local.set $4 local.get $0 i32.const 10000 i32.div_u local.set $0 local.get $1 - local.get $2 i32.const 4 i32.sub - local.tee $2 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add - local.get $3 + local.get $4 i32.const 100 i32.div_u i32.const 2 @@ -1981,7 +1989,7 @@ i32.const 1836 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -2001,12 +2009,12 @@ i32.ge_u if local.get $1 - local.get $2 i32.const 2 i32.sub - local.tee $2 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add local.get $0 i32.const 100 @@ -2027,11 +2035,11 @@ i32.ge_u if local.get $1 - local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $2 i32.add local.get $0 i32.const 2 @@ -2042,20 +2050,20 @@ i32.store else local.get $1 - local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $2 i32.add local.get $0 i32.const 48 i32.add i32.store16 end - local.get $4 + local.get $3 if - local.get $1 + local.get $2 i32.const 45 i32.store16 end @@ -2066,34 +2074,31 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $1 + local.get $2 i32.store local.get $0 i32.const 3408 i32.store offset=4 block $__inlined_func$~lib/string/String.__eq (result i32) i32.const 1 - local.get $1 + local.get $2 i32.const 3408 i32.eq br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - i32.const 3408 - i32.const 0 - local.get $1 - select + local.get $2 i32.eqz br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.const 3404 i32.load i32.const 1 @@ -2103,38 +2108,36 @@ drop block $__inlined_func$~lib/util/string/compareImpl (result i32) i32.const 3408 - local.set $4 - local.get $1 - local.tee $0 + local.set $3 + local.get $2 i32.const 7 i32.and i32.const 1 - local.get $2 - local.tee $1 + local.get $0 i32.const 4 i32.ge_u select i32.eqz if loop $do-continue|0 - local.get $0 + local.get $2 i64.load - local.get $4 + local.get $3 i64.load i64.eq if - local.get $0 + local.get $2 i32.const 8 i32.add - local.set $0 - local.get $4 + local.set $2 + local.get $3 i32.const 8 i32.add - local.set $4 - local.get $1 + local.set $3 + local.get $0 i32.const 4 i32.sub - local.tee $1 + local.tee $0 i32.const 4 i32.ge_u br_if $do-continue|0 @@ -2142,34 +2145,34 @@ end end loop $while-continue|1 - local.get $1 - local.tee $2 + local.get $0 + local.tee $1 i32.const 1 i32.sub - local.set $1 - local.get $2 + local.set $0 + local.get $1 if - local.get $4 + local.get $2 i32.load16_u - local.tee $2 - local.get $0 + local.tee $1 + local.get $3 i32.load16_u - local.tee $3 + local.tee $4 i32.ne if - local.get $3 - local.get $2 + local.get $1 + local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $0 + local.get $2 i32.const 2 i32.add - local.set $0 - local.get $4 + local.set $2 + local.get $3 i32.const 2 i32.add - local.set $4 + local.set $3 br $while-continue|1 end end diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index 2536a6c7ec..d4d399e1d1 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -108,8 +108,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -169,11 +169,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -187,10 +187,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -227,11 +227,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -292,19 +292,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -370,22 +370,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -633,13 +635,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -676,11 +681,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -704,11 +709,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1091,8 +1096,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1111,11 +1115,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1125,12 +1129,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1143,7 +1147,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1152,6 +1155,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1198,13 +1202,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1333,18 +1337,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1361,19 +1360,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index 2bc063e3b9..49ee7c006e 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -104,8 +104,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -165,11 +165,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -183,10 +183,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -223,11 +223,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -288,19 +288,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -366,22 +366,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -629,13 +631,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -672,11 +677,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -700,11 +705,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1087,8 +1092,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1107,11 +1111,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1121,12 +1125,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1139,7 +1143,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1148,6 +1151,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1186,7 +1190,6 @@ ) (func $~start (local $0 i32) - (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1242,10 +1245,9 @@ call $resolve-new/Foo#constructor local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -1309,13 +1311,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1444,18 +1446,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1472,19 +1469,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 - local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index 8f2d7d0c12..0a8ce7f630 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -139,8 +139,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -200,11 +200,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -218,10 +218,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 3680 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -258,11 +258,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -323,19 +323,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -401,22 +401,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -664,13 +666,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -707,11 +712,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -735,11 +740,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -1122,8 +1127,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1285,12 +1289,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1306,20 +1310,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1327,15 +1331,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1346,13 +1351,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1360,34 +1365,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1401,16 +1406,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1418,18 +1423,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1441,11 +1446,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1616 @@ -1454,13 +1459,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1473,54 +1479,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1530,33 +1537,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1572,18 +1580,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1592,18 +1600,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1612,10 +1620,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1624,20 +1632,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1652,10 +1660,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1672,16 +1680,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1704,8 +1712,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1863,13 +1871,13 @@ i32.const 10000 i32.div_u local.set $0 - local.get $1 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $1 i32.add local.get $4 i32.const 100 @@ -1898,13 +1906,13 @@ i32.const 100 i32.ge_u if - local.get $1 local.get $2 i32.const 2 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $1 i32.add local.get $0 i32.const 100 @@ -1924,12 +1932,12 @@ i32.const 10 i32.ge_u if - local.get $1 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $1 i32.add local.get $0 i32.const 2 @@ -1939,12 +1947,12 @@ i32.load i32.store else - local.get $1 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $1 i32.add local.get $0 i32.const 48 @@ -2167,10 +2175,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3232 i32.store offset=4 local.get $0 @@ -2384,7 +2391,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2409,7 +2417,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store offset=8 local.get $0 @@ -2417,10 +2424,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3632 i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index fd989e47d8..d0cb4621d9 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -143,8 +143,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -204,11 +204,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -222,10 +222,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 4608 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -262,11 +262,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -327,19 +327,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -405,22 +405,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -668,13 +670,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -711,11 +716,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -739,11 +744,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -1126,8 +1131,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1316,14 +1320,14 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1331,15 +1335,16 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $1 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $2 + local.set $4 + local.get $4 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1350,13 +1355,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1364,34 +1369,34 @@ i32.const 4 i32.sub end - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $3 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 - local.get $2 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $1 i32.add else - local.get $2 + local.get $1 end i32.const 4 - local.get $5 - i32.load offset=1568 local.get $4 + i32.load offset=1568 + local.get $3 i32.const 16 i32.shl i32.const 4 @@ -1405,16 +1410,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1422,18 +1427,18 @@ unreachable end end - local.get $5 local.get $4 + local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $4 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1445,11 +1450,11 @@ end end local.get $2 - local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $1 + i32.lt_u if i32.const 0 i32.const 1616 @@ -1458,13 +1463,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $4 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.tee $3 + i32.load + local.set $2 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1477,53 +1483,54 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const -4 i32.and - local.get $2 + local.get $1 i32.sub - local.tee $1 + local.tee $5 i32.const 16 i32.ge_u if local.get $3 local.get $2 - local.get $4 i32.const 2 i32.and + local.get $1 i32.or i32.store - local.get $2 + local.get $1 local.get $3 i32.const 4 i32.add i32.add - local.tee $2 - local.get $1 + local.tee $1 + local.get $5 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $4 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $3 - local.get $4 + local.get $2 i32.const -2 i32.and i32.store local.get $3 i32.const 4 i32.add - local.tee $2 local.get $3 i32.load i32.const -4 i32.and i32.add - local.get $2 + local.get $3 + i32.const 4 + i32.add local.get $3 i32.load i32.const -4 @@ -1535,36 +1542,37 @@ i32.store end local.get $3 + local.tee $1 i32.const 1 i32.store offset=12 - local.get $3 + local.get $1 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $3 i32.load offset=8 - local.set $1 - local.get $3 - local.get $2 + local.set $2 + local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $1 + local.get $2 i32.store offset=8 - local.get $1 - local.get $3 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $1 i32.load i32.const -4 i32.and @@ -1572,7 +1580,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $1 i32.const 20 i32.add local.tee $3 @@ -2284,9 +2292,6 @@ br $while-continue|0 end end - local.get $10 - i64.extend_i32_s - local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -2295,10 +2300,11 @@ local.get $6 i64.const 10 i64.mul - local.tee $1 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 + local.tee $1 local.get $4 i64.extend_i32_s i64.or @@ -2315,7 +2321,7 @@ i32.shl i32.const 3472 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -2328,7 +2334,7 @@ i32.sub local.set $8 local.get $3 - local.get $1 + local.get $0 local.get $12 i64.and local.tee $6 @@ -2341,7 +2347,6 @@ global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $9 i32.const 0 local.get $8 i32.sub @@ -2350,6 +2355,7 @@ i32.const 4400 i32.add i64.load32_u + local.get $9 i64.mul local.set $1 local.get $4 @@ -2411,6 +2417,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2455,17 +2463,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2490,9 +2510,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2570,27 +2594,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2602,7 +2634,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2612,8 +2646,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2621,10 +2659,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2632,10 +2674,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2643,7 +2689,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2669,19 +2715,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2693,7 +2743,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2703,8 +2755,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2712,21 +2768,29 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 - local.tee $3 - i32.const 16 + i32.const 10 + i32.add + i32.load + local.tee $3 + i32.const 16 i32.shl local.get $4 i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2734,7 +2798,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2780,7 +2844,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2790,8 +2856,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2799,10 +2869,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2810,10 +2884,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2821,7 +2899,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2848,145 +2926,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2997,73 +3107,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -3074,37 +3200,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -3115,19 +3249,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -3353,18 +3491,18 @@ local.get $0 local.get $1 i32.add - local.tee $3 + local.tee $2 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $3 + local.get $2 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 @@ -3381,61 +3519,61 @@ br $for-loop|0 end end - local.get $3 + local.get $2 i32.const 1 i32.shl i32.const 3472 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $2 i32.const 2 i32.add else - local.get $3 + local.get $2 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $2 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $2 i32.const 1 i32.shl i32.const 3472 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.add - local.get $3 + local.get $2 i32.const 0 local.get $1 i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $2 i32.const 46 i32.store16 local.get $0 i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $2 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $2 i32.sub - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 3472 @@ -3452,7 +3590,7 @@ local.set $1 loop $for-loop|1 local.get $1 - local.get $3 + local.get $2 i32.lt_s if local.get $1 @@ -3470,7 +3608,7 @@ end end local.get $0 - local.get $3 + local.get $2 i32.add else local.get $0 @@ -3480,13 +3618,13 @@ i32.const 3474 i32.const 101 i32.store16 - local.get $3 + local.get $2 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $3 + local.tee $2 if i32.const 0 local.get $0 @@ -3551,7 +3689,7 @@ i32.const 3476 i32.const 45 i32.const 43 - local.get $3 + local.get $2 select i32.store16 local.get $0 @@ -3577,10 +3715,10 @@ i32.const 101 i32.store16 offset=2 local.get $1 - local.tee $2 i32.const 4 i32.add - local.get $3 + local.tee $3 + local.get $2 i32.const 1 i32.sub local.tee $1 @@ -3594,65 +3732,65 @@ local.set $1 end local.get $1 - local.tee $3 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.set $3 + local.set $2 local.get $1 - local.get $3 + local.get $2 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $3 i32.const 45 i32.const 43 local.get $5 select - i32.store16 offset=4 + i32.store16 local.get $0 local.get $1 i32.add @@ -3718,9 +3856,9 @@ (func $~start (local $0 i32) (local $1 i64) - (local $2 i32) + (local $2 i64) (local $3 i64) - (local $4 i64) + (local $4 i32) (local $5 i64) (local $6 i64) global.get $~lib/memory/__stack_pointer @@ -3794,10 +3932,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 3232 i32.store offset=4 local.get $0 @@ -3832,34 +3969,36 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow + local.tee $2 + i64.const 4294967295 + i64.and + local.tee $3 + i64.const 31 + i64.shl local.tee $1 + local.set $5 + local.get $2 i64.const 32 i64.shr_u - local.tee $4 + local.tee $2 i64.const 31 i64.shl local.tee $6 - local.get $1 - i64.const 4294967295 - i64.and - local.tee $1 - i64.const 31 - i64.shl - local.tee $5 - local.get $1 + local.get $3 i64.const 10 i64.shl i64.const 32 i64.shr_u + local.get $1 i64.add - local.tee $3 + local.tee $1 i64.const 32 i64.shr_u i64.add - local.get $3 + local.get $1 i64.const 4294967295 i64.and - local.get $4 + local.get $2 i64.const 10 i64.shl i64.add @@ -3870,11 +4009,11 @@ i64.add i64.const 1 i64.sub - local.set $3 - local.get $6 + local.set $1 local.get $5 i64.const 32 i64.shr_u + local.get $6 i64.add local.get $5 i64.const 4294967295 @@ -3884,31 +4023,31 @@ i64.const 32 i64.shr_u i64.add - local.get $3 + local.get $1 global.get $~lib/util/number/_exp_pow i32.const 1 i32.add - local.get $3 - local.get $4 + local.get $1 + local.get $2 i64.const 2147483647 i64.mul - local.get $1 + local.get $3 i64.const 2147483647 i64.mul - local.get $1 + local.get $3 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $1 + local.tee $3 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $2 i64.const 4294966784 i64.mul - local.get $1 + local.get $3 i64.const 4294967295 i64.and i64.add @@ -3925,25 +4064,25 @@ call $~lib/util/number/prettify i32.const 1 i32.shl - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 call $~lib/rt/itcms/__new local.tee $0 i32.store local.get $0 i32.const 3472 - local.get $2 + local.get $4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 local.get $0 i32.store - local.get $2 + local.get $4 i32.const 4464 i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 2bb32c9ef1..92bafc48da 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -159,8 +159,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -220,11 +220,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -238,10 +238,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 3728 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -278,11 +278,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -343,19 +343,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -421,22 +421,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -684,13 +686,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -727,11 +732,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -755,11 +760,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -1142,8 +1147,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1305,12 +1309,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1326,20 +1330,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1347,15 +1351,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1366,13 +1371,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1380,34 +1385,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1421,16 +1426,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1438,18 +1443,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1461,11 +1466,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1616 @@ -1474,13 +1479,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1493,54 +1499,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1550,33 +1557,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1592,18 +1600,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1612,18 +1620,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1632,10 +1640,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1644,20 +1652,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1672,10 +1680,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1692,16 +1700,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1724,8 +1732,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1883,13 +1891,13 @@ i32.const 10000 i32.div_u local.set $0 - local.get $1 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $1 i32.add local.get $4 i32.const 100 @@ -1918,13 +1926,13 @@ i32.const 100 i32.ge_u if - local.get $1 local.get $2 i32.const 2 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $1 i32.add local.get $0 i32.const 100 @@ -1944,12 +1952,12 @@ i32.const 10 i32.ge_u if - local.get $1 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $1 i32.add local.get $0 i32.const 2 @@ -1959,12 +1967,12 @@ i32.load i32.store else - local.get $1 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $1 i32.add local.get $0 i32.const 48 @@ -2138,6 +2146,7 @@ (func $start:resolve-unary (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -2193,10 +2202,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3232 i32.store offset=4 local.get $0 @@ -2434,16 +2442,15 @@ local.get $0 global.set $resolve-unary/foo global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/foo i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store offset=4 i32.const 3488 @@ -2492,7 +2499,19 @@ global.set $resolve-unary/foo local.get $0 global.get $resolve-unary/foo + local.tee $0 i32.store + local.get $0 + global.get $resolve-unary/foo + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 101 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.tee $0 global.get $resolve-unary/foo @@ -2502,7 +2521,19 @@ global.set $resolve-unary/foo local.get $0 global.get $resolve-unary/foo + local.tee $0 i32.store + local.get $0 + global.get $resolve-unary/foo + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 106 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.tee $0 global.get $resolve-unary/foo @@ -2620,16 +2651,15 @@ local.get $0 global.set $resolve-unary/bar global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-unary/bar i32.store offset=12 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store offset=4 i32.const 3616 @@ -2671,11 +2701,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-unary/bar local.tee $1 + global.get $resolve-unary/bar + local.tee $2 i32.store - local.get $0 local.get $1 + local.get $2 i32.store offset=12 local.get $0 i32.const 3680 @@ -2700,11 +2731,12 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - global.get $resolve-unary/bar local.tee $1 + global.get $resolve-unary/bar + local.tee $2 i32.store - local.get $0 local.get $1 + local.get $2 i32.store offset=12 local.get $0 i32.const 3712 diff --git a/tests/compiler/retain-i32.optimized.wat b/tests/compiler/retain-i32.optimized.wat index 19b101878c..1abc3a7de7 100644 --- a/tests/compiler/retain-i32.optimized.wat +++ b/tests/compiler/retain-i32.optimized.wat @@ -24,8 +24,5 @@ i32.const 0 i32.load8_s drop - i32.const 0 - i32.load8_s - drop ) ) diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index a95686b7df..1af7f8d2c3 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -102,8 +102,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -163,11 +163,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -181,10 +181,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -221,11 +221,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -286,19 +286,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -364,22 +364,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -627,13 +629,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -670,11 +675,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -698,11 +703,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -1100,8 +1105,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1120,11 +1124,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1134,12 +1138,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1152,7 +1156,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1161,6 +1164,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1259,13 +1263,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1394,18 +1398,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1422,19 +1421,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 - local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 469909e781..6477efc953 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -142,8 +142,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -203,11 +203,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -221,10 +221,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1504 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -261,11 +261,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -326,19 +326,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -404,22 +404,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -667,13 +669,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -710,11 +715,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -738,11 +743,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1125,8 +1130,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1145,11 +1149,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1159,12 +1163,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1177,7 +1181,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1186,6 +1189,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1232,13 +1236,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1367,18 +1371,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1395,19 +1394,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index 1178f405c9..6471fed617 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -146,8 +146,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -177,10 +177,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1568 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -217,11 +217,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -301,19 +301,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -379,22 +379,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -642,13 +644,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -685,11 +690,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -713,11 +718,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1100,8 +1105,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1263,12 +1267,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1284,20 +1288,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1305,15 +1309,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1324,13 +1329,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1338,34 +1343,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1379,16 +1384,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1396,18 +1401,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1419,11 +1424,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1392 @@ -1432,13 +1437,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1451,54 +1457,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1508,33 +1515,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1550,18 +1558,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1570,18 +1578,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1590,10 +1598,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1602,20 +1610,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1630,10 +1638,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1650,16 +1658,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1682,8 +1690,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1764,11 +1772,11 @@ local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $3 @@ -1816,19 +1824,19 @@ i32.load offset=8 local.set $1 local.get $0 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $0 local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 diff --git a/tests/compiler/rt/runtime-minimal-export.optimized.wat b/tests/compiler/rt/runtime-minimal-export.optimized.wat index 87505befa3..30e3b38ad2 100644 --- a/tests/compiler/rt/runtime-minimal-export.optimized.wat +++ b/tests/compiler/rt/runtime-minimal-export.optimized.wat @@ -82,19 +82,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -160,22 +160,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -423,13 +425,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -466,11 +471,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1184 @@ -494,11 +499,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1184 @@ -777,15 +782,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -796,13 +802,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -810,29 +816,29 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $4 - local.get $3 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 local.get $5 @@ -851,8 +857,8 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 local.get $4 i32.lt_s select @@ -860,7 +866,7 @@ i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -877,9 +883,9 @@ i32.shl call $~lib/rt/tlsf/addMemory local.get $5 - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -891,11 +897,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1184 @@ -905,12 +911,13 @@ unreachable end local.get $5 - local.get $2 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $4 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -923,28 +930,28 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $3 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 + local.tee $2 local.get $6 i32.const 4 i32.sub @@ -952,25 +959,26 @@ i32.or i32.store local.get $5 - local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -980,33 +988,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/tcms/fromSpace - local.tee $0 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $0 local.get $2 - local.get $0 global.get $~lib/rt/tcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $2 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $0 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/tcms/total @@ -1111,11 +1120,11 @@ local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $3 @@ -1156,19 +1165,19 @@ i32.load offset=8 local.set $1 local.get $0 - local.get $2 global.get $~lib/rt/tcms/white + local.get $2 i32.or i32.store offset=4 local.get $0 local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -1407,20 +1416,20 @@ i32.load offset=8 local.set $1 local.get $0 - local.get $2 global.get $~lib/rt/tcms/white i32.eqz + local.get $2 i32.or i32.store offset=4 local.get $0 local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 diff --git a/tests/compiler/rt/runtime-stub-export.optimized.wat b/tests/compiler/rt/runtime-stub-export.optimized.wat index d55fbb4dbe..5ba5db73ae 100644 --- a/tests/compiler/rt/runtime-stub-export.optimized.wat +++ b/tests/compiler/rt/runtime-stub-export.optimized.wat @@ -53,7 +53,8 @@ unreachable end global.get $~lib/rt/stub/offset - local.tee $5 + local.tee $3 + local.get $3 i32.const 4 i32.add local.tee $2 @@ -108,7 +109,6 @@ end local.get $6 global.set $~lib/rt/stub/offset - local.get $5 local.get $4 i32.store local.get $2 diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 82fe1b35f4..a586c9b8c6 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -1,11 +1,11 @@ (module (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) @@ -292,10 +292,10 @@ end unreachable end - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $4 local.get $2 @@ -1052,19 +1052,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -1130,22 +1130,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -1393,13 +1395,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1436,11 +1441,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 4336 @@ -1464,11 +1469,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 4336 @@ -1727,19 +1732,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1750,13 +1748,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1764,32 +1762,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $0 i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -1805,16 +1803,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1822,7 +1820,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -1830,10 +1828,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $3 i32.eqz if i32.const 0 @@ -1844,12 +1842,12 @@ unreachable end end - local.get $0 - local.get $1 + local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $1 + i32.lt_u if i32.const 0 i32.const 4336 @@ -1858,13 +1856,14 @@ call $~lib/wasi/index/abort unreachable end + local.get $0 local.get $3 - local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $3 + local.tee $2 i32.load - local.set $2 - local.get $0 + local.set $3 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1877,54 +1876,55 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 + local.get $3 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 - local.get $0 local.get $2 + local.get $3 i32.const 2 i32.and + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $2 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 local.get $2 + local.get $3 i32.const -2 i32.and i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.tee $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $0 - local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $2 i32.load i32.const -4 i32.and @@ -1934,9 +1934,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $2 ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -2171,8 +2169,16 @@ br $while-continue|0 end end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $3 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $2 local.get $1 i32.const 20 @@ -2289,8 +2295,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -2350,11 +2356,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -2368,10 +2374,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 7936 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 5120 i32.const 5184 @@ -2408,11 +2414,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -2650,8 +2656,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -2885,13 +2890,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2899,9 +2904,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -2913,19 +2924,19 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 local.get $3 @@ -3309,13 +3320,13 @@ i64.load offset=8 i64.store offset=8 local.get $2 - local.get $6 local.get $7 call $~lib/util/hash/HASH<~lib/string/String> local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $7 i32.load @@ -3632,13 +3643,13 @@ i64.const 100000000 i64.ge_u if - local.get $2 local.get $1 i32.const 4 i32.sub local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add local.get $0 local.get $0 @@ -3672,13 +3683,13 @@ i64.shl i64.or i64.store - local.get $2 local.get $1 i32.const 4 i32.sub local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add local.get $3 i32.const 10000 @@ -3750,38 +3761,38 @@ i32.load call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=8 - local.tee $2 - local.tee $1 - local.get $0 i32.load offset=16 i32.const 24 i32.mul + local.get $0 + i32.load offset=8 + local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $2 loop $while-continue|0 local.get $0 - local.get $1 - i32.gt_u + local.get $2 + i32.lt_u if - local.get $1 + local.get $0 i32.load offset=16 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $0 i32.load call $~lib/rt/itcms/__visit end - local.get $1 + local.get $0 i32.const 24 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end - local.get $2 + local.get $1 call $~lib/rt/itcms/__visit return end @@ -3898,9 +3909,9 @@ i32.store local.get $0 i32.load - local.get $2 local.get $0 i32.load offset=4 + local.get $2 i32.and i32.const 2 i32.shl @@ -4175,10 +4186,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $5 i32.const 24 i32.mul + local.get $2 i32.add local.tee $2 local.get $0 @@ -4199,9 +4210,9 @@ local.get $2 local.get $1 i32.load - local.get $4 local.get $1 i32.load offset=4 + local.get $4 i32.and i32.const 2 i32.shl @@ -4524,10 +4535,9 @@ i32.const 4528 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4576 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4559,10 +4569,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4672 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4594,10 +4603,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4752 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4629,10 +4637,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4848 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index e4057127a2..51c38ce1be 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -248,10 +248,10 @@ end unreachable end - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $4 local.get $2 @@ -723,8 +723,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -784,11 +784,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -802,10 +802,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 6864 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -842,11 +842,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -926,19 +926,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -1004,22 +1004,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -1267,13 +1269,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1310,11 +1315,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -1338,11 +1343,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -1730,8 +1735,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1870,19 +1874,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1893,13 +1890,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1907,32 +1904,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $0 i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -1948,16 +1945,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1965,7 +1962,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -1973,10 +1970,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $3 i32.eqz if i32.const 0 @@ -1987,12 +1984,12 @@ unreachable end end - local.get $0 - local.get $1 + local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $1 + i32.lt_u if i32.const 0 i32.const 1616 @@ -2001,13 +1998,14 @@ call $~lib/wasi/index/abort unreachable end + local.get $0 local.get $3 - local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $3 + local.tee $2 i32.load - local.set $2 - local.get $0 + local.set $3 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -2020,54 +2018,55 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 + local.get $3 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 - local.get $0 local.get $2 + local.get $3 i32.const 2 i32.and + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $2 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 local.get $2 + local.get $3 i32.const -2 i32.and i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.tee $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $0 - local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $2 i32.load i32.const -4 i32.and @@ -2077,9 +2076,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $2 ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (local $2 i32) @@ -2305,13 +2302,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2319,9 +2316,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -2333,19 +2336,19 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 local.get $3 @@ -2870,7 +2873,6 @@ end ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 i32.const 255 i32.and @@ -2887,67 +2889,67 @@ i32.const 1 return end + local.get $0 local.get $1 i32.const 255 i32.and - local.tee $2 - local.tee $1 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - local.get $0 - local.get $2 - local.get $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2992,17 +2994,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -3027,9 +3041,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -3107,27 +3125,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -3139,7 +3165,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -3149,8 +3177,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -3158,10 +3190,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -3169,10 +3205,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -3180,7 +3220,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3206,21 +3246,25 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $2 - i32.const 2 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 2 i32.sub local.set $2 loop $while-continue|4 @@ -3230,7 +3274,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -3240,8 +3286,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -3249,10 +3299,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -3260,10 +3314,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -3271,7 +3329,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3317,7 +3375,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -3327,8 +3387,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -3336,10 +3400,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -3347,10 +3415,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -3358,7 +3430,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3385,145 +3457,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -3534,73 +3638,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -3611,37 +3731,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -3652,19 +3780,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -3867,371 +3999,354 @@ end end ) - (func $~lib/string/String.__concat (param $0 i32) (result i32) + (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $1 + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - if - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/string/String#concat - i32.const 4764 - i32.load - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 - i32.add - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4848 - local.set $1 - br $__inlined_func$~lib/string/String#concat - end + block $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 4768 - local.get $2 - call $~lib/memory/memory.copy - local.get $1 - local.get $2 - i32.add - local.get $0 - local.get $3 - call $~lib/memory/memory.copy + i32.const 6900 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $1 - ) - (func $~lib/process/writeString (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - i32.const -1 - local.set $1 - i32.const -1 - local.set $2 - i32.const -1 - local.set $3 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i32.load16_u offset=6 - local.tee $3 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=4 - local.tee $2 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=2 - local.tee $1 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u - local.tee $4 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 6672 - i32.const 6680 - i32.store - i32.const 6676 - local.get $1 - i32.const -1 - i32.ne - i32.const 1 - i32.add - local.get $2 - i32.const -1 - i32.ne - i32.add - local.get $3 - i32.const -1 - i32.ne - i32.add - i32.store - i32.const 6680 - local.get $4 + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray local.get $1 - i32.const 8 - i32.shl - i32.or - local.get $2 - i32.const 16 - i32.shl - i32.or - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store i32.const 1 - i32.const 6672 - i32.const 1 - i32.const 6684 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and + i32.sub + local.tee $2 + i32.const 0 + i32.lt_s if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 6720 - i32.const 178 - i32.const 16 - call $~lib/wasi/index/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4848 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray end - end - return - end - local.get $0 - local.set $1 - i32.const 0 - local.set $2 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $3 - loop $while-continue|0 - local.get $1 - local.get $3 - i32.lt_u - if - local.get $1 - i32.load16_u - local.tee $4 - i32.const 128 - i32.lt_u - if (result i32) + block $folding-inner0 local.get $2 - i32.const 1 - i32.add - else - local.get $4 - i32.const 2048 - i32.lt_u - if (result i32) + i32.eqz + if + block $__inlined_func$~lib/util/number/utoa32 (result i32) + local.get $3 + i32.load8_u + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 5072 + br $__inlined_func$~lib/util/number/utoa32 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $1 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + end + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 6652 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 local.get $2 - i32.const 2 - i32.add - else - local.get $3 + local.get $5 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 6656 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $2 + local.get $3 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $2 + i32.gt_s + if local.get $1 - i32.const 2 - i32.add - i32.gt_u + local.set $0 + local.get $2 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.get $4 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq + i32.store + i32.const 0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $2 select - if + local.tee $3 + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + local.tee $1 + local.get $1 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $4 + block $__inlined_func$~lib/string/String#substring + local.get $3 local.get $1 - i32.load16_u offset=2 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq + local.get $1 + local.get $3 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $1 + local.get $4 + i32.sub + local.tee $3 + i32.eqz if - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.set $2 - local.get $1 + global.set $~lib/memory/__stack_pointer + i32.const 4848 + local.set $0 + br $__inlined_func$~lib/string/String#substring + end + i32.const 0 + local.get $2 + i32.const 1 + i32.shl + local.get $1 + i32.eq + local.get $4 + select + if + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add - local.set $1 - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/string/String#substring end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $4 + i32.add + local.get $3 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 end - local.get $2 - i32.const 3 - i32.add + br $folding-inner0 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray end - local.set $2 - local.get $1 - i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $1 - br $while-continue|0 + global.set $~lib/memory/__stack_pointer end + local.get $0 + return end - local.get $2 - call $~lib/rt/tlsf/__alloc - local.set $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i32.const 23312 + i32.const 23360 i32.const 1 - i32.shr_u - local.set $3 - i32.const 3 - global.set $~argumentsLength - local.get $0 - local.get $3 - local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $2 - i32.ne - if - i32.const 0 - i32.const 6720 - i32.const 184 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - i32.const 6672 - local.get $1 - i32.store - i32.const 6676 - local.get $2 - i32.store - i32.const 1 - i32.const 6672 - i32.const 1 - i32.const 6680 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $0 - local.get $1 - call $~lib/rt/tlsf/__free - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 6720 - i32.const 189 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=8 - local.get $1 - i32.le_u - if - i32.const 1472 - i32.const 1680 - i32.const 164 - i32.const 45 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $0 - i32.load offset=4 - i32.add - i32.load8_u - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $~lib/rt/itcms/__visit - end - ) - (func $~start - global.get $~started - if - return - end i32.const 1 - global.set $~started - call $start:std-wasi/crypto + call $~lib/wasi/index/abort + unreachable ) - (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) + (func $~lib/string/String.__concat (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4248,324 +4363,359 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 0 i32.store - local.get $1 - i32.const 6656 - i32.store - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=8 - call $~lib/util/string/joinIntegerArray - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.log (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - if - i32.const 23312 - i32.const 23360 + block $__inlined_func$~lib/string/String#concat + i32.const 4764 + i32.load i32.const 1 + i32.shr_u i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 6784 - i32.store - i32.const 6784 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std-wasi/crypto - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - memory.size - i32.const 16 i32.shl - i32.const 23284 + local.tee $2 + local.get $0 + i32.const 20 i32.sub + i32.load offset=16 i32.const 1 i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/pinSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/itcms/toSpace - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - global.set $~lib/rt/itcms/fromSpace - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner0 + i32.const 1 + i32.shl + local.tee $3 + i32.add + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 4848 + local.set $1 + br $__inlined_func$~lib/string/String#concat + end global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 0 + local.get $1 + i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + local.get $1 + i32.const 4768 + local.get $2 + call $~lib/memory/memory.copy + local.get $1 + local.get $2 + i32.add local.get $0 - i32.const 8 - call $~lib/memory/memory.fill + local.get $3 + call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $std-wasi/crypto/ab - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/ab - local.tee $0 - i32.store - local.get $0 - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - call $~lib/crypto/crypto.getRandomValues - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4768 - i32.store offset=4 - local.get $0 - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Uint8Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - call $~lib/typedarray/Uint8Array#slice - global.set $std-wasi/crypto/b1 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/ab - local.tee $0 - i32.store - local.get $0 - i32.const 4 - i32.const 4 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - call $~lib/crypto/crypto.getRandomValues - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4768 - i32.store offset=4 - local.get $0 - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Uint8Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/string/String.__concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - call $~lib/typedarray/Uint8Array#slice - global.set $std-wasi/crypto/b2 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/ab - local.tee $0 - i32.store - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 0 - i32.const -1 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - loop $for-loop|0 + end + local.get $1 + ) + (func $~lib/process/writeString (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const -1 + local.set $1 + i32.const -1 + local.set $2 + i32.const -1 + local.set $4 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end + local.get $0 + i32.load16_u offset=6 + local.tee $4 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u offset=4 + local.tee $2 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u offset=2 + local.tee $1 + i32.const 128 + i32.ge_u + br_if $break|0 + end + local.get $0 + i32.load16_u + local.tee $3 + i32.const 128 + i32.ge_u + br_if $break|0 + i32.const 6672 + i32.const 6680 + i32.store + i32.const 6676 local.get $1 - i32.const 4 - i32.lt_s + i32.const -1 + i32.ne + i32.const 1 + i32.add + local.get $2 + i32.const -1 + i32.ne + i32.add + local.get $4 + i32.const -1 + i32.ne + i32.add + i32.store + i32.const 6680 + local.get $1 + i32.const 8 + i32.shl + local.get $3 + i32.or + local.get $2 + i32.const 16 + i32.shl + i32.or + local.get $4 + i32.const 24 + i32.shl + i32.or + i32.store + i32.const 1 + i32.const 6672 + i32.const 1 + i32.const 6684 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.tee $0 + i32.const 65535 + i32.and if - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/b1 - local.tee $2 - i32.store + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 6720 + i32.const 178 + i32.const 16 + call $~lib/wasi/index/abort + unreachable + end + end + return + end + local.get $0 + local.set $1 + i32.const 0 + local.set $2 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.get $0 + i32.add + local.set $4 + loop $while-continue|0 + local.get $1 + local.get $4 + i32.lt_u + if + local.get $1 + i32.load16_u + local.tee $3 + i32.const 128 + i32.lt_u + if (result i32) local.get $2 - local.get $1 - call $~lib/typedarray/Uint8Array#__get - local.get $0 - i32.ne - if + i32.const 1 + i32.add + else + local.get $3 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $2 + i32.const 2 + i32.add + else + local.get $4 + local.get $1 + i32.const 2 + i32.add + i32.gt_u i32.const 0 - i32.const 6816 - i32.const 17 + local.get $3 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + select + if + local.get $1 + i32.load16_u offset=2 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $2 + i32.const 4 + i32.add + local.set $2 + local.get $1 + i32.const 4 + i32.add + local.set $1 + br $while-continue|0 + end + end + local.get $2 i32.const 3 - call $~lib/wasi/index/abort - unreachable + i32.add end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 end + local.set $2 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|0 end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $3 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $1 + i32.const 3 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $3 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $2 + i32.ne + if i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $0 - i32.store - local.get $0 - local.get $1 - i32.const 4 - i32.add - call $~lib/typedarray/Uint8Array#__get - local.set $0 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/b2 - local.tee $2 - i32.store - local.get $2 - local.get $1 - call $~lib/typedarray/Uint8Array#__get - local.get $0 - i32.ne - if - i32.const 0 - i32.const 6816 - i32.const 20 - i32.const 3 - call $~lib/wasi/index/abort - unreachable + i32.const 6720 + i32.const 184 + i32.const 3 + call $~lib/wasi/index/abort + unreachable + end + i32.const 6672 + local.get $3 + i32.store + i32.const 6676 + local.get $2 + i32.store + i32.const 1 + i32.const 6672 + i32.const 1 + i32.const 6680 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $0 + local.get $3 + call $~lib/rt/tlsf/__free + local.get $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 6720 + i32.const 189 + i32.const 12 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=8 + local.get $1 + i32.le_u + if + i32.const 1472 + i32.const 1680 + i32.const 164 + i32.const 45 + call $~lib/wasi/index/abort + unreachable + end + local.get $1 + local.get $0 + i32.load offset=4 + i32.add + i32.load8_u + ) + (func $~lib/rt/__visit_members (param $0 i32) + block $folding-inner0 + block $invalid + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + return end + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + unreachable + end + local.get $0 + i32.load + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + ) + (func $~start + global.get $~started + if return end - i32.const 23312 - i32.const 23360 - i32.const 1 i32.const 1 - call $~lib/wasi/index/abort - unreachable + global.set $~started + call $start:std-wasi/crypto ) - (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4582,403 +4732,308 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 i32.store local.get $1 + i32.const 6656 + i32.store local.get $0 - i32.const 20 + call $~lib/typedarray/Uint8Array#join + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.log (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub - i32.load offset=16 - local.tee $3 - i32.gt_u + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s if - i32.const 1472 - i32.const 1680 - i32.const 1872 - i32.const 5 + i32.const 23312 + i32.const 23360 + i32.const 1 + i32.const 1 call $~lib/wasi/index/abort unreachable end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - i32.const -1 - i32.eq - if (result i32) - local.get $3 - local.get $1 - i32.sub - else - i32.const 1168 - i32.const 1680 - i32.const 1881 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - local.set $2 - else - local.get $3 - local.get $1 - local.get $2 - i32.add - i32.lt_s - if - i32.const 1168 - i32.const 1680 - i32.const 1886 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $3 + i32.const 0 i32.store - local.get $3 local.get $0 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 6784 i32.store - local.get $3 - local.get $0 - call $~lib/rt/itcms/__link - local.get $3 - local.get $2 - i32.store offset=8 - local.get $3 - local.get $0 - local.get $1 - i32.add - i32.store offset=4 + i32.const 6784 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (func $start:std-wasi/crypto + (local $0 i32) + (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + i32.const 23284 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/pinSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/toSpace + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/fromSpace + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 8 + call $~lib/memory/memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $std-wasi/crypto/ab + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/ab + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 4 + call $~lib/typedarray/Uint8Array.wrap + global.set $std-wasi/crypto/buf + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 + call $~lib/crypto/crypto.getRandomValues global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 + i32.const 4768 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 0 + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint8Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 + call $~lib/typedarray/Uint8Array#slice + global.set $std-wasi/crypto/b1 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/ab + local.tee $0 + i32.store + local.get $0 + i32.const 4 + i32.const 4 + call $~lib/typedarray/Uint8Array.wrap + global.set $std-wasi/crypto/buf + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 + call $~lib/crypto/crypto.getRandomValues + global.get $~lib/memory/__stack_pointer + i32.const 4768 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint8Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/string/String.__concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 + call $~lib/typedarray/Uint8Array#slice + global.set $std-wasi/crypto/b2 + global.get $~lib/memory/__stack_pointer + global.get $std-wasi/crypto/ab + local.tee $0 i32.store - local.get $1 i32.const 1 - i32.sub - local.tee $3 + global.set $~argumentsLength + local.get $0 i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer + i32.const -1 + call $~lib/typedarray/Uint8Array.wrap + global.set $std-wasi/crypto/buf + loop $for-loop|0 + local.get $1 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4848 - return - end - block $folding-inner0 - local.get $3 - i32.eqz + i32.lt_s if - local.get $0 - i32.load8_u - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 0 + global.get $std-wasi/crypto/b1 + local.tee $2 i32.store - block $__inlined_func$~lib/util/number/utoa32 - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 5072 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 6652 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 - local.get $3 - local.get $5 - i32.gt_s + local.get $2 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + local.get $0 + i32.ne if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 6656 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + i32.const 0 + i32.const 6816 + i32.const 17 + i32.const 3 + call $~lib/wasi/index/abort + unreachable end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - local.get $6 + end + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $3 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $3 - i32.gt_s + i32.const 4 + i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 + global.get $std-wasi/crypto/buf + local.tee $0 + i32.store + local.get $0 + local.get $1 + i32.const 4 + i32.add + call $~lib/typedarray/Uint8Array#__get + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 0 + global.get $std-wasi/crypto/b2 + local.tee $2 i32.store - block $__inlined_func$~lib/string/String#substring + local.get $2 + local.get $1 + call $~lib/typedarray/Uint8Array#__get + local.get $0 + i32.ne + if i32.const 0 - local.get $1 - local.tee $0 + i32.const 6816 i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $3 - i32.const 0 - local.get $3 - i32.const 0 - i32.gt_s - select - local.tee $3 - local.get $1 - local.get $1 - local.get $3 - i32.gt_s - select - local.tee $3 - local.get $2 - local.get $3 - i32.gt_s - select - i32.const 1 - i32.shl - local.tee $4 - local.get $2 - local.get $3 - local.get $2 - local.get $3 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $2 - i32.sub - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4848 - local.set $0 - br $__inlined_func$~lib/string/String#substring - end - i32.const 0 - local.get $4 - local.get $1 - i32.const 1 - i32.shl - i32.eq - local.get $2 - select - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/string/String#substring - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $2 - i32.add - local.get $3 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + i32.const 3 + call $~lib/wasi/index/abort + unreachable end - br $folding-inner0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return end global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 23312 @@ -4988,6 +5043,102 @@ call $~lib/wasi/index/abort unreachable ) + (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + if + i32.const 23312 + i32.const 23360 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.tee $3 + i32.gt_u + if + i32.const 1472 + i32.const 1680 + i32.const 1872 + i32.const 5 + call $~lib/wasi/index/abort + unreachable + end + local.get $2 + i32.const 0 + i32.lt_s + if + local.get $2 + i32.const -1 + i32.eq + if (result i32) + local.get $3 + local.get $1 + i32.sub + else + i32.const 1168 + i32.const 1680 + i32.const 1881 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end + local.set $2 + else + local.get $3 + local.get $1 + local.get $2 + i32.add + i32.lt_s + if + i32.const 1168 + i32.const 1680 + i32.const 1886 + i32.const 7 + call $~lib/wasi/index/abort + unreachable + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store + local.get $3 + local.get $0 + i32.store + local.get $3 + local.get $0 + call $~lib/rt/itcms/__link + local.get $3 + local.get $2 + i32.store offset=8 + local.get $3 + local.get $0 + local.get $1 + i32.add + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) (func $~lib/typedarray/Uint8Array#slice (param $0 i32) (result i32) (local $1 i32) (local $2 i32) @@ -5011,19 +5162,20 @@ i32.store i32.const 0 local.get $0 - i32.load offset=8 local.tee $1 - local.get $1 + i32.load offset=8 + local.tee $0 + local.get $0 i32.const 0 i32.gt_s select local.set $5 - local.get $1 + local.get $0 local.get $5 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select @@ -5038,17 +5190,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $7 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5059,26 +5211,26 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store end - local.get $1 + local.get $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 local.get $2 @@ -5101,36 +5253,35 @@ local.get $3 local.get $2 call $~lib/memory/memory.fill - local.get $1 + local.get $0 local.get $3 i32.store - local.get $1 + local.get $0 local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 local.get $3 i32.store offset=4 - local.get $1 + local.get $0 local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $4 - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 local.get $5 - local.get $0 + local.get $1 i32.load offset=4 i32.add local.get $6 @@ -5139,7 +5290,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 return end i32.const 23312 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 5921deadda..90a4c72a0a 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -278,10 +278,10 @@ end unreachable end - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $4 local.get $2 @@ -1038,19 +1038,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -1116,22 +1116,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -1379,13 +1381,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1422,11 +1427,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 4288 @@ -1450,11 +1455,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 4288 @@ -1713,19 +1718,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1736,13 +1734,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1750,32 +1748,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $0 i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -1791,16 +1789,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1808,7 +1806,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -1816,10 +1814,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $3 i32.eqz if i32.const 0 @@ -1830,12 +1828,12 @@ unreachable end end - local.get $0 - local.get $1 + local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $1 + i32.lt_u if i32.const 0 i32.const 4288 @@ -1844,13 +1842,14 @@ call $~lib/wasi/index/abort unreachable end + local.get $0 local.get $3 - local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $3 + local.tee $2 i32.load - local.set $2 - local.get $0 + local.set $3 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1863,54 +1862,55 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 + local.get $3 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 - local.get $0 local.get $2 + local.get $3 i32.const 2 i32.and + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $2 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 local.get $2 + local.get $3 i32.const -2 i32.and i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.tee $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $0 - local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $2 i32.load i32.const -4 i32.and @@ -1920,9 +1920,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $2 ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -1985,7 +1983,7 @@ i32.const -1 local.set $2 i32.const -1 - local.set $3 + local.set $4 block $break|0 block $case4|0 block $case3|0 @@ -2002,7 +2000,7 @@ end local.get $0 i32.load16_u offset=6 - local.tee $3 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 @@ -2023,7 +2021,7 @@ end local.get $0 i32.load16_u - local.tee $4 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -2040,22 +2038,22 @@ i32.const -1 i32.ne i32.add - local.get $3 + local.get $4 i32.const -1 i32.ne i32.add i32.store i32.const 1096 - local.get $4 local.get $1 i32.const 8 i32.shl + local.get $3 i32.or local.get $2 i32.const 16 i32.shl i32.or - local.get $3 + local.get $4 i32.const 24 i32.shl i32.or @@ -2085,20 +2083,20 @@ i32.const 0 local.set $2 local.get $0 - local.get $0 i32.const 20 i32.sub i32.load offset=16 + local.get $0 i32.add - local.set $3 + local.set $4 loop $while-continue|0 local.get $1 - local.get $3 + local.get $4 i32.lt_u if local.get $1 i32.load16_u - local.tee $4 + local.tee $3 i32.const 128 i32.lt_u if (result i32) @@ -2106,7 +2104,7 @@ i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 2048 i32.lt_u if (result i32) @@ -2114,13 +2112,13 @@ i32.const 2 i32.add else - local.get $3 + local.get $4 local.get $1 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $4 + local.get $3 i32.const 64512 i32.and i32.const 55296 @@ -2158,21 +2156,29 @@ br $while-continue|0 end end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $2 - call $~lib/rt/tlsf/__alloc - local.set $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $3 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $3 + local.set $1 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 local.get $1 + local.get $3 call $~lib/string/String.UTF8.encodeUnsafe@varargs local.get $2 i32.ne @@ -2185,7 +2191,7 @@ unreachable end i32.const 1088 - local.get $1 + local.get $3 i32.store i32.const 1092 local.get $2 @@ -2196,7 +2202,7 @@ i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $1 + local.get $3 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2306,8 +2312,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -2367,11 +2373,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -2385,10 +2391,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 7360 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 4784 i32.const 4848 @@ -2425,11 +2431,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -2667,8 +2673,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -2902,13 +2907,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2916,9 +2921,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -2930,19 +2941,19 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 local.get $3 @@ -3029,6 +3040,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -3073,17 +3086,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -3108,9 +3133,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -3188,27 +3217,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -3220,7 +3257,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -3230,8 +3269,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -3239,10 +3282,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -3250,10 +3297,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -3261,7 +3312,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3287,19 +3338,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -3311,7 +3366,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -3321,8 +3378,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -3330,10 +3391,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -3341,10 +3406,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -3352,7 +3421,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3398,7 +3467,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -3408,8 +3479,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -3417,10 +3492,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -3428,10 +3507,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -3439,7 +3522,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3466,145 +3549,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -3615,73 +3730,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -3692,37 +3823,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -3733,19 +3872,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -3989,13 +4132,13 @@ (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - local.get $1 local.get $0 i32.load offset=8 local.tee $3 i32.const 2 i32.shr_u - i32.gt_u + local.get $1 + i32.lt_u if local.get $1 i32.const 268435455 @@ -4069,7 +4212,6 @@ end ) (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -4090,11 +4232,12 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -4112,10 +4255,10 @@ ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.tee $1 i32.const 7 @@ -4643,41 +4786,41 @@ i32.load call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=8 - local.tee $2 - local.tee $1 - local.get $0 i32.load offset=16 i32.const 12 i32.mul + local.get $0 + i32.load offset=8 + local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $2 loop $while-continue|00 local.get $0 - local.get $1 - i32.gt_u + local.get $2 + i32.lt_u if - local.get $1 + local.get $0 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $0 i32.load call $~lib/rt/itcms/__visit - local.get $1 + local.get $0 i32.load offset=4 call $~lib/rt/itcms/__visit end - local.get $1 + local.get $0 i32.const 12 i32.add - local.set $1 + local.set $0 br $while-continue|00 end end - local.get $2 + local.get $1 call $~lib/rt/itcms/__visit return end @@ -4746,9 +4889,9 @@ i32.store local.get $0 i32.load - local.get $2 local.get $0 i32.load offset=4 + local.get $2 i32.and i32.const 2 i32.shl @@ -4883,7 +5026,17 @@ i32.load i32.add local.tee $8 - call $~lib/rt/tlsf/__alloc + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $4 local.get $0 local.get $4 @@ -4902,7 +5055,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4954,7 +5108,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 local.tee $1 i32.store @@ -4964,10 +5117,10 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $4 local.get $5 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.tee $0 @@ -4977,7 +5130,7 @@ local.get $4 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $3 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 5168 @@ -4994,32 +5147,30 @@ br_if $__inlined_func$~lib/string/String#indexOf i32.const -1 local.set $0 - local.get $3 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 + local.tee $3 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf i32.const 0 - local.get $2 - local.get $2 - i32.const 0 - i32.gt_s + local.get $3 + local.get $3 select local.set $0 - local.get $2 + local.get $3 local.get $6 i32.sub - local.set $2 + local.set $3 loop $for-loop|00 local.get $0 - local.get $2 + local.get $3 i32.le_s if - local.get $3 + local.get $2 local.get $0 i32.const 5168 local.get $6 @@ -5040,15 +5191,15 @@ i32.const -1 i32.xor if - local.get $3 + local.get $2 i32.const 0 local.get $0 call $~lib/string/String#substring - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 local.get $3 + i32.store offset=8 + local.get $2 local.get $0 i32.const 1 i32.add @@ -5059,7 +5210,7 @@ local.get $0 i32.store offset=12 local.get $1 - local.get $2 + local.get $3 local.get $0 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set else @@ -5067,7 +5218,7 @@ i32.const 5200 i32.store offset=12 local.get $1 - local.get $3 + local.get $2 i32.const 5200 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set end @@ -5207,7 +5358,17 @@ i32.load i32.add local.tee $6 - call $~lib/rt/tlsf/__alloc + local.set $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $1 local.get $1 local.get $5 @@ -5236,10 +5397,10 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 local.get $3 i32.const 2 i32.shl + local.get $1 i32.add i32.load local.tee $7 @@ -5349,10 +5510,10 @@ local.get $4 i32.lt_s if - local.get $5 local.get $1 i32.const 12 i32.mul + local.get $5 i32.add local.tee $6 i32.load offset=8 @@ -6246,10 +6407,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 4784 i32.const 4608 @@ -6385,22 +6546,23 @@ local.tee $2 local.get $2 local.get $3 - i32.lt_s + i32.gt_s select i32.const 1 i32.shl - local.tee $4 + local.set $4 local.get $3 local.get $2 local.get $2 local.get $3 - i32.gt_s + i32.lt_s select i32.const 1 i32.shl - local.tee $2 - i32.sub local.tee $3 + local.get $4 + i32.sub + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -6411,12 +6573,12 @@ return end i32.const 0 - local.get $4 local.get $1 i32.const 1 i32.shl + local.get $3 i32.eq - local.get $2 + local.get $4 select if global.get $~lib/memory/__stack_pointer @@ -6427,16 +6589,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store local.get $1 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $3 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -6581,13 +6743,13 @@ i32.load offset=4 i32.store offset=4 local.get $3 - local.get $8 local.get $9 call $~lib/util/hash/HASH<~lib/string/String> local.get $10 i32.and i32.const 2 i32.shl + local.get $8 i32.add local.tee $9 i32.load @@ -6648,10 +6810,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $10 i32.const 12 i32.mul + local.get $3 i32.add local.tee $3 local.get $1 @@ -6676,9 +6838,9 @@ local.get $3 local.get $0 i32.load - local.get $7 local.get $0 i32.load offset=4 + local.get $7 i32.and i32.const 2 i32.shl diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index c46c10c769..70b41cad98 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -31,19 +31,17 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 - local.get $1 - i32.const 0 - i32.gt_s + local.tee $2 + local.get $2 select - local.set $2 - local.get $1 + local.set $3 local.get $2 + local.get $3 i32.const 1292 i32.load i32.const 1 i32.shr_u - local.tee $1 + local.tee $2 i32.add i32.lt_s if @@ -52,42 +50,42 @@ end block $__inlined_func$~lib/util/string/compareImpl (result i32) i32.const 1296 - local.set $3 - local.get $0 - local.get $2 + local.set $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $2 + local.tee $3 i32.const 7 i32.and i32.const 1 - local.get $1 - local.tee $0 + local.get $2 + local.tee $1 i32.const 4 i32.ge_u select i32.eqz if loop $do-continue|0 - local.get $2 - i64.load local.get $3 i64.load + local.get $4 + i64.load i64.eq if - local.get $2 - i32.const 8 - i32.add - local.set $2 local.get $3 i32.const 8 i32.add local.set $3 - local.get $0 + local.get $4 + i32.const 8 + i32.add + local.set $4 + local.get $1 i32.const 4 i32.sub - local.tee $0 + local.tee $1 i32.const 4 i32.ge_u br_if $do-continue|0 @@ -95,34 +93,34 @@ end end loop $while-continue|1 - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $0 if - local.get $2 + local.get $4 i32.load16_u - local.tee $1 + local.tee $0 local.get $3 i32.load16_u - local.tee $4 + local.tee $2 i32.ne if - local.get $1 - local.get $4 + local.get $2 + local.get $0 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 - i32.const 2 - i32.add - local.set $2 local.get $3 i32.const 2 i32.add local.set $3 + local.get $4 + i32.const 2 + i32.add + local.set $4 br $while-continue|1 end end @@ -149,10 +147,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1056 i32.const 1120 @@ -234,7 +232,9 @@ end local.get $0 i32.load offset=4 - i32.load offset=4 + i32.const 4 + i32.add + i32.load global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -283,7 +283,6 @@ call $~lib/array/Array<~lib/array/Array>#__get local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 @@ -292,7 +291,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -340,10 +339,9 @@ call $~lib/array/Array<~lib/array/Array>#__get local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store offset=4 local.get $0 @@ -403,7 +401,6 @@ call $~lib/array/Array<~lib/array/Array>#__get local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store local.get $0 @@ -412,7 +409,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer @@ -471,10 +468,9 @@ call $~lib/array/Array<~lib/array/Array>#__get local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store offset=4 local.get $0 diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index d15b6f0ac5..8799d16872 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -178,8 +178,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -239,11 +239,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -257,10 +257,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1792 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1200 i32.const 1664 @@ -297,11 +297,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -381,19 +381,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -459,22 +459,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -722,13 +724,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -765,11 +770,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1744 @@ -793,11 +798,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1744 @@ -1180,8 +1185,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1343,12 +1347,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1364,20 +1368,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1385,15 +1389,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1404,13 +1409,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1418,34 +1423,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1459,16 +1464,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1476,18 +1481,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1499,11 +1504,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1744 @@ -1512,13 +1517,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1531,54 +1537,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1588,33 +1595,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1630,18 +1638,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1650,18 +1658,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1670,10 +1678,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1682,20 +1690,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1710,10 +1718,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1730,16 +1738,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1762,8 +1770,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1976,7 +1984,6 @@ (func $start:std/array-literal (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2175,7 +2182,6 @@ local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.load offset=4 i32.store offset=8 @@ -2190,20 +2196,23 @@ global.set $std/array-literal/i local.get $0 i32.load offset=4 + i32.const 1 + i32.add + global.get $std/array-literal/i + i32.store8 global.get $std/array-literal/i - local.tee $1 - i32.store8 offset=1 - local.get $1 i32.const 1 i32.add global.set $std/array-literal/i local.get $0 i32.load offset=4 + i32.const 2 + i32.add global.get $std/array-literal/i - i32.store8 offset=2 + i32.store8 local.get $0 global.set $std/array-literal/dynamicArrayI8 - local.get $2 + global.get $~lib/memory/__stack_pointer global.get $std/array-literal/dynamicArrayI8 local.tee $0 i32.store @@ -2278,7 +2287,6 @@ local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.load offset=4 i32.store offset=4 @@ -2293,20 +2301,23 @@ global.set $std/array-literal/i local.get $0 i32.load offset=4 + i32.const 4 + i32.add + global.get $std/array-literal/i + i32.store global.get $std/array-literal/i - local.tee $1 - i32.store offset=4 - local.get $1 i32.const 1 i32.add global.set $std/array-literal/i local.get $0 i32.load offset=4 + i32.const 8 + i32.add global.get $std/array-literal/i - i32.store offset=8 + i32.store local.get $0 global.set $std/array-literal/dynamicArrayI32 - local.get $2 + global.get $~lib/memory/__stack_pointer global.get $std/array-literal/dynamicArrayI32 local.tee $0 i32.store diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index b686cca794..67a8d60c70 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -777,8 +777,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -838,11 +838,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -856,10 +856,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 14960 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1344 i32.const 1408 @@ -896,11 +896,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -980,19 +980,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -1058,22 +1058,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -1321,13 +1323,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1364,11 +1369,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1488 @@ -1392,11 +1397,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1488 @@ -1784,8 +1789,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1924,19 +1928,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1947,13 +1944,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1961,32 +1958,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $0 i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -2002,16 +1999,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -2019,7 +2016,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -2027,10 +2024,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $3 i32.eqz if i32.const 0 @@ -2041,12 +2038,12 @@ unreachable end end - local.get $0 - local.get $1 + local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $1 + i32.lt_u if i32.const 0 i32.const 1488 @@ -2055,13 +2052,14 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $3 - local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $3 + local.tee $2 i32.load - local.set $2 - local.get $0 + local.set $3 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -2074,54 +2072,55 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 - local.get $0 local.get $2 + local.get $3 i32.const 2 i32.and + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $2 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 local.get $2 + local.get $3 i32.const -2 i32.and i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.tee $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $0 - local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $2 i32.load i32.const -4 i32.and @@ -2131,9 +2130,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $2 ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2290,10 +2287,10 @@ local.set $2 local.get $0 i64.extend_i32_u - local.tee $4 + local.get $0 + i64.extend_i32_u i64.const 32 i64.shl - local.get $4 i64.or local.set $4 loop $while-continue|0 @@ -2374,13 +2371,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2388,9 +2385,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -2402,19 +2405,19 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 local.get $3 @@ -2502,6 +2505,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2546,17 +2551,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2581,9 +2598,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2661,27 +2682,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2693,7 +2722,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2703,8 +2734,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2712,10 +2747,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2723,10 +2762,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2734,7 +2777,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2760,19 +2803,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2784,7 +2831,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2794,8 +2843,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2803,10 +2856,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2814,10 +2871,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2825,7 +2886,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2871,7 +2932,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2881,8 +2944,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2890,10 +2957,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2901,10 +2972,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2912,7 +2987,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2939,145 +3014,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -3088,73 +3195,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -3165,37 +3288,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -3206,19 +3337,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -4046,7 +4181,6 @@ local.get $2 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -4067,12 +4201,13 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -4596,16 +4731,19 @@ local.get $8 i32.ge_s if - local.get $0 local.get $8 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 f32.load offset=4 local.tee $7 local.set $6 - local.get $3 + local.get $8 + i32.const 2 + i32.shl + local.get $0 + i32.add f32.load local.set $5 i32.const 2 @@ -4729,7 +4867,6 @@ (local $4 i32) (local $5 f32) (local $6 f32) - (local $7 i32) local.get $1 local.get $2 i32.eq @@ -4765,14 +4902,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $7 f32.load offset=4 - local.get $7 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add f32.load i32.const 2 global.set $~argumentsLength @@ -4799,28 +4939,34 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 f32.load local.set $5 - local.get $3 + local.get $1 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $2 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $7 f32.load f32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $7 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add local.get $5 f32.store local.get $2 @@ -4836,14 +4982,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 f32.load offset=4 - local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add f32.load i32.const 2 global.set $~argumentsLength @@ -4871,63 +5020,68 @@ (local $7 f32) (local $8 f32) (local $9 i32) - (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $9 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 2 i32.shl - local.tee $10 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl local.get $0 - local.get $10 i32.add f32.load f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $9 - local.get $6 + local.get $2 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $0 i32.add f32.load offset=4 f32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -4936,14 +5090,14 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 i32.add f32.load local.set $7 - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 @@ -4967,10 +5121,10 @@ i32.add local.get $7 f32.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 2 @@ -4979,10 +5133,10 @@ i32.add local.get $8 f32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -5002,10 +5156,11 @@ (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i32) + (local $12 f32) (local $13 i32) (local $14 f32) - (local $15 f32) + (local $15 i32) + (local $16 f32) local.get $1 i32.const 48 i32.le_s @@ -5019,11 +5174,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -5031,7 +5185,7 @@ end local.get $0 f32.load - local.set $15 + local.set $16 local.get $0 f32.load offset=4 local.set $14 @@ -5039,8 +5193,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $15 - local.get $15 + local.get $16 + local.get $16 local.get $14 local.get $2 i32.load @@ -5050,39 +5204,39 @@ local.tee $1 select f32.store - local.get $15 - local.get $14 - local.get $1 - select - local.set $15 local.get $0 f32.load offset=8 - local.set $14 + local.set $12 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $14 - local.get $15 - local.get $15 + local.get $16 local.get $14 + local.get $1 + select + local.tee $16 + local.get $12 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $1 + local.get $0 + local.get $12 + local.get $16 + local.get $1 select f32.store offset=4 local.get $0 - local.get $15 - local.get $14 + local.get $16 + local.get $12 local.get $1 select f32.store offset=8 end local.get $0 f32.load - local.set $15 + local.set $16 local.get $0 f32.load offset=4 local.set $14 @@ -5090,8 +5244,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $15 - local.get $15 + local.get $16 + local.get $16 local.get $14 local.get $2 i32.load @@ -5102,7 +5256,7 @@ select f32.store local.get $0 - local.get $15 + local.get $16 local.get $14 local.get $1 select @@ -5111,7 +5265,7 @@ end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -5123,28 +5277,38 @@ local.get $1 i32.clz i32.sub - local.tee $6 + local.tee $5 i32.const 2 i32.shl local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $12 + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 local.get $7 i32.add local.set $11 i32.const 0 local.set $7 loop $for-loop|1 - local.get $6 + local.get $5 local.get $7 i32.gt_u if local.get $7 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.const -1 i32.store @@ -5158,87 +5322,97 @@ local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $15 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $13 + local.get $15 i32.const 31 - local.get $13 + local.get $15 i32.const 31 i32.lt_s select - local.tee $5 - local.get $1 + local.tee $1 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $1 + local.get $15 i32.lt_s if local.get $0 - local.get $5 + local.get $1 i32.const 1 i32.add - local.tee $6 - local.get $13 + local.tee $7 + local.get $15 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 - local.get $6 + local.tee $5 + local.get $7 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $4 i32.const 32 i32.lt_s if local.get $0 - local.get $6 - local.get $13 - local.get $6 + local.get $7 + local.get $15 + local.get $7 i32.const 31 i32.add - local.tee $1 - local.get $1 - local.get $13 + local.tee $5 + local.get $5 + local.get $15 i32.gt_s select - local.tee $7 - local.get $8 + local.tee $5 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $15 i32.const 1 i32.add i64.extend_i32_u local.tee $9 i64.div_u - local.get $6 + local.get $5 local.get $7 i32.add i32.const 1 @@ -5251,83 +5425,81 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $4 loop $for-loop|3 - local.get $1 - local.get $8 + local.get $4 + local.get $6 i32.lt_u if - local.get $8 + local.get $6 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $6 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $5 + local.get $1 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $13 i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $6 i32.const 1 i32.sub - local.set $8 + local.set $6 br $for-loop|3 end end - local.get $12 - local.get $1 + local.get $4 i32.const 2 i32.shl - local.tee $4 + local.tee $6 + local.get $13 i32.add local.get $3 i32.store - local.get $4 + local.get $6 local.get $11 i32.add - local.get $5 + local.get $1 i32.store - local.get $6 - local.set $3 local.get $7 - local.set $5 - local.get $1 - local.set $4 + local.set $3 + local.get $5 + local.set $1 + local.get $4 + local.set $6 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $6 if - local.get $4 + local.get $6 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.load local.tee $1 @@ -5336,7 +5508,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $6 i32.const 2 i32.shl local.get $11 @@ -5344,21 +5516,21 @@ i32.load i32.const 1 i32.add - local.get $13 + local.get $15 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $6 i32.const 1 i32.sub - local.set $4 + local.set $6 br $for-loop|4 end end local.get $10 call $~lib/rt/tlsf/__free - local.get $12 + local.get $13 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) @@ -5485,16 +5657,19 @@ local.get $8 i32.ge_s if - local.get $0 local.get $8 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $3 f64.load offset=8 local.tee $7 local.set $6 - local.get $3 + local.get $8 + i32.const 3 + i32.shl + local.get $0 + i32.add f64.load local.set $5 i32.const 2 @@ -5618,7 +5793,6 @@ (local $4 i32) (local $5 f64) (local $6 f64) - (local $7 i32) local.get $1 local.get $2 i32.eq @@ -5654,14 +5828,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $7 f64.load offset=8 - local.get $7 + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add f64.load i32.const 2 global.set $~argumentsLength @@ -5688,28 +5865,34 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $3 f64.load local.set $5 - local.get $3 + local.get $1 + i32.const 3 + i32.shl local.get $0 + i32.add local.get $2 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $7 f64.load f64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $7 + local.get $2 + i32.const 3 + i32.shl + local.get $0 + i32.add local.get $5 f64.store local.get $2 @@ -5725,14 +5908,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $1 f64.load offset=8 - local.get $1 + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add f64.load i32.const 2 global.set $~argumentsLength @@ -5760,63 +5946,68 @@ (local $7 f64) (local $8 f64) (local $9 i32) - (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $9 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 3 i32.shl - local.tee $10 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl local.get $0 - local.get $10 i32.add f64.load f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $9 - local.get $6 + local.get $2 i32.sub i32.const 3 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $0 i32.add f64.load offset=8 f64.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -5825,14 +6016,14 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $4 i32.add f64.load local.set $7 - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $4 @@ -5856,10 +6047,10 @@ i32.add local.get $7 f64.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 3 @@ -5868,10 +6059,10 @@ i32.add local.get $8 f64.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -5891,10 +6082,11 @@ (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i32) + (local $12 f64) (local $13 i32) (local $14 f64) - (local $15 f64) + (local $15 i32) + (local $16 f64) local.get $1 i32.const 48 i32.le_s @@ -5908,11 +6100,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -5920,7 +6111,7 @@ end local.get $0 f64.load - local.set $15 + local.set $16 local.get $0 f64.load offset=8 local.set $14 @@ -5928,8 +6119,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $15 - local.get $15 + local.get $16 + local.get $16 local.get $14 local.get $2 i32.load @@ -5939,39 +6130,39 @@ local.tee $1 select f64.store - local.get $15 - local.get $14 - local.get $1 - select - local.set $15 local.get $0 f64.load offset=16 - local.set $14 + local.set $12 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $14 - local.get $15 - local.get $15 + local.get $16 local.get $14 + local.get $1 + select + local.tee $16 + local.get $12 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $1 + local.get $0 + local.get $12 + local.get $16 + local.get $1 select f64.store offset=8 local.get $0 - local.get $15 - local.get $14 + local.get $16 + local.get $12 local.get $1 select f64.store offset=16 end local.get $0 f64.load - local.set $15 + local.set $16 local.get $0 f64.load offset=8 local.set $14 @@ -5979,8 +6170,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $15 - local.get $15 + local.get $16 + local.get $16 local.get $14 local.get $2 i32.load @@ -5991,7 +6182,7 @@ select f64.store local.get $0 - local.get $15 + local.get $16 local.get $14 local.get $1 select @@ -6000,7 +6191,7 @@ end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -6012,28 +6203,38 @@ local.get $1 i32.clz i32.sub - local.tee $6 + local.tee $5 i32.const 2 i32.shl local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $12 + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 local.get $7 i32.add local.set $11 i32.const 0 local.set $7 loop $for-loop|1 - local.get $6 + local.get $5 local.get $7 i32.gt_u if local.get $7 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.const -1 i32.store @@ -6047,87 +6248,97 @@ local.get $1 i32.const 3 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $15 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $13 + local.get $15 i32.const 31 - local.get $13 + local.get $15 i32.const 31 i32.lt_s select - local.tee $5 - local.get $1 + local.tee $1 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $1 + local.get $15 i32.lt_s if local.get $0 - local.get $5 + local.get $1 i32.const 1 i32.add - local.tee $6 - local.get $13 + local.tee $7 + local.get $15 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 - local.get $6 + local.tee $5 + local.get $7 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $4 i32.const 32 i32.lt_s if local.get $0 - local.get $6 - local.get $13 - local.get $6 + local.get $7 + local.get $15 + local.get $7 i32.const 31 i32.add - local.tee $1 - local.get $1 - local.get $13 + local.tee $5 + local.get $5 + local.get $15 i32.gt_s select - local.tee $7 - local.get $8 + local.tee $5 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $15 i32.const 1 i32.add i64.extend_i32_u local.tee $9 i64.div_u - local.get $6 + local.get $5 local.get $7 i32.add i32.const 1 @@ -6140,83 +6351,81 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $4 loop $for-loop|3 - local.get $1 - local.get $8 + local.get $4 + local.get $6 i32.lt_u if - local.get $8 + local.get $6 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $6 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $5 + local.get $1 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $13 i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $6 i32.const 1 i32.sub - local.set $8 + local.set $6 br $for-loop|3 end end - local.get $12 - local.get $1 + local.get $4 i32.const 2 i32.shl - local.tee $4 + local.tee $6 + local.get $13 i32.add local.get $3 i32.store - local.get $4 + local.get $6 local.get $11 i32.add - local.get $5 + local.get $1 i32.store - local.get $6 - local.set $3 local.get $7 - local.set $5 - local.get $1 - local.set $4 + local.set $3 + local.get $5 + local.set $1 + local.get $4 + local.set $6 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $6 if - local.get $4 + local.get $6 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.load local.tee $1 @@ -6225,7 +6434,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $6 i32.const 2 i32.shl local.get $11 @@ -6233,21 +6442,21 @@ i32.load i32.const 1 i32.add - local.get $13 + local.get $15 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $6 i32.const 1 i32.sub - local.set $4 + local.set $6 br $for-loop|4 end end local.get $10 call $~lib/rt/tlsf/__free - local.get $12 + local.get $13 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) @@ -6330,16 +6539,19 @@ local.get $7 i32.ge_s if - local.get $0 local.get $7 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 i32.load offset=4 local.tee $6 local.set $5 - local.get $3 + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load local.set $3 i32.const 2 @@ -6498,14 +6710,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $5 i32.load offset=4 - local.get $5 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load i32.const 2 global.set $~argumentsLength @@ -6532,29 +6747,35 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $1 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $2 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $5 - local.get $6 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 i32.store local.get $2 i32.const 1 @@ -6569,14 +6790,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 - local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load i32.const 2 global.set $~argumentsLength @@ -6607,58 +6831,64 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 2 i32.shl - local.tee $8 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl local.get $0 - local.get $8 i32.add i32.load i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $7 - local.get $6 + local.get $2 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -6667,24 +6897,24 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 - local.get $2 + local.set $7 + local.get $6 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $7 + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $7 + local.get $8 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -6696,24 +6926,24 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 2 i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -6748,11 +6978,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -6760,87 +6989,87 @@ end local.get $0 i32.load - local.set $3 + local.set $1 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $4 select i32.store - local.get $3 - local.get $4 - local.get $1 - select - local.set $3 local.get $0 i32.load offset=8 - local.set $4 + local.set $5 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 + local.get $1 local.get $3 local.get $4 + select + local.tee $1 + local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $3 + local.get $0 + local.get $5 + local.get $1 + local.get $3 select i32.store offset=4 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $5 + local.get $3 select i32.store offset=8 end local.get $0 i32.load - local.set $3 + local.set $1 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $2 select i32.store local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $3 + local.get $2 select i32.store offset=4 return end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -6855,39 +7084,59 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $10 - local.get $5 + local.get $4 i32.add local.set $11 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -6897,10 +7146,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if @@ -6912,51 +7161,51 @@ i32.const 31 i32.lt_s select - local.tee $7 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $1 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 + local.get $4 local.get $9 - local.get $6 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 + local.tee $6 + local.get $6 local.get $9 i32.gt_s select - local.tee $5 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 @@ -6967,7 +7216,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -6980,36 +7229,34 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $7 + local.get $1 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -7018,42 +7265,42 @@ i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $10 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $10 i32.add local.get $3 i32.store - local.get $4 + local.get $5 local.get $11 i32.add - local.get $7 + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 - local.get $5 - local.set $7 - local.get $1 - local.set $4 + local.get $6 + local.set $1 + local.get $7 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 @@ -7065,7 +7312,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $11 @@ -7078,10 +7325,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end @@ -7125,16 +7372,19 @@ local.get $7 i32.ge_s if - local.get $0 local.get $7 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 i32.load offset=4 local.tee $6 local.set $5 - local.get $3 + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load local.set $3 i32.const 2 @@ -7293,14 +7543,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $5 i32.load offset=4 - local.get $5 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load i32.const 2 global.set $~argumentsLength @@ -7327,29 +7580,35 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $1 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $2 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $5 - local.get $6 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 i32.store local.get $2 i32.const 1 @@ -7364,14 +7623,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 - local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load i32.const 2 global.set $~argumentsLength @@ -7402,58 +7664,64 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 2 i32.shl - local.tee $8 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl local.get $0 - local.get $8 i32.add i32.load i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $7 - local.get $6 + local.get $2 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -7462,24 +7730,24 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 - local.get $2 + local.set $7 + local.get $6 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $7 + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $7 + local.get $8 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -7491,24 +7759,24 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 2 i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -7543,11 +7811,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -7555,87 +7822,87 @@ end local.get $0 i32.load - local.set $3 + local.set $1 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $4 select i32.store - local.get $3 - local.get $4 - local.get $1 - select - local.set $3 local.get $0 i32.load offset=8 - local.set $4 + local.set $5 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 + local.get $1 local.get $3 local.get $4 + select + local.tee $1 + local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $3 + local.get $0 + local.get $5 + local.get $1 + local.get $3 select i32.store offset=4 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $5 + local.get $3 select i32.store offset=8 end local.get $0 i32.load - local.set $3 + local.set $1 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $2 select i32.store local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $3 + local.get $2 select i32.store offset=4 return end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -7650,39 +7917,59 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $10 - local.get $5 + local.get $4 i32.add local.set $11 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -7692,10 +7979,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if @@ -7707,51 +7994,51 @@ i32.const 31 i32.lt_s select - local.tee $7 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $1 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 + local.get $4 local.get $9 - local.get $6 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 + local.tee $6 + local.get $6 local.get $9 i32.gt_s select - local.tee $5 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 @@ -7762,7 +8049,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -7775,36 +8062,34 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $7 + local.get $1 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -7813,42 +8098,42 @@ i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $10 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $10 i32.add local.get $3 i32.store - local.get $4 + local.get $5 local.get $11 i32.add - local.get $7 + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 - local.get $5 - local.set $7 - local.get $1 - local.set $4 + local.get $6 + local.set $1 + local.get $7 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 @@ -7860,7 +8145,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $11 @@ -7873,10 +8158,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end @@ -7965,7 +8250,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 local.get $3 local.get $2 local.get $1 @@ -7983,6 +8267,7 @@ i32.and local.get $3 select + local.get $1 i32.add local.set $8 loop $for-loop|0 @@ -7992,10 +8277,10 @@ if global.get $~lib/memory/__stack_pointer local.tee $6 - local.get $0 local.get $8 i32.const 2 i32.shl + local.get $0 i32.add local.tee $5 i32.load @@ -8006,10 +8291,10 @@ i32.load offset=4 local.tee $6 i32.store offset=4 - i32.const 2 - global.set $~argumentsLength local.get $6 local.set $5 + i32.const 2 + global.set $~argumentsLength local.get $3 local.get $6 local.get $4 @@ -8034,10 +8319,10 @@ if block $while-break|1 global.get $~lib/memory/__stack_pointer - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.tee $7 @@ -8052,10 +8337,10 @@ i32.const 0 i32.le_s br_if $while-break|1 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $7 i32.store offset=8 @@ -8067,10 +8352,10 @@ end end end - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $3 i32.store offset=8 @@ -8081,10 +8366,10 @@ if block $while-break|2 global.get $~lib/memory/__stack_pointer - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.tee $3 @@ -8099,10 +8384,10 @@ i32.const 0 i32.le_s br_if $while-break|2 - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $3 i32.store offset=4 @@ -8114,10 +8399,10 @@ end end end - local.get $0 local.get $6 i32.const 2 i32.shl + local.get $0 i32.add local.get $5 i32.store offset=4 @@ -8155,30 +8440,30 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 + local.get $3 i32.add local.set $8 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 2 i32.shl local.tee $7 + local.get $4 i32.add local.get $0 local.get $7 @@ -8189,28 +8474,28 @@ end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if - local.get $4 local.get $8 - local.get $6 + local.get $2 i32.sub i32.const 2 i32.shl + local.get $4 i32.add - local.get $0 - local.get $6 + local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -8221,19 +8506,19 @@ if global.get $~lib/memory/__stack_pointer local.tee $7 - local.get $4 - local.get $6 + local.get $2 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.tee $8 i32.store local.get $7 - local.get $4 - local.get $2 + local.get $6 i32.const 2 i32.shl + local.get $4 i32.add i32.load local.tee $7 @@ -8248,29 +8533,29 @@ i32.const 0 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $8 i32.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $7 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -8294,8 +8579,8 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) - (local $13 i32) + (local $12 i32) + (local $13 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8312,10 +8597,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i64.const 0 i64.store - local.get $5 + local.get $4 i32.const 0 i32.store offset=8 block $folding-inner0 @@ -8340,84 +8625,83 @@ br $break|0 end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 local.get $0 i32.load local.tee $1 i32.store - local.get $4 + local.get $3 local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 local.get $1 local.get $1 - local.get $4 + local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $3 + local.tee $5 select i32.store global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $1 - local.get $4 local.get $3 + local.get $5 select local.tee $1 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 local.get $1 local.get $1 - local.get $4 + local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $3 + local.tee $5 select i32.store offset=4 local.get $0 local.get $1 - local.get $4 local.get $3 + local.get $5 select i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 local.get $0 i32.load local.tee $1 i32.store offset=8 - local.get $4 + local.get $3 local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 local.get $1 local.get $1 - local.get $4 + local.get $3 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -8428,7 +8712,7 @@ i32.store local.get $0 local.get $1 - local.get $4 + local.get $3 local.get $2 select i32.store offset=4 @@ -8451,83 +8735,103 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $9 - local.get $5 + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $4 i32.add - local.set $10 + local.set $11 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $9 - local.get $5 + local.get $4 i32.const 2 i32.shl + local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc - local.set $11 + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $1 i32.const 1 i32.add - local.tee $5 + local.tee $4 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $9 i32.const 31 - local.get $8 + local.get $9 i32.const 31 i32.lt_s select local.tee $1 - local.get $5 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 local.get $1 - local.get $8 + local.get $9 i32.lt_s if local.get $0 local.get $1 i32.const 1 i32.add - local.tee $6 - local.get $8 + local.tee $4 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add @@ -8536,34 +8840,34 @@ i32.lt_s if local.get $0 - local.get $6 - local.get $8 - local.get $6 + local.get $4 + local.get $9 + local.get $4 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $6 + local.get $6 + local.get $9 i32.gt_s select - local.tee $5 + local.tee $6 local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $13 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -8571,86 +8875,86 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $13 i64.div_u i64.xor i32.wrap_i64 i32.clz local.set $7 loop $for-loop|3 - local.get $4 + local.get $5 local.get $7 i32.gt_u if - local.get $9 - local.get $4 + local.get $5 i32.const 2 i32.shl + local.get $10 i32.add i32.load - local.tee $13 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 - local.get $4 + local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add local.get $1 - local.get $11 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $10 i32.add i32.const -1 i32.store - local.get $13 + local.get $8 local.set $3 end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|3 end end - local.get $9 local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $10 i32.add local.get $3 i32.store - local.get $4 - local.get $10 + local.get $5 + local.get $11 i32.add local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 - local.get $5 + local.get $6 local.set $1 local.get $7 - local.set $4 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $9 - local.get $4 + local.get $5 i32.const 2 i32.shl + local.get $10 i32.add i32.load local.tee $1 @@ -8659,29 +8963,29 @@ if local.get $0 local.get $1 - local.get $10 - local.get $4 + local.get $5 i32.const 2 i32.shl + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end - local.get $11 + local.get $12 call $~lib/rt/tlsf/__free - local.get $9 + local.get $10 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 12 @@ -8700,7 +9004,6 @@ i32.sub ) (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -8721,12 +9024,13 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -9197,10 +9501,10 @@ i32.const 10 i32.lt_u if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -9352,15 +9656,15 @@ local.get $6 i32.gt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add - local.get $4 local.get $6 i32.const 2 i32.shl + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered @@ -9369,10 +9673,10 @@ local.set $2 local.get $5 if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $5 @@ -9392,15 +9696,15 @@ end end local.get $7 - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add - local.get $4 local.get $3 i32.const 2 i32.shl + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered @@ -9578,15 +9882,15 @@ local.get $6 i32.gt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add - local.get $4 local.get $6 i32.const 2 i32.shl + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered @@ -9595,10 +9899,10 @@ local.set $2 local.get $5 if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $5 @@ -9618,15 +9922,15 @@ end end local.get $7 - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add - local.get $4 local.get $3 i32.const 2 i32.shl + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered @@ -9863,10 +10167,10 @@ i32.const 1 i32.add local.set $5 - local.get $0 local.get $8 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 65535 @@ -9904,12 +10208,12 @@ i64.extend_i32_s i64.shl local.set $2 - local.get $0 local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.tee $6 i32.load16_u @@ -9965,9 +10269,6 @@ br $while-continue|0 end end - local.get $11 - i64.extend_i32_s - local.set $1 loop $while-continue|4 local.get $4 i64.const 10 @@ -9976,10 +10277,11 @@ local.get $7 i64.const 10 i64.mul - local.tee $2 - local.get $1 + local.tee $1 + local.get $11 + i64.extend_i32_s i64.shr_u - local.tee $7 + local.tee $2 local.get $5 i64.extend_i32_s i64.or @@ -9991,12 +10293,12 @@ i32.const 1 i32.add local.set $5 - local.get $0 local.get $3 i32.const 1 i32.shl + local.get $0 i32.add - local.get $7 + local.get $2 i32.wrap_i64 i32.const 65535 i32.and @@ -10009,7 +10311,7 @@ i32.sub local.set $9 local.get $4 - local.get $2 + local.get $1 local.get $13 i64.and local.tee $7 @@ -10022,7 +10324,6 @@ global.set $~lib/util/number/_K local.get $7 local.set $1 - local.get $10 i32.const 0 local.get $9 i32.sub @@ -10031,14 +10332,15 @@ i32.const 12624 i32.add i64.load32_u + local.get $10 i64.mul local.set $2 - local.get $0 local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.tee $6 i32.load16_u @@ -10098,10 +10400,10 @@ local.get $2 i32.eqz if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store @@ -10113,24 +10415,24 @@ local.get $1 local.get $2 i32.add - local.tee $4 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $4 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $4 + local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -10141,31 +10443,32 @@ br $for-loop|0 end end - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store - local.get $4 + local.get $3 i32.const 2 i32.add else - local.get $4 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add + local.tee $4 local.tee $0 i32.const 2 i32.add @@ -10176,29 +10479,29 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $4 i32.const 46 i32.store16 local.get $1 i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const -6 i32.gt_s select if (result i32) - local.get $0 i32.const 2 - local.get $4 + local.get $3 i32.sub - local.tee $5 + local.tee $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $0 local.get $1 @@ -10212,13 +10515,13 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $5 + local.get $4 i32.lt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -10230,7 +10533,7 @@ end end local.get $1 - local.get $5 + local.get $4 i32.add else local.get $1 @@ -10241,10 +10544,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $5 + local.get $3 i32.const 1 i32.sub local.tee $0 @@ -10311,12 +10614,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $5 i32.const 45 i32.const 43 local.get $2 select - i32.store16 offset=4 + i32.store16 local.get $0 i32.const 2 i32.add @@ -10344,16 +10647,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $6 + local.get $3 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -10414,12 +10717,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $6 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select - i32.store16 offset=4 + i32.store16 local.get $0 local.get $1 i32.add @@ -10432,21 +10735,21 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) (local $6 i64) (local $7 i64) (local $8 i64) (local $9 i32) (local $10 i32) (local $11 i64) - (local $12 i64) + (local $12 i32) (local $13 i64) local.get $1 f64.const 0 f64.lt - local.tee $9 + local.tee $10 if (result f64) local.get $0 i32.const 45 @@ -10463,11 +10766,11 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.set $5 + local.set $3 local.get $2 i64.const 4503599627370495 i64.and - local.get $5 + local.get $3 i32.const 0 i32.ne i64.extend_i32_u @@ -10475,13 +10778,13 @@ i64.shl i64.add local.set $2 - local.get $5 + local.get $3 i32.const 1 - local.get $5 + local.get $3 select i32.const 1075 i32.sub - local.tee $5 + local.tee $3 i32.const 1 i32.sub local.get $2 @@ -10489,14 +10792,14 @@ i64.shl i64.const 1 i64.add - local.tee $3 + local.tee $4 i64.clz i32.wrap_i64 - local.tee $4 + local.tee $9 i32.sub - local.set $10 - local.get $3 + local.set $12 local.get $4 + local.get $9 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -10506,25 +10809,25 @@ i64.eq i32.const 1 i32.add - local.tee $4 + local.tee $9 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $5 - local.get $4 + local.get $3 + local.get $9 i32.sub - local.get $10 + local.get $12 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $10 + local.get $12 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $5 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -10533,9 +10836,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $4 + local.tee $3 local.get $1 - local.get $4 + local.get $3 f64.convert_i32_s f64.ne i32.add @@ -10543,18 +10846,19 @@ i32.shr_s i32.const 1 i32.add - local.tee $4 + local.tee $3 i32.const 3 i32.shl - local.tee $10 i32.sub global.set $~lib/util/number/_K - local.get $10 + local.get $3 + i32.const 3 + i32.shl i32.const 11752 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $4 + local.get $3 i32.const 1 i32.shl i32.const 12448 @@ -10565,29 +10869,23 @@ local.get $2 i64.clz i64.shl - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $12 + local.set $13 global.get $~lib/util/number/_frc_pow - local.tee $11 + local.tee $2 i64.const 4294967295 i64.and - local.set $2 - local.get $3 + local.tee $11 + local.get $4 i64.const 32 i64.shr_u - local.set $13 + local.tee $4 + i64.mul local.get $11 - i64.const 32 - i64.shr_u - local.set $3 - local.get $2 local.get $13 i64.mul - local.get $2 - local.get $12 - i64.mul i64.const 32 i64.shr_u i64.add @@ -10598,29 +10896,35 @@ i64.and local.set $7 local.get $2 + i64.const 4294967295 + i64.and + local.tee $5 local.get $6 i64.const 32 i64.shr_u local.tee $6 i64.mul - local.get $2 + local.get $5 local.get $7 i64.mul i64.const 32 i64.shr_u i64.add - local.set $8 - local.get $3 + local.set $5 local.get $6 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $8 i64.mul - local.get $8 + local.get $5 i64.const 32 i64.shr_u i64.add - local.get $3 local.get $7 - i64.mul local.get $8 + i64.mul + local.get $5 i64.const 4294967295 i64.and i64.add @@ -10636,35 +10940,41 @@ local.tee $7 i64.const 4294967295 i64.and - local.set $8 + local.set $5 local.get $2 + i64.const 4294967295 + i64.and + local.tee $8 local.get $7 i64.const 32 i64.shr_u local.tee $7 i64.mul - local.get $2 + local.get $5 local.get $8 i64.mul i64.const 32 i64.shr_u i64.add - local.set $2 - local.get $9 + local.set $8 + local.get $10 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $3 - local.get $13 + local.get $4 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $4 i64.mul local.get $11 i64.const 32 i64.shr_u i64.add - local.get $3 - local.get $12 + local.get $4 + local.get $13 i64.mul local.get $11 i64.const 4294967295 @@ -10676,23 +10986,26 @@ i64.shr_u i64.add local.get $6 - local.get $5 global.get $~lib/util/number/_exp_pow + local.get $9 i32.add i32.const -64 i32.sub local.get $6 - local.get $3 local.get $7 - i64.mul local.get $2 i64.const 32 i64.shr_u - i64.add - local.get $3 - local.get $8 + local.tee $2 i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add local.get $2 + local.get $5 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -10704,13 +11017,13 @@ i64.const 1 i64.add i64.sub - local.get $9 + local.get $10 call $~lib/util/number/genDigits - local.get $9 + local.get $10 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $10 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -10783,6 +11096,245 @@ local.get $1 call $~lib/util/number/dtoa_core ) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinFloatArray + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9024 + local.set $0 + br $__inlined_func$~lib/util/string/joinFloatArray + end + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $4 + f64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/dtoa + local.get $2 + f64.const 0 + f64.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11552 + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + local.get $2 + local.get $2 + f64.sub + f64.const 0 + f64.ne + if + local.get $2 + local.get $2 + f64.ne + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11584 + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11616 + i32.const 11664 + local.get $2 + f64.const 0 + f64.lt + select + local.set $0 + br $__inlined_func$~lib/util/number/dtoa + end + i32.const 11696 + local.get $2 + call $~lib/util/number/dtoa_core + i32.const 1 + i32.shl + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 11696 + local.get $1 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 11516 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 28 + i32.add + i32.mul + i32.const 28 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $4 + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 11520 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $4 + i32.add + f64.load + call $~lib/util/number/dtoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + br $__inlined_func$~lib/util/string/joinFloatArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + return + end + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -10862,23 +11414,23 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 local.get $3 i32.const 2 i32.shl + local.get $7 i32.add i32.load local.tee $4 i32.store offset=4 local.get $4 if - local.get $0 local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u + local.get $0 i32.add local.set $0 end @@ -10890,7 +11442,6 @@ end end global.get $~lib/memory/__stack_pointer - local.get $0 local.get $6 local.get $1 i32.const 20 @@ -10900,6 +11451,7 @@ i32.shr_u local.tee $5 i32.mul + local.get $0 i32.add i32.const 1 i32.shl @@ -10915,20 +11467,20 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 local.get $3 i32.const 2 i32.shl + local.get $7 i32.add i32.load local.tee $4 i32.store offset=4 local.get $4 if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $4 local.get $4 @@ -10948,10 +11500,10 @@ end local.get $5 if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $5 @@ -10971,20 +11523,20 @@ end end global.get $~lib/memory/__stack_pointer - local.get $7 local.get $6 i32.const 2 i32.shl + local.get $7 i32.add i32.load local.tee $1 i32.store offset=4 local.get $1 if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $1 @@ -11090,10 +11642,10 @@ i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 local.get $3 i32.const 2 i32.shl + local.get $1 i32.add i32.load local.tee $4 @@ -11128,10 +11680,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 local.get $2 i32.const 2 i32.shl + local.get $1 i32.add i32.load local.tee $1 @@ -11158,7 +11710,6 @@ ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) local.get $1 i32.extend8_s i32.const 0 @@ -11178,10 +11729,10 @@ i32.const 10 i32.lt_u if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.extend8_s @@ -11193,59 +11744,56 @@ i32.add return end + local.get $0 local.get $1 i32.extend8_s - local.tee $3 - local.tee $1 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - local.get $0 - local.get $3 - local.get $1 local.get $2 i32.add local.tee $0 @@ -11253,7 +11801,6 @@ local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 i32.const 65535 i32.and @@ -11270,62 +11817,60 @@ i32.const 1 return end + local.get $0 local.get $1 i32.const 65535 i32.and - local.tee $2 - local.tee $1 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - local.get $0 - local.get $2 - local.get $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -11548,6 +12093,326 @@ end local.get $0 ) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9024 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $4 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9616 + local.set $0 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $3 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa64_dec_lut + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 9308 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $6 + i32.const 3 + i32.shl + local.get $4 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $5 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9312 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $4 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + return + end + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) @@ -11569,10 +12434,10 @@ i64.const 10 i64.lt_u if - local.get $0 local.get $3 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i64.const 48 @@ -11704,8 +12569,348 @@ end local.get $0 ) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9024 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + block $folding-inner0 + local.get $4 + i32.eqz + if + local.get $5 + i64.load + i64.extend32_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa64 + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9616 + local.set $0 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $2 + i64.sub + local.get $2 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $3 + select + local.tee $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $6 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $3 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $6 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $3 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 9308 + i32.load + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $7 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9312 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $7 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $4 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + return + end + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 i32.const 255 i32.and @@ -11722,62 +12927,60 @@ i32.const 1 return end + local.get $0 local.get $1 i32.const 255 i32.and - local.tee $2 - local.tee $1 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - local.get $0 - local.get $2 - local.get $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -11865,10 +13068,10 @@ local.get $6 i32.gt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $4 local.get $6 @@ -11880,10 +13083,10 @@ local.set $2 local.get $5 if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $5 @@ -11903,10 +13106,10 @@ end end local.get $7 - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 local.get $4 @@ -11992,11 +13195,12 @@ local.get $0 local.get $7 i32.add - local.tee $3 i32.load8_u offset=1 local.tee $6 local.set $5 - local.get $3 + local.get $0 + local.get $7 + i32.add i32.load8_u local.set $3 i32.const 2 @@ -12142,9 +13346,10 @@ local.get $0 local.get $4 i32.add - local.tee $5 i32.load8_u offset=1 - local.get $5 + local.get $0 + local.get $4 + i32.add i32.load8_u i32.const 2 global.set $~argumentsLength @@ -12174,22 +13379,24 @@ local.get $0 local.get $1 i32.add - local.tee $3 i32.load8_u - local.set $6 - local.get $3 + local.set $3 + local.get $0 + local.get $1 + i32.add local.get $0 local.get $2 i32.add - local.tee $5 i32.load8_u i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $5 - local.get $6 + local.get $0 + local.get $2 + i32.add + local.get $3 i32.store8 local.get $2 i32.const 1 @@ -12207,9 +13414,10 @@ local.get $0 local.get $4 i32.add - local.tee $1 i32.load8_u offset=1 - local.get $1 + local.get $0 + local.get $4 + i32.add i32.load8_u i32.const 2 global.set $~argumentsLength @@ -12240,51 +13448,56 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub local.get $0 - local.get $2 i32.add i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $7 - local.get $6 + local.get $2 i32.sub local.get $4 i32.add local.get $0 - local.get $6 + local.get $2 i32.add i32.load8_u offset=1 i32.store8 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -12293,20 +13506,20 @@ local.get $3 i32.le_s if + local.get $2 local.get $4 - local.get $6 i32.add i32.load8_u - local.set $8 - local.get $2 + local.set $7 local.get $4 + local.get $6 i32.add i32.load8_u - local.set $7 + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $7 + local.get $8 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -12316,22 +13529,22 @@ local.get $0 local.get $1 i32.add - local.get $8 + local.get $7 i32.store8 - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $0 local.get $1 i32.add - local.get $7 + local.get $8 i32.store8 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -12366,11 +13579,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -12378,87 +13590,87 @@ end local.get $0 i32.load8_u - local.set $3 + local.set $1 local.get $0 i32.load8_u offset=1 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $4 select i32.store8 - local.get $3 - local.get $4 - local.get $1 - select - local.set $3 local.get $0 i32.load8_u offset=2 - local.set $4 + local.set $5 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 + local.get $1 local.get $3 local.get $4 + select + local.tee $1 + local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $3 + local.get $0 + local.get $5 + local.get $1 + local.get $3 select i32.store8 offset=1 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $5 + local.get $3 select i32.store8 offset=2 end local.get $0 i32.load8_u - local.set $3 + local.set $1 local.get $0 i32.load8_u offset=1 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $2 select i32.store8 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $3 + local.get $2 select i32.store8 offset=1 return end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -12473,37 +13685,55 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $10 - local.get $5 + local.get $4 i32.add local.set $11 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -12513,10 +13743,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if @@ -12528,51 +13758,51 @@ i32.const 31 i32.lt_s select - local.tee $7 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $1 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 + local.get $4 local.get $9 - local.get $6 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 + local.tee $6 + local.get $6 local.get $9 i32.gt_s select - local.tee $5 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 @@ -12583,7 +13813,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -12596,36 +13826,34 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $7 + local.get $1 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -12634,42 +13862,42 @@ i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $10 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $10 i32.add local.get $3 i32.store - local.get $4 + local.get $5 local.get $11 i32.add - local.get $7 + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 - local.get $5 - local.set $7 - local.get $1 - local.set $4 + local.get $6 + local.set $1 + local.get $7 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 @@ -12681,7 +13909,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $11 @@ -12694,10 +13922,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end @@ -12740,14 +13968,16 @@ local.get $0 i32.const 255 i32.and - local.tee $0 local.get $1 i32.const 255 i32.and - local.tee $1 i32.gt_u local.get $0 + i32.const 255 + i32.and local.get $1 + i32.const 255 + i32.and i32.lt_u i32.sub ) @@ -13016,22 +14246,22 @@ end global.get $~lib/memory/__stack_pointer local.tee $4 - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.tee $5 i32.store local.get $4 - local.get $0 local.get $1 i32.const 1 i32.add local.tee $4 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.tee $6 @@ -13053,10 +14283,10 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.tee $5 - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add local.tee $6 i32.load offset=4 @@ -13095,20 +14325,20 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.tee $3 i32.load local.tee $5 i32.store offset=8 local.get $3 - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add local.tee $3 i32.load @@ -13135,10 +14365,10 @@ if (result i32) global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add local.tee $5 i32.load offset=4 @@ -13438,19 +14668,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 9312 i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $2 local.get $0 i32.load offset=12 local.set $0 - local.get $2 + local.get $1 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -13459,17 +14689,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $1 i32.const 0 i32.lt_s if @@ -13481,11 +14711,11 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $2 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load local.tee $0 i32.store @@ -13515,29 +14745,29 @@ local.set $5 loop $for-loop|0 local.get $1 - local.get $2 - i32.lt_s + local.get $4 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $1 + local.get $4 i32.const 2 i32.shl + local.get $2 i32.add i32.load - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 call $~lib/array/Array#toString - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 @@ -13551,33 +14781,33 @@ local.tee $0 i32.store offset=4 end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $2 + local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/array/Array#toString - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 @@ -13611,10 +14841,9 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) - (local $10 f64) - (local $11 i32) - (local $12 f32) + (local $9 f64) + (local $10 i32) + (local $11 f32) global.get $~lib/memory/__stack_pointer i32.const 172 i32.sub @@ -13625,70 +14854,70 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i64.const 0 i64.store offset=8 - local.get $3 + local.get $0 i64.const 0 i64.store offset=16 - local.get $3 + local.get $0 i64.const 0 i64.store offset=24 - local.get $3 + local.get $0 i64.const 0 i64.store offset=32 - local.get $3 + local.get $0 i64.const 0 i64.store offset=40 - local.get $3 + local.get $0 i64.const 0 i64.store offset=48 - local.get $3 + local.get $0 i64.const 0 i64.store offset=56 - local.get $3 + local.get $0 i64.const 0 i64.store offset=64 - local.get $3 + local.get $0 i64.const 0 i64.store offset=72 - local.get $3 + local.get $0 i64.const 0 i64.store offset=80 - local.get $3 + local.get $0 i64.const 0 i64.store offset=88 - local.get $3 + local.get $0 i64.const 0 i64.store offset=96 - local.get $3 + local.get $0 i64.const 0 i64.store offset=104 - local.get $3 + local.get $0 i64.const 0 i64.store offset=112 - local.get $3 + local.get $0 i64.const 0 i64.store offset=120 - local.get $3 + local.get $0 i64.const 0 i64.store offset=128 - local.get $3 + local.get $0 i64.const 0 i64.store offset=136 - local.get $3 + local.get $0 i64.const 0 i64.store offset=144 - local.get $3 + local.get $0 i64.const 0 i64.store offset=152 - local.get $3 + local.get $0 i64.const 0 i64.store offset=160 - local.get $3 + local.get $0 i32.const 0 i32.store offset=168 memory.size @@ -13730,10 +14959,9 @@ call $std/array/Ref#constructor local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13742,17 +14970,17 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13790,21 +15018,21 @@ i32.const 1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 1 call $~lib/memory/memory.fill local.get $0 - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $1 + local.get $2 i32.store offset=4 local.get $0 i32.const 1 @@ -13813,7 +15041,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -13821,17 +15048,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1664 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -13847,9 +15073,9 @@ i32.const 6 i32.const 1696 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i32.const 1 i32.const 3 @@ -13860,12 +15086,12 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -13876,7 +15102,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 i32.const 0 i32.const 2147483647 @@ -13887,12 +15113,12 @@ i32.const 6 i32.const 1760 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -13903,7 +15129,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.const 0 i32.const -3 @@ -13914,12 +15140,12 @@ i32.const 6 i32.const 1792 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -13930,7 +15156,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 i32.const -2 i32.const 2147483647 @@ -13941,12 +15167,12 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -13957,7 +15183,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 i32.const 1 i32.const 0 @@ -13968,12 +15194,12 @@ i32.const 6 i32.const 1856 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -13990,43 +15216,43 @@ i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.tee $5 + local.tee $0 i32.store offset=12 - local.get $5 + local.get $0 i32.load offset=4 - local.set $1 + local.set $4 i32.const 1 - local.get $5 + local.get $0 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 1 i32.gt_s select - local.set $0 + local.set $1 i32.const 3 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 3 i32.gt_s select - local.set $3 + local.set $2 loop $for-loop|0 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.lt_s if local.get $1 - local.get $0 i32.const 2 i32.shl + local.get $4 i32.add i32.const 1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -14035,12 +15261,12 @@ i32.const 7 i32.const 1936 call $~lib/rt/__newArray - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=8 - local.get $5 - local.get $3 + local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -14051,34 +15277,35 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 + local.tee $1 i32.load offset=4 - local.set $3 + local.set $0 i32.const 0 - local.get $5 - i32.load offset=12 - local.tee $1 local.get $1 + i32.load offset=12 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select - local.set $0 + local.set $5 loop $for-loop|03 - local.get $0 - local.get $1 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $3 - local.get $0 + local.get $5 i32.const 2 i32.shl + local.get $0 i32.add i32.const 0 i32.store - local.get $0 + local.get $5 i32.const 1 i32.add - local.set $0 + local.set $5 br $for-loop|03 end end @@ -14087,12 +15314,12 @@ i32.const 7 i32.const 1984 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $5 - local.get $3 + local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -14103,37 +15330,37 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 i32.load offset=4 - local.set $1 + local.set $4 i32.const 0 - local.get $5 + local.get $1 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.const 3 i32.sub - local.tee $3 + local.tee $2 i32.const 0 - local.get $3 + local.get $2 i32.const 0 i32.gt_s select - local.set $3 + local.set $2 loop $for-loop|05 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $1 local.get $0 i32.const 2 i32.shl + local.get $4 i32.add i32.const 1 i32.store @@ -14149,12 +15376,12 @@ i32.const 7 i32.const 2032 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $5 - local.get $3 + local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -14165,37 +15392,37 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 i32.load offset=4 local.set $4 - local.get $5 + local.get $1 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 2 i32.sub - local.tee $3 + local.tee $0 i32.const 0 - local.get $3 + local.get $0 i32.const 0 i32.gt_s select - local.set $0 + local.set $5 loop $for-loop|07 - local.get $0 - local.get $1 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $4 - local.get $0 + local.get $5 i32.const 2 i32.shl + local.get $4 i32.add i32.const 2 i32.store - local.get $0 + local.get $5 i32.const 1 i32.add - local.set $0 + local.set $5 br $for-loop|07 end end @@ -14204,12 +15431,12 @@ i32.const 7 i32.const 2080 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $5 - local.get $3 + local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -14220,34 +15447,34 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 i32.load offset=4 - local.set $1 + local.set $4 i32.const 1 - local.get $5 + local.get $1 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 1 i32.gt_s select local.set $0 i32.const 0 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 0 i32.gt_s select - local.set $3 + local.set $2 loop $for-loop|09 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $1 local.get $0 i32.const 2 i32.shl + local.get $4 i32.add i32.const 0 i32.store @@ -14263,12 +15490,12 @@ i32.const 7 i32.const 2128 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $5 - local.get $3 + local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -14281,9 +15508,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 if i32.const 0 @@ -14295,9 +15522,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14311,17 +15538,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 42 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -14336,9 +15563,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 1 i32.ne @@ -14352,9 +15579,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14368,9 +15595,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -14384,9 +15611,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 if i32.const 0 @@ -14398,9 +15625,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14414,17 +15641,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 1 i32.ne @@ -14438,9 +15665,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14454,9 +15681,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -14471,17 +15698,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 44 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -14495,9 +15722,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14511,9 +15738,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -14528,9 +15755,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -14545,17 +15772,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 45 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -14569,9 +15796,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14585,9 +15812,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -14602,9 +15829,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -14619,9 +15846,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -14635,40 +15862,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $3 local.get $0 + local.get $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $0 + local.get $1 i32.const 0 i32.store offset=12 - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -14684,9 +15911,9 @@ i32.const 3 i32.const 2224 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=12 - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -14699,7 +15926,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -14712,7 +15939,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -14725,7 +15952,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -14741,24 +15968,23 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $1 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 - local.get $1 + local.get $2 call $~lib/array/Array#concat - local.tee $0 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14772,9 +15998,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -14786,7 +16012,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -14803,19 +16029,19 @@ i32.const 3 i32.const 2272 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14827,7 +16053,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -14840,7 +16066,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -14853,7 +16079,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -14866,30 +16092,30 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 46 call $~lib/array/Array#push drop - local.get $1 + local.get $2 i32.const 47 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $0 - local.get $3 local.get $1 + local.get $0 + local.get $2 call $~lib/array/Array#concat - local.tee $0 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -14901,7 +16127,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=12 i32.const 2 i32.ne @@ -14913,7 +16139,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 i32.const 5 i32.ne @@ -14925,7 +16151,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -14938,7 +16164,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -14951,7 +16177,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -14964,7 +16190,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -14977,7 +16203,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -14990,10 +16216,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/array/Array#pop drop - local.get $0 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -15011,9 +16237,9 @@ i32.const 3 i32.const 2304 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.load offset=12 if i32.const 0 @@ -15024,17 +16250,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $3 + local.get $2 + local.get $0 call $~lib/array/Array#concat - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -15046,7 +16272,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=12 if i32.const 0 @@ -15062,28 +16288,28 @@ i32.const 3 i32.const 2336 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 0 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2384 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15101,28 +16327,28 @@ i32.const 3 i32.const 2432 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 1 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2480 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15140,28 +16366,28 @@ i32.const 3 i32.const 2528 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2576 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15179,28 +16405,28 @@ i32.const 3 i32.const 2624 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2672 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15218,28 +16444,28 @@ i32.const 3 i32.const 2720 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2768 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15257,28 +16483,28 @@ i32.const 3 i32.const 2816 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2864 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15296,28 +16522,28 @@ i32.const 3 i32.const 2912 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2960 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15335,28 +16561,28 @@ i32.const 3 i32.const 3008 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3056 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15374,28 +16600,28 @@ i32.const 3 i32.const 3104 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3152 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15413,28 +16639,28 @@ i32.const 3 i32.const 3200 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3248 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15452,28 +16678,28 @@ i32.const 3 i32.const 3296 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3344 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15491,28 +16717,28 @@ i32.const 3 i32.const 3392 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const -4 i32.const -3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3440 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -15526,17 +16752,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 42 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -15550,9 +16776,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15566,9 +16792,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -15583,9 +16809,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -15600,9 +16826,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -15617,9 +16843,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -15634,17 +16860,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 41 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 5 i32.ne @@ -15658,9 +16884,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15674,9 +16900,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -15691,9 +16917,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -15708,9 +16934,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -15725,9 +16951,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -15742,9 +16968,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -15763,7 +16989,7 @@ i32.store local.get $5 i32.load offset=12 - local.tee $3 + local.tee $0 i32.const 1 i32.lt_s if @@ -15782,21 +17008,21 @@ local.get $4 i32.const 4 i32.add - local.get $3 + local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $1 i32.const 2 i32.shl - local.tee $3 + local.tee $0 call $~lib/memory/memory.copy - local.get $3 + local.get $0 local.get $4 i32.add i32.const 0 i32.store local.get $5 - local.get $0 + local.get $1 i32.store offset=12 global.set $std/array/i global.get $std/array/i @@ -15812,9 +17038,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -15828,9 +17054,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15844,9 +17070,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -15861,9 +17087,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -15878,9 +17104,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -15895,9 +17121,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -15912,9 +17138,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -15930,9 +17156,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -15946,9 +17172,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15962,9 +17188,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -15979,9 +17205,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -15996,9 +17222,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16017,26 +17243,26 @@ i32.const 3 i32.const 3488 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $3 + local.tee $0 i32.store offset=16 i32.const 3 i32.const 2 i32.const 3 i32.const 3536 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $3 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16049,23 +17275,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $3 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3568 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $3 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16078,23 +17304,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $3 + local.tee $0 i32.store offset=16 i32.const 4 i32.const 2 i32.const 3 i32.const 3600 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $3 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16107,14 +17333,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 - local.get $1 + local.get $0 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16127,23 +17353,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $3 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3648 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $3 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16156,23 +17382,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $3 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3680 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $3 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16185,23 +17411,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $3 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3712 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $3 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16213,15 +17439,15 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 if i32.const 0 @@ -16231,15 +17457,15 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 10 i32.const 2147483647 call $~lib/array/Array#slice - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 if i32.const 0 @@ -16255,52 +17481,50 @@ i32.store local.get $1 i32.load offset=12 - local.tee $3 + local.tee $0 if local.get $1 i32.load offset=4 - local.set $0 - local.get $1 - i32.load offset=4 - local.get $3 + local.tee $1 + local.get $0 i32.const 1 i32.sub i32.const 2 i32.shl i32.add - local.set $1 + local.set $0 loop $while-continue|0 local.get $0 local.get $1 - i32.lt_u + i32.gt_u if - local.get $0 - i32.load - local.set $3 - local.get $0 local.get $1 i32.load - i32.store + local.set $2 local.get $1 - local.get $3 + local.get $0 + i32.load i32.store local.get $0 + local.get $2 + i32.store + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 4 i32.sub - local.set $1 + local.set $0 br $while-continue|0 end end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -16314,9 +17538,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16330,9 +17554,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -16347,9 +17571,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16364,9 +17588,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -16381,68 +17605,68 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 44 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 0 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|010 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 44 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|010 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i if @@ -16455,52 +17679,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 0 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf11 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf11 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|012 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 42 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf11 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 2 @@ -16515,52 +17739,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 0 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf13 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf13 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|014 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 45 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf13 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -16575,52 +17799,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 100 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf15 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 100 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf15 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|016 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf15 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|016 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -16635,23 +17859,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store block $__inlined_func$~lib/array/Array#indexOf17 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf17 end - local.get $4 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -16660,35 +17884,35 @@ i32.const 0 i32.gt_s select - local.set $1 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|018 - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf17 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -16703,23 +17927,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store block $__inlined_func$~lib/array/Array#indexOf19 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -2 i32.le_s i32.const 1 - local.get $4 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf19 end - local.get $4 + local.get $2 i32.const 2 i32.sub local.tee $0 @@ -16728,35 +17952,35 @@ i32.const 0 i32.gt_s select - local.set $1 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|020 - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf19 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 3 @@ -16771,23 +17995,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store block $__inlined_func$~lib/array/Array#indexOf21 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -4 i32.le_s i32.const 1 - local.get $4 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf21 end - local.get $4 + local.get $2 i32.const 4 i32.sub local.tee $0 @@ -16796,35 +18020,35 @@ i32.const 0 i32.gt_s select - local.set $1 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|022 - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf21 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|022 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -16839,52 +18063,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 0 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf23 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf23 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|024 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf23 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|024 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -16899,52 +18123,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf25 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 1 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf25 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|026 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf25 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|026 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -16959,52 +18183,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 2 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf27 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 2 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf27 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|028 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf27 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|028 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 3 @@ -17022,16 +18246,16 @@ i32.const 9 i32.const 3744 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $2 i32.load offset=12 local.tee $4 i32.const 0 @@ -17040,35 +18264,35 @@ local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|025 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const nan:0x400000 f32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|025 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17084,16 +18308,16 @@ i32.const 10 i32.const 3776 call $~lib/rt/__newArray - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $2 i32.load offset=12 local.tee $4 i32.const 0 @@ -17102,35 +18326,35 @@ local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02629 - local.get $1 + local.get $0 local.get $4 i32.lt_s if - local.get $3 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const nan:0x8000000000000 f64.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02629 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17147,66 +18371,66 @@ i32.const 3 i32.const 3808 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=16 i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $0 i32.load offset=12 - local.set $1 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf - local.get $3 + local.get $0 i32.load offset=12 local.tee $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 + local.get $2 local.get $4 i32.add local.get $4 i32.const 1 i32.sub - local.get $1 - local.get $1 + local.get $2 + local.get $2 local.get $4 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select - local.set $1 - local.get $3 + local.set $2 + local.get $0 i32.load offset=4 local.set $4 loop $while-continue|00 - local.get $1 + local.get $2 i32.const 0 i32.ge_s if - local.get $4 - local.get $1 - local.tee $0 + local.get $2 + local.tee $1 i32.const 2 i32.shl + local.get $4 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $2 br $while-continue|00 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17219,62 +18443,62 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $0 i32.load offset=12 - local.set $1 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $3 + local.get $0 i32.load offset=12 local.tee $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $1 + local.get $2 local.get $4 i32.add local.get $4 i32.const 1 i32.sub - local.get $1 - local.get $1 + local.get $2 + local.get $2 local.get $4 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select - local.set $1 - local.get $3 + local.set $2 + local.get $0 i32.load offset=4 local.set $4 loop $while-continue|06 - local.get $1 + local.get $2 i32.const 0 i32.ge_s if - local.get $4 - local.get $1 - local.tee $0 + local.get $2 + local.tee $1 i32.const 2 i32.shl + local.get $4 i32.add i32.load i32.const 7 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $2 br $while-continue|06 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17286,52 +18510,52 @@ unreachable end block $__inlined_func$~lib/array/Array#lastIndexOf7 - local.get $3 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/array/Array#lastIndexOf7 end - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_s select - local.set $0 - local.get $3 - i32.load offset=4 local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 loop $while-continue|030 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $1 - local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf7 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17343,52 +18567,52 @@ unreachable end block $__inlined_func$~lib/array/Array#lastIndexOf31 - local.get $3 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/array/Array#lastIndexOf31 end - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_s select - local.set $0 - local.get $3 - i32.load offset=4 local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 loop $while-continue|032 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $1 - local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf31 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|032 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1552 @@ -17398,47 +18622,47 @@ unreachable end block $__inlined_func$~lib/array/Array#lastIndexOf33 - local.get $3 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/array/Array#lastIndexOf33 end - local.get $0 + local.get $1 i32.const 2 i32.sub - local.set $0 - local.get $3 - i32.load offset=4 local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 loop $while-continue|034 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $1 - local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf33 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|034 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1552 @@ -17448,47 +18672,48 @@ unreachable end block $__inlined_func$~lib/array/Array#lastIndexOf35 - local.get $3 + local.get $0 + local.tee $1 i32.load offset=12 local.tee $0 i32.eqz if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#lastIndexOf35 end local.get $0 i32.const 1 i32.sub - local.set $1 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf35 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -17501,52 +18726,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 0 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf37 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf37 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|038 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 44 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf37 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|038 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -17559,52 +18784,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 0 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf39 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf39 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|040 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 42 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf39 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|040 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -17617,52 +18842,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 0 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf41 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf41 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|042 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 45 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf41 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|042 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.ge_s if @@ -17675,52 +18900,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 100 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf43 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 100 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf43 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|044 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf43 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|044 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.ge_s if @@ -17733,23 +18958,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store block $__inlined_func$~lib/array/Array#indexOf45 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf45 end - local.get $4 + local.get $2 i32.const 100 i32.sub local.tee $0 @@ -17758,35 +18983,35 @@ i32.const 0 i32.gt_s select - local.set $1 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|046 - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf45 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|046 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -17799,23 +19024,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store block $__inlined_func$~lib/array/Array#indexOf47 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -2 i32.le_s i32.const 1 - local.get $4 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf47 end - local.get $4 + local.get $2 i32.const 2 i32.sub local.tee $0 @@ -17824,35 +19049,35 @@ i32.const 0 i32.gt_s select - local.set $1 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|048 - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf47 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|048 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -17865,23 +19090,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store block $__inlined_func$~lib/array/Array#indexOf49 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -4 i32.le_s i32.const 1 - local.get $4 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf49 end - local.get $4 + local.get $2 i32.const 4 i32.sub local.tee $0 @@ -17890,35 +19115,35 @@ i32.const 0 i32.gt_s select - local.set $1 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|050 - local.get $1 - local.get $4 + local.get $0 + local.get $2 i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf49 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|050 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -17931,52 +19156,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 0 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf51 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf51 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|052 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf51 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|052 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -17989,52 +19214,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf53 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 1 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf53 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|054 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf53 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|054 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -18047,52 +19272,52 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store i32.const 2 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf55 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 2 i32.le_s i32.const 1 - local.get $0 + local.get $2 select if i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf55 end - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|056 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf55 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|056 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -18108,53 +19333,53 @@ i32.const 9 i32.const 3856 call $~lib/rt/__newArray - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $2 select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|03657 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if i32.const 1 i32.const 1 - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $1 i32.add f32.load - local.tee $12 - local.get $12 + local.tee $11 + local.get $11 f32.ne - local.get $12 + local.get $11 f32.const nan:0x400000 f32.eq select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|03657 end end @@ -18174,53 +19399,53 @@ i32.const 10 i32.const 3888 call $~lib/rt/__newArray - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $3 + local.get $1 i32.load offset=12 - local.tee $0 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $0 + local.get $2 select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $3 + local.get $1 i32.load offset=4 - local.set $3 + local.set $1 loop $while-continue|037 local.get $0 - local.get $1 - i32.gt_s + local.get $2 + i32.lt_s if i32.const 1 i32.const 1 - local.get $3 - local.get $1 + local.get $0 i32.const 3 i32.shl + local.get $1 i32.add f64.load - local.tee $10 - local.get $10 + local.tee $9 + local.get $9 f64.ne - local.get $10 + local.get $9 f64.const nan:0x8000000000000 f64.eq select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|037 end end @@ -18237,18 +19462,18 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 i32.const 1 call $~lib/array/Array#splice drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -18262,9 +19487,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18278,9 +19503,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -18295,9 +19520,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -18316,27 +19541,27 @@ i32.const 3 i32.const 3920 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3968 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18353,12 +19578,12 @@ i32.const 3 i32.const 4016 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18376,27 +19601,27 @@ i32.const 3 i32.const 4048 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 4096 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18413,12 +19638,12 @@ i32.const 3 i32.const 4128 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18436,27 +19661,27 @@ i32.const 3 i32.const 4176 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 3 i32.const 2 i32.const 3 i32.const 4224 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18473,12 +19698,12 @@ i32.const 3 i32.const 4256 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18496,27 +19721,27 @@ i32.const 3 i32.const 4288 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 4336 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18533,12 +19758,12 @@ i32.const 3 i32.const 4368 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18556,27 +19781,27 @@ i32.const 3 i32.const 4400 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4448 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18593,12 +19818,12 @@ i32.const 3 i32.const 4480 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18616,27 +19841,27 @@ i32.const 3 i32.const 4528 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4576 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18653,12 +19878,12 @@ i32.const 3 i32.const 4608 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18676,27 +19901,27 @@ i32.const 3 i32.const 4656 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 4704 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18713,12 +19938,12 @@ i32.const 3 i32.const 4736 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18736,27 +19961,27 @@ i32.const 3 i32.const 4768 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4816 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18773,12 +19998,12 @@ i32.const 3 i32.const 4848 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18796,27 +20021,27 @@ i32.const 3 i32.const 4896 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4944 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18833,12 +20058,12 @@ i32.const 3 i32.const 4976 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18856,27 +20081,27 @@ i32.const 3 i32.const 5024 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5072 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18893,12 +20118,12 @@ i32.const 3 i32.const 5104 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18916,27 +20141,27 @@ i32.const 3 i32.const 5152 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5200 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18953,12 +20178,12 @@ i32.const 3 i32.const 5232 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -18976,27 +20201,27 @@ i32.const 3 i32.const 5280 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5328 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19013,12 +20238,12 @@ i32.const 3 i32.const 5360 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19036,27 +20261,27 @@ i32.const 3 i32.const 5408 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5456 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19073,12 +20298,12 @@ i32.const 3 i32.const 5488 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19096,27 +20321,27 @@ i32.const 3 i32.const 5536 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5584 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19133,12 +20358,12 @@ i32.const 3 i32.const 5616 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19156,15 +20381,15 @@ i32.const 8 i32.const 5664 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#splice - local.tee $3 + local.tee $0 i32.store offset=12 - local.get $3 + local.get $0 i32.load offset=12 if i32.const 0 @@ -19174,7 +20399,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -19185,53 +20410,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 5 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=24 - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $3 local.get $0 + local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#splice - local.tee $3 + local.tee $0 i32.store offset=12 - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -19243,7 +20468,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.load @@ -19257,7 +20482,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.load @@ -19271,7 +20496,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -19283,7 +20508,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.load @@ -19297,7 +20522,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.load @@ -19311,7 +20536,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.load @@ -19326,37 +20551,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 3 i32.const 2 i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.load offset=4 i32.store offset=20 - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $3 + local.get $0 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $3 + local.get $0 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset + local.get $1 local.get $0 - local.get $3 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $4 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -19365,35 +20590,35 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store i32.const 0 - local.get $3 + local.get $0 i32.load offset=12 - local.tee $8 - local.get $8 + local.tee $3 + local.get $3 i32.const 0 i32.gt_s select local.set $5 - local.get $0 + local.get $1 i32.const 1 - local.get $8 + local.get $3 local.get $5 i32.sub - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 1 i32.gt_s select - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.tee $2 + local.tee $6 i32.const 2 i32.const 11 i32.const 0 @@ -19402,48 +20627,47 @@ i32.store local.get $7 i32.load offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $1 + local.tee $2 local.get $5 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $2 + local.tee $1 + local.get $6 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $8 - local.get $2 + local.get $3 local.get $5 + local.get $6 i32.add local.tee $5 i32.ne if - local.get $0 local.get $1 local.get $5 i32.const 2 i32.shl + local.get $2 i32.add - local.get $8 + local.get $3 local.get $5 i32.sub i32.const 2 i32.shl call $~lib/memory/memory.copy end + local.get $0 local.get $3 - local.get $8 - local.get $2 + local.get $6 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $7 i32.store offset=24 local.get $7 @@ -19462,9 +20686,9 @@ local.get $7 i32.const 0 call $~lib/array/Array#__get - local.tee $0 + local.tee $1 i32.store offset=28 - local.get $0 + local.get $1 i32.eqz if i32.const 5824 @@ -19474,7 +20698,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load i32.const 1 i32.ne @@ -19486,7 +20710,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -19498,7 +20722,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get if @@ -19510,12 +20734,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#__get - local.tee $3 + local.tee $0 i32.store offset=28 - local.get $3 + local.get $0 i32.eqz if i32.const 5824 @@ -19525,7 +20749,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 i32.load i32.const 2 i32.ne @@ -19539,88 +20763,87 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 i32.const 1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 i32.const 2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 i32.const 3 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 5888 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex loop $for-loop|059 - local.get $1 - local.get $0 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $0 - local.get $3 - i32.lt_s + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $0 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 5888 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|059 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i if @@ -19632,57 +20855,57 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 5920 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex60 loop $for-loop|061 - local.get $1 - local.get $0 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $0 - local.get $3 - i32.lt_s + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $0 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 5920 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex60 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|061 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -19696,57 +20919,57 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 5952 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex62 loop $for-loop|063 - local.get $1 - local.get $0 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $0 - local.get $3 - i32.lt_s + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $0 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 5952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex62 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|063 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19760,57 +20983,57 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 5984 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex64 loop $for-loop|065 - local.get $1 - local.get $0 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $0 - local.get $3 - i32.lt_s + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $0 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 5984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex64 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|065 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19825,9 +21048,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -19840,57 +21063,57 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 6016 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex66 loop $for-loop|067 - local.get $1 - local.get $0 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $0 - local.get $3 - i32.lt_s + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $0 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 6016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex66 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|067 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19905,84 +21128,83 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 6048 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 - local.set $0 + local.set $2 block $__inlined_func$~lib/array/Array#findIndex68 loop $for-loop|069 - local.get $1 - local.get $0 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $0 - local.get $3 - i32.lt_s + local.tee $1 + local.get $1 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $0 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 6048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex68 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|069 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -19997,9 +21219,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -20013,17 +21235,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#push drop @@ -20033,48 +21255,48 @@ i32.const 3 i32.const 6080 call $~lib/rt/__newArray - local.tee $0 + local.tee $2 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex loop $for-loop|070 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 local.get $0 + local.get $2 i32.const 6128 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|070 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i if @@ -20088,43 +21310,43 @@ global.get $~lib/memory/__stack_pointer i32.const 6160 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex47 loop $for-loop|048 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 local.get $0 + local.get $2 i32.const 6160 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex47 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|048 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -20140,43 +21362,43 @@ global.get $~lib/memory/__stack_pointer i32.const 6192 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex49 loop $for-loop|050 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $0 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 local.get $0 + local.get $2 i32.const 6192 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex49 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|050 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -20192,7 +21414,7 @@ global.get $~lib/memory/__stack_pointer i32.const 6224 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=12 i32.const 1 i32.sub @@ -20203,7 +21425,7 @@ i32.const 0 i32.ge_s if - local.get $0 + local.get $2 i32.load offset=4 local.get $1 i32.const 2 @@ -20213,7 +21435,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $0 + local.get $2 i32.const 6224 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -20242,44 +21464,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $3 + local.get $0 i32.const 6256 i32.store offset=8 block $__inlined_func$~lib/array/Array#every (result i32) i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load offset=12 local.set $4 loop $for-loop|071 - local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 local.get $0 + local.get $1 local.get $5 i32.const 6256 i32.load @@ -20287,10 +21509,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|071 end end @@ -20306,44 +21528,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $3 + local.get $0 i32.const 6288 i32.store offset=8 block $__inlined_func$~lib/array/Array#every72 (result i32) i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load offset=12 local.set $4 loop $for-loop|073 - local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 local.get $0 + local.get $1 local.get $5 i32.const 6288 i32.load @@ -20351,10 +21573,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every72 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|073 end end @@ -20369,44 +21591,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $3 + local.get $0 i32.const 6320 i32.store offset=8 block $__inlined_func$~lib/array/Array#every74 (result i32) i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load offset=12 local.set $4 loop $for-loop|075 - local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 local.get $0 + local.get $1 local.get $5 i32.const 6320 i32.load @@ -20414,10 +21636,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every74 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|075 end end @@ -20434,9 +21656,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -20449,44 +21671,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $3 + local.get $0 i32.const 6352 i32.store offset=8 block $__inlined_func$~lib/array/Array#every76 (result i32) i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load offset=12 local.set $4 loop $for-loop|077 - local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 local.get $0 + local.get $1 local.get $5 i32.const 6352 i32.load @@ -20494,10 +21716,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every76 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|077 end end @@ -20513,71 +21735,70 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 6384 i32.store offset=8 block $__inlined_func$~lib/array/Array#every78 (result i32) i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load offset=12 local.set $4 loop $for-loop|079 - local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 local.get $0 + local.get $1 local.get $5 i32.const 6384 i32.load @@ -20585,10 +21806,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every78 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|079 end end @@ -20605,9 +21826,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -20621,69 +21842,68 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 6416 i32.store offset=8 block $__inlined_func$~lib/array/Array#some (result i32) i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load offset=12 local.set $4 loop $for-loop|080 - local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 local.get $0 + local.get $1 local.get $5 i32.const 6416 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|080 end end @@ -20699,54 +21919,54 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $3 + local.get $0 i32.const 6448 i32.store offset=8 block $__inlined_func$~lib/array/Array#some81 (result i32) i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load offset=12 local.set $4 loop $for-loop|082 - local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 local.get $0 + local.get $1 local.get $5 i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some81 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|082 end end @@ -20761,54 +21981,54 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $3 + local.get $0 i32.const 6480 i32.store offset=8 block $__inlined_func$~lib/array/Array#some83 (result i32) i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load offset=12 local.set $4 loop $for-loop|084 - local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 local.get $0 + local.get $1 local.get $5 i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some83 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|084 end end @@ -20824,9 +22044,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -20839,54 +22059,54 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $5 i32.store - local.get $3 + local.get $0 i32.const 6512 i32.store offset=8 block $__inlined_func$~lib/array/Array#some85 (result i32) i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load offset=12 local.set $4 loop $for-loop|086 - local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 local.get $0 + local.get $1 local.get $5 i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some85 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|086 end end @@ -20903,81 +22123,80 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $5 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 6544 i32.store offset=8 block $__inlined_func$~lib/array/Array#some87 (result i32) i32.const 0 - local.set $0 + local.set $1 local.get $5 i32.load offset=12 local.set $4 loop $for-loop|088 - local.get $0 local.get $4 local.get $5 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 local.get $0 + local.get $1 local.get $5 i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some87 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|088 end end @@ -20993,9 +22212,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -21009,65 +22228,64 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#push drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 6576 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|057 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|057 end end @@ -21085,48 +22303,48 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 6608 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|05989 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s - select - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s + select + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|05989 end end @@ -21143,9 +22361,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -21160,48 +22378,48 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 6640 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|062 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|062 end end @@ -21218,77 +22436,76 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 6672 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|064 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|064 end end @@ -21305,9 +22522,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -21321,71 +22538,70 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 6704 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|06790 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|06790 end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 100 i32.ne @@ -21406,9 +22622,9 @@ if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 call $~lib/array/Array#pop drop local.get $0 @@ -21420,47 +22636,47 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $2 global.get $std/array/arr - local.tee $8 + local.tee $3 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 6736 i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - local.get $2 + local.set $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21469,13 +22685,13 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store + local.get $0 local.get $3 - local.get $8 i32.load offset=12 - local.tee $5 + local.tee $6 i32.const 2 i32.const 9 i32.const 0 @@ -21486,42 +22702,42 @@ i32.load offset=4 local.set $4 loop $for-loop|07093 - local.get $0 - local.get $5 - local.get $8 - i32.load offset=12 - local.tee $3 + local.get $6 local.get $3 - local.get $5 + i32.load offset=12 + local.tee $0 + local.get $0 + local.get $6 i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.tee $1 - local.get $8 + local.tee $2 + local.get $3 i32.load offset=4 i32.add i32.load - local.set $3 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $2 local.get $4 i32.add - local.get $3 local.get $0 - local.get $8 + local.get $1 + local.get $3 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|07093 end end @@ -21529,7 +22745,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $7 i32.store offset=20 local.get $7 @@ -21547,14 +22762,16 @@ local.get $7 i32.const 0 call $~lib/array/Array#__get + local.set $11 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s + local.get $11 f32.ne if i32.const 0 @@ -21567,14 +22784,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6768 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6768 call $~lib/array/Array#map global.get $std/array/i @@ -21590,9 +22807,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -21607,14 +22824,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6800 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6800 call $~lib/array/Array#map global.get $std/array/i @@ -21630,43 +22847,42 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6832 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6832 call $~lib/array/Array#map global.get $std/array/i @@ -21682,9 +22898,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -21698,35 +22914,34 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6864 i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 i32.const 6864 call $~lib/array/Array#filter - local.tee $3 + local.tee $0 i32.store offset=20 - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -21741,14 +22956,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6896 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6896 call $~lib/array/Array#filter drop @@ -21765,9 +22980,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -21782,14 +22997,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 6928 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6928 call $~lib/array/Array#filter drop @@ -21806,43 +23021,42 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 6960 i32.store offset=8 - local.get $3 + local.get $0 i32.const 6960 call $~lib/array/Array#filter drop @@ -21859,9 +23073,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -21875,71 +23089,72 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 6992 i32.store offset=8 i32.const 0 - local.set $0 + local.set $5 + i32.const 0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|094 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $3 + local.get $5 local.get $0 + local.get $1 local.get $4 i32.const 6992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|094 end end - local.get $6 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -21953,58 +23168,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 7024 i32.store offset=8 i32.const 4 - local.set $6 + local.set $5 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|096 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $3 + local.get $5 local.get $0 + local.get $1 local.get $4 i32.const 7024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|096 end end - local.get $6 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -22018,58 +23233,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 7056 i32.store offset=8 i32.const 0 - local.set $6 + local.set $5 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|098 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $3 + local.get $5 local.get $0 + local.get $1 local.get $4 i32.const 7056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|098 end end - local.get $6 + local.get $5 i32.eqz if i32.const 0 @@ -22080,58 +23295,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 7088 i32.store offset=8 i32.const 0 - local.set $6 + local.set $5 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|0100 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $3 + local.get $5 local.get $0 + local.get $1 local.get $4 i32.const 7088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0100 end end - local.get $6 + local.get $5 if i32.const 0 i32.const 1552 @@ -22141,58 +23356,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 7120 i32.store offset=8 i32.const 0 - local.set $6 + local.set $5 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|0102 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $3 + local.get $5 local.get $0 + local.get $1 local.get $4 i32.const 7120 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0102 end end - local.get $6 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22207,9 +23422,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -22222,58 +23437,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 7152 i32.store offset=8 i32.const 0 - local.set $6 + local.set $5 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|0104 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $3 + local.get $5 local.get $0 + local.get $1 local.get $4 i32.const 7152 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0104 end end - local.get $6 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -22288,85 +23503,84 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 7184 i32.store offset=8 i32.const 0 - local.set $6 + local.set $5 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|0106 - local.get $0 - local.get $1 + local.get $2 local.get $4 i32.load offset=12 - local.tee $3 - local.get $1 - local.get $3 - i32.lt_s + local.tee $0 + local.get $0 + local.get $2 + i32.gt_s select - i32.lt_s + local.get $1 + i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $3 + local.get $5 local.get $0 + local.get $1 local.get $4 i32.const 7184 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0106 end end - local.get $6 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -22381,9 +23595,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -22397,66 +23611,65 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 7216 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|079107 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $3 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7216 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|079107 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22470,51 +23683,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 7248 i32.store offset=8 i32.const 4 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|081 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $3 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|081 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -22528,51 +23741,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 7280 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|083 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $3 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|083 end end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -22583,51 +23796,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 7312 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|085 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $3 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|085 end end - local.get $1 + local.get $0 if i32.const 0 i32.const 1552 @@ -22637,51 +23850,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 7344 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|087 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $3 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|087 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22696,9 +23909,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -22711,51 +23924,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + local.get $0 i32.const 7376 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|090 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $3 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|090 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -22770,78 +23983,77 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.tee $3 global.get $std/array/arr local.tee $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 7408 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|092 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $3 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|092 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -22856,9 +24068,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 if i32.const 0 @@ -22870,33 +24082,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 1 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 3 call $~lib/array/Array#push drop @@ -22909,182 +24121,181 @@ i32.const 19 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=24 - local.get $3 + global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=12 - local.get $3 + local.get $0 i32.const 100 i32.store - local.get $3 + local.get $0 i32.const 80 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 90 i32.store - local.get $3 + local.get $0 i32.const 90 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 70 i32.store - local.get $3 + local.get $0 i32.const 95 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=28 - local.get $3 + local.get $0 i32.const 100 i32.store - local.get $3 + local.get $0 i32.const 100 i32.store offset=4 - local.get $0 + local.get $1 i32.const 3 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=32 - local.get $3 + local.get $0 i32.const 80 i32.store - local.get $3 + local.get $0 i32.const 110 i32.store offset=4 - local.get $0 + local.get $1 i32.const 4 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=36 - local.get $3 + local.get $0 i32.const 110 i32.store - local.get $3 + local.get $0 i32.const 115 i32.store offset=4 - local.get $0 + local.get $1 i32.const 5 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=40 - local.get $3 + local.get $0 i32.const 100 i32.store - local.get $3 + local.get $0 i32.const 120 i32.store offset=4 - local.get $0 + local.get $1 i32.const 6 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=44 - local.get $3 + local.get $0 i32.const 70 i32.store - local.get $3 + local.get $0 i32.const 125 i32.store offset=4 - local.get $0 + local.get $1 i32.const 7 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=48 - local.get $3 + local.get $0 i32.const 70 i32.store - local.get $3 + local.get $0 i32.const 130 i32.store offset=4 - local.get $0 + local.get $1 i32.const 8 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=52 - local.get $3 + local.get $0 i32.const 100 i32.store - local.get $3 + local.get $0 i32.const 135 i32.store offset=4 - local.get $0 + local.get $1 i32.const 9 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=56 - local.get $3 + local.get $0 i32.const 75 i32.store - local.get $3 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 + local.get $1 i32.const 10 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=60 - local.get $3 + local.get $0 i32.const 70 i32.store - local.get $3 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 + local.get $1 i32.const 11 - local.get $3 - call $~lib/array/Array#__uset local.get $0 + call $~lib/array/Array#__uset + local.get $1 global.set $std/array/inputStabArr global.get $~lib/memory/__stack_pointer i32.const 12 @@ -23092,182 +24303,181 @@ i32.const 19 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=20 - local.get $3 + global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=64 - local.get $3 + local.get $0 i32.const 70 i32.store - local.get $3 + local.get $0 i32.const 95 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=68 - local.get $3 + local.get $0 i32.const 70 i32.store - local.get $3 + local.get $0 i32.const 125 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=72 - local.get $3 + local.get $0 i32.const 70 i32.store - local.get $3 + local.get $0 i32.const 130 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=76 - local.get $3 + local.get $0 i32.const 70 i32.store - local.get $3 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 + local.get $1 i32.const 3 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=80 - local.get $3 + local.get $0 i32.const 75 i32.store - local.get $3 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 + local.get $1 i32.const 4 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=84 - local.get $3 + local.get $0 i32.const 80 i32.store - local.get $3 + local.get $0 i32.const 110 i32.store offset=4 - local.get $0 + local.get $1 i32.const 5 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=88 - local.get $3 + local.get $0 i32.const 90 i32.store - local.get $3 + local.get $0 i32.const 90 i32.store offset=4 - local.get $0 + local.get $1 i32.const 6 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=92 - local.get $3 + local.get $0 i32.const 100 i32.store - local.get $3 + local.get $0 i32.const 80 i32.store offset=4 - local.get $0 + local.get $1 i32.const 7 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=96 - local.get $3 + local.get $0 i32.const 100 i32.store - local.get $3 + local.get $0 i32.const 100 i32.store offset=4 - local.get $0 + local.get $1 i32.const 8 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=100 - local.get $3 + local.get $0 i32.const 100 i32.store - local.get $3 + local.get $0 i32.const 120 i32.store offset=4 - local.get $0 + local.get $1 i32.const 9 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=104 - local.get $3 + local.get $0 i32.const 100 i32.store - local.get $3 + local.get $0 i32.const 135 i32.store offset=4 - local.get $0 + local.get $1 i32.const 10 - local.get $3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $3 + local.tee $0 i32.store offset=108 - local.get $3 + local.get $0 i32.const 110 i32.store - local.get $3 + local.get $0 i32.const 115 i32.store offset=4 - local.get $0 + local.get $1 i32.const 11 - local.get $3 - call $~lib/array/Array#__uset local.get $0 + call $~lib/array/Array#__uset + local.get $1 global.set $std/array/outputStabArr global.get $~lib/memory/__stack_pointer i32.const 3 @@ -23275,23 +24485,23 @@ i32.const 9 i32.const 7680 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=24 i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 call $~lib/array/Array#sort@varargs i32.const 3 i32.const 2 i32.const 9 i32.const 7744 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -23308,23 +24518,23 @@ i32.const 9 i32.const 7776 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=20 i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 call $~lib/array/Array#sort@varargs i32.const 8 i32.const 2 i32.const 9 i32.const 7840 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -23342,13 +24552,11 @@ i32.const 7904 call $~lib/rt/__newArray local.tee $5 - local.set $0 - local.get $5 i32.store offset=112 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23369,16 +24577,16 @@ unreachable end i32.const 8000 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8000 i32.store end - local.get $0 + local.get $5 i32.load offset=4 - local.get $0 + local.get $5 i32.load offset=12 - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23395,11 +24603,11 @@ i32.store offset=8 block $__inlined_func$std/array/isArraysEqual (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 local.get $5 i32.load offset=12 - local.tee $3 + local.tee $1 local.get $4 i32.load offset=12 i32.ne @@ -23412,22 +24620,22 @@ br_if $__inlined_func$std/array/isArraysEqual drop loop $for-loop|026 + local.get $0 local.get $1 - local.get $3 i32.lt_s if local.get $5 - local.get $1 + local.get $0 call $~lib/array/Array#__get - local.tee $10 - local.get $10 + local.tee $9 + local.get $9 f64.ne if (result i32) local.get $4 - local.get $1 + local.get $0 call $~lib/array/Array#__get - local.tee $10 - local.get $10 + local.tee $9 + local.get $9 f64.ne else i32.const 0 @@ -23436,19 +24644,19 @@ if i32.const 0 local.get $5 - local.get $1 + local.get $0 call $~lib/array/Array#__get local.get $4 - local.get $1 + local.get $0 call $~lib/array/Array#__get f64.ne br_if $__inlined_func$std/array/isArraysEqual drop end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|026 end end @@ -23469,14 +24677,12 @@ i32.const 3 i32.const 8128 call $~lib/rt/__newArray - local.tee $4 - local.set $0 - local.get $4 + local.tee $1 i32.store offset=116 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23497,16 +24703,16 @@ unreachable end i32.const 8176 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8176 i32.store end - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23517,12 +24723,12 @@ i32.const 3 i32.const 8208 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $4 - local.get $3 + local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23540,11 +24746,11 @@ i32.const 7 i32.const 8256 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=120 i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#sort@varargs drop @@ -23553,12 +24759,12 @@ i32.const 7 i32.const 8336 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 + local.get $1 local.get $0 - local.get $3 call $std/array/isArraysEqual i32.eqz if @@ -23575,7 +24781,7 @@ i32.const 3 i32.const 8384 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=124 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -23583,7 +24789,7 @@ i32.const 3 i32.const 8416 call $~lib/rt/__newArray - local.tee $6 + local.tee $8 i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -23591,7 +24797,7 @@ i32.const 3 i32.const 8448 call $~lib/rt/__newArray - local.tee $8 + local.tee $3 i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23607,12 +24813,12 @@ i32.const 3 i32.const 8528 call $~lib/rt/__newArray - local.tee $11 + local.tee $10 i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $2 + local.tee $6 i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 @@ -23627,28 +24833,28 @@ global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $1 + local.tee $2 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $3 + local.tee $0 i32.store offset=160 - local.get $0 + local.get $1 call $std/array/assertSortedDefault - local.get $6 + local.get $8 call $std/array/assertSortedDefault i32.const 1 i32.const 2 i32.const 3 i32.const 8608 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $6 - local.get $0 + local.get $8 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23660,19 +24866,19 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $3 call $std/array/assertSortedDefault i32.const 2 i32.const 2 i32.const 3 i32.const 8640 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $8 - local.get $0 + local.get $3 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23687,7 +24893,7 @@ local.get $7 call $std/array/assertSortedDefault local.get $7 - local.get $11 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23699,10 +24905,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 call $std/array/assertSortedDefault - local.get $2 - local.get $11 + local.get $6 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -23717,7 +24923,7 @@ local.get $5 call $std/array/assertSortedDefault local.get $5 - local.get $11 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -23732,7 +24938,7 @@ local.get $4 call $std/array/assertSortedDefault local.get $4 - local.get $11 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -23744,10 +24950,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $std/array/assertSortedDefault - local.get $1 - local.get $11 + local.get $2 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -23759,9 +24965,11 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $0 call $std/array/assertSortedDefault i32.const 0 + local.set $8 + i32.const 0 local.set $7 global.get $~lib/memory/__stack_pointer i32.const 24 @@ -23772,20 +24980,20 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $6 i64.const 0 i64.store - local.get $2 + local.get $6 i64.const 0 i64.store offset=8 - local.get $2 + local.get $6 i64.const 0 i64.store offset=16 - local.get $2 + local.get $6 global.get $std/array/inputStabArr local.tee $5 i32.store offset=8 - local.get $2 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -23794,73 +25002,71 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store i32.const 0 local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select - local.set $0 - local.get $3 - local.get $1 + local.set $1 local.get $0 + local.get $2 + local.get $1 i32.sub - local.tee $3 + local.tee $0 i32.const 0 - local.get $3 + local.get $0 i32.const 0 i32.gt_s select - local.tee $3 + local.tee $0 i32.const 2 i32.const 19 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $3 i32.store - local.get $8 + local.get $3 i32.load offset=4 local.set $4 local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.set $1 - i32.const 0 - local.set $5 - local.get $3 + local.set $2 + local.get $0 i32.const 2 i32.shl - local.set $0 + local.set $1 loop $while-continue|011 - local.get $0 - local.get $5 + local.get $1 + local.get $8 i32.gt_u if local.get $4 - local.get $5 + local.get $8 i32.add - local.get $1 - local.get $5 + local.get $2 + local.get $8 i32.add i32.load - local.tee $3 + local.tee $0 i32.store - local.get $8 local.get $3 + local.get $0 i32.const 1 call $~lib/rt/itcms/__link - local.get $5 + local.get $8 i32.const 4 i32.add - local.set $5 + local.set $8 br $while-continue|011 end end @@ -23869,28 +25075,27 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $8 - i32.store local.get $3 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 8672 i32.store offset=4 - local.get $8 + local.get $3 i32.load offset=4 - local.get $8 + local.get $3 i32.load offset=12 i32.const 8672 call $~lib/util/sort/SORT - local.get $2 - local.get $8 + local.get $6 + local.get $3 i32.store offset=12 i32.const 1 - local.set $5 + local.set $8 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 local.set $1 loop $for-loop|012 @@ -23900,39 +25105,38 @@ if block $for-break0 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 local.get $7 call $~lib/array/Array#__get - local.tee $4 + local.tee $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $std/array/outputStabArr - local.tee $3 + local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 local.get $7 call $~lib/array/Array#__get - local.tee $3 + local.tee $0 i32.store offset=20 - local.get $4 + local.get $2 i32.load - local.get $3 + local.get $0 i32.load i32.ne if (result i32) i32.const 1 else - local.get $4 + local.get $2 i32.load offset=4 - local.get $3 + local.get $0 i32.load offset=4 i32.ne end if i32.const 0 - local.set $5 + local.set $8 br $for-break0 end local.get $7 @@ -23943,7 +25147,7 @@ end end end - local.get $5 + local.get $8 i32.eqz if i32.const 0 @@ -23960,41 +25164,41 @@ global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray - local.tee $0 + local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray - local.tee $3 + local.tee $0 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 8704 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8704 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 8736 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8736 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 8768 i32.store offset=8 - local.get $3 + local.get $0 i32.const 8768 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 8800 i32.store offset=8 - local.get $3 + local.get $0 i32.const 8800 call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer i32.const 0 local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -24015,10 +25219,10 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 16 i32.const 25 call $~lib/rt/itcms/__new @@ -24044,21 +25248,21 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.const 32 call $~lib/memory/memory.fill local.get $5 - local.get $3 + local.get $0 i32.store local.get $5 - local.get $3 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link local.get $5 - local.get $3 + local.get $0 i32.store offset=4 local.get $5 i32.const 32 @@ -24081,9 +25285,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $3 + local.tee $0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.const 1 local.get $1 @@ -24091,7 +25295,7 @@ call $~lib/array/Array#__set local.get $5 local.get $1 - local.get $3 + local.get $0 call $~lib/array/Array<~lib/array/Array>#__set local.get $1 i32.const 1 @@ -24104,7 +25308,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $5 i32.store offset=156 global.get $~lib/memory/__stack_pointer @@ -24113,10 +25316,10 @@ local.get $5 i32.const 8832 call $std/array/assertSorted<~lib/array/Array> + global.get $~lib/memory/__stack_pointer i32.const 0 local.set $5 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -24125,10 +25328,10 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -24137,29 +25340,29 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 16 i32.const 28 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link - local.get $3 + local.get $0 i32.const 0 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -24172,28 +25375,28 @@ i32.const 0 i32.const 2048 call $~lib/memory/memory.fill - local.get $3 + local.get $0 local.get $4 i32.store - local.get $3 + local.get $0 local.get $4 i32.const 0 call $~lib/rt/itcms/__link - local.get $3 + local.get $0 local.get $4 i32.store offset=4 - local.get $3 + local.get $0 i32.const 2048 i32.store offset=8 - local.get $3 + local.get $0 i32.const 512 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 - local.get $3 i32.store loop $for-loop|014 local.get $5 @@ -24209,16 +25412,16 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 4 i32.const 27 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 511 local.get $5 i32.sub @@ -24228,11 +25431,11 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $3 - local.get $5 local.get $0 + local.get $5 + local.get $1 call $~lib/array/Array<~lib/array/Array>#__set local.get $5 i32.const 1 @@ -24245,13 +25448,12 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $3 + local.get $0 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 8864 i32.store offset=8 - local.get $3 + local.get $0 i32.const 8864 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -24260,7 +25462,7 @@ i32.const 30 i32.const 9056 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 7 @@ -24268,14 +25470,12 @@ i32.const 30 i32.const 9104 call $~lib/rt/__newArray - local.tee $7 + local.tee $6 i32.store offset=152 i32.const 1 global.set $~argumentsLength - local.get $1 - local.set $3 i32.const 0 - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24298,7 +25498,7 @@ unreachable end i32.const 9152 - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 9152 i32.store @@ -24314,18 +25514,18 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $0 i32.load offset=4 - local.get $3 + local.get $0 i32.load offset=12 - local.get $2 + local.get $5 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 + local.tee $1 + local.get $0 i32.store block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $0 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -24337,36 +25537,36 @@ i64.const 0 i64.store i32.const 1 - local.set $8 - local.get $3 + local.set $7 + local.get $0 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|019 - local.get $0 - local.get $8 + local.get $1 + local.get $7 i32.gt_s if - local.get $3 - local.get $8 + local.get $0 + local.get $7 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store - local.get $3 - local.get $8 + local.get $0 + local.get $7 call $~lib/array/Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $5 local.get $4 local.get $2 + local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -24379,10 +25579,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 br $for-loop|019 end end @@ -24411,7 +25611,7 @@ global.set $~lib/memory/__stack_pointer block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -24425,45 +25625,45 @@ i64.store block $folding-inner1 block $folding-inner020 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $3 - local.get $7 + local.tee $1 + local.get $6 i32.load offset=12 i32.ne br_if $folding-inner020 - local.get $1 - local.get $7 + local.get $0 + local.get $6 i32.eq br_if $folding-inner1 loop $for-loop|038 - local.get $0 + local.get $1 local.get $3 - i32.lt_s + i32.gt_s if - local.get $1 local.get $0 + local.get $3 call $~lib/array/Array#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store - local.get $7 - local.get $0 + local.get $6 + local.get $3 call $~lib/array/Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $5 local.get $4 + local.get $2 call $~lib/string/String.__eq i32.eqz br_if $folding-inner020 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|038 end end @@ -24491,10 +25691,11 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 + i32.const 0 + local.set $3 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -24503,17 +25704,17 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $6 + local.tee $2 i32.store loop $for-loop|0144 - local.get $1 + local.get $3 i32.const 400 i32.lt_s if @@ -24521,7 +25722,7 @@ f64.const 32 f64.mul i32.trunc_f64_s - local.set $5 + local.set $6 i32.const 0 local.set $8 global.get $~lib/memory/__stack_pointer @@ -24533,29 +25734,30 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 i32.const 9024 - local.set $3 - local.get $0 + local.set $0 + local.get $1 i32.const 9024 i32.store - loop $for-loop|022 - local.get $5 + loop $for-loop|00 + local.get $6 local.get $8 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 + local.get $0 + local.get $5 i32.const 7488 i32.store offset=4 call $~lib/math/NativeMath.random global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 7488 i32.store offset=8 i32.const 7484 @@ -24566,8 +25768,8 @@ f64.mul f64.floor i32.trunc_f64_s - local.set $7 - local.get $0 + local.set $5 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -24579,12 +25781,12 @@ i32.const 0 i32.store block $__inlined_func$~lib/string/String#charAt - local.get $7 i32.const 7484 i32.load i32.const 1 i32.shr_u - i32.ge_u + local.get $5 + i32.le_u if global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24601,7 +25803,7 @@ local.tee $0 i32.store local.get $0 - local.get $7 + local.get $5 i32.const 1 i32.shl i32.const 7488 @@ -24616,17 +25818,15 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 - local.get $3 local.get $0 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store local.get $8 i32.const 1 i32.add local.set $8 - br $for-loop|022 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer @@ -24634,16 +25834,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 - local.get $6 - local.get $1 + local.get $2 local.get $3 + local.get $0 call $~lib/array/Array<~lib/array/Array>#__set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|0144 end end @@ -24652,7 +25852,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $6 + local.tee $0 i32.store offset=156 i32.const 1 global.set $~argumentsLength @@ -24685,7 +25885,7 @@ i32.const 9184 i32.store end - local.get $6 + local.get $0 local.get $1 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -24697,25 +25897,24 @@ i32.const 34 i32.const 9216 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $3 + local.get $0 i32.store offset=164 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9312 i32.store offset=168 - local.get $3 + local.get $0 i32.load offset=4 local.set $7 - local.get $3 + local.get $0 i32.load offset=12 - local.set $3 + local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $6 - local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -24727,10 +25926,10 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinBooleanArray - local.get $3 + local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $3 i32.const 0 i32.lt_s if @@ -24742,8 +25941,8 @@ local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end - block $folding-inner0115 - local.get $8 + block $folding-inner01 + local.get $3 i32.eqz if i32.const 9248 @@ -24752,15 +25951,15 @@ i32.load8_u select local.set $1 - br $folding-inner0115 + br $folding-inner01 end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $3 i32.const 9308 i32.load i32.const 1 i32.shr_u - local.tee $2 + local.tee $6 i32.const 5 i32.add i32.mul @@ -24774,27 +25973,27 @@ local.tee $1 i32.store loop $for-loop|1 - local.get $6 + local.get $3 local.get $8 - i32.lt_s + i32.gt_s if - local.get $6 local.get $7 + local.get $8 i32.add i32.load8_u - local.tee $3 + local.tee $2 i32.eqz i32.const 4 i32.add local.set $5 - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9248 i32.const 9280 - local.get $3 + local.get $2 select local.get $5 i32.const 1 @@ -24804,47 +26003,47 @@ local.get $5 i32.add local.set $0 - local.get $2 + local.get $6 if - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9312 - local.get $2 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $2 + local.get $6 i32.add local.set $0 end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 + local.set $8 br $for-loop|1 end end + local.get $3 local.get $7 - local.get $8 i32.add i32.load8_u - local.tee $3 + local.tee $2 i32.eqz i32.const 4 i32.add local.set $5 - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9248 i32.const 9280 - local.get $3 + local.get $2 select local.get $5 i32.const 1 @@ -24854,14 +26053,14 @@ local.get $0 local.get $5 i32.add - local.tee $3 + local.tee $0 i32.gt_s if local.get $1 - local.get $3 + local.get $0 call $~lib/string/String#substring local.set $1 - br $folding-inner0115 + br $folding-inner01 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24875,10 +26074,10 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 local.get $1 i32.store - local.get $3 + local.get $0 i32.const 9344 i32.store offset=8 local.get $1 @@ -24898,23 +26097,22 @@ i32.const 3 i32.const 9392 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $0 + local.get $1 i32.store offset=164 - local.get $3 + local.get $0 i32.const 9024 i32.store offset=168 - local.get $0 + local.get $1 i32.const 9024 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 11200 i32.store offset=8 local.get $0 @@ -24934,23 +26132,22 @@ i32.const 7 i32.const 11232 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $0 + local.get $1 i32.store offset=164 - local.get $3 + local.get $0 i32.const 11264 i32.store offset=168 - local.get $0 + local.get $1 i32.const 11264 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 11200 i32.store offset=8 local.get $0 @@ -24970,23 +26167,22 @@ i32.const 3 i32.const 11296 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $0 + local.get $1 i32.store offset=164 - local.get $3 + local.get $0 i32.const 11328 i32.store offset=168 - local.get $0 + local.get $1 i32.const 11328 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 11360 i32.store offset=8 local.get $0 @@ -25006,25 +26202,21 @@ i32.const 10 i32.const 11440 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $0 + local.get $1 i32.store offset=164 - local.get $3 + local.get $0 i32.const 11520 i32.store offset=168 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=12 - call $~lib/util/string/joinFloatArray + local.get $1 + call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12688 i32.store offset=8 local.get $0 @@ -25044,23 +26236,22 @@ i32.const 30 i32.const 12832 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $0 + local.get $1 i32.store offset=164 - local.get $3 + local.get $0 i32.const 9024 i32.store offset=168 - local.get $0 + local.get $1 i32.const 9024 call $~lib/array/Array<~lib/string/String|null>#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12800 i32.store offset=8 local.get $0 @@ -25076,46 +26267,45 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 3 i32.const 2 i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=152 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 2 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $3 local.get $0 + local.get $1 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 9312 i32.store offset=168 - local.get $0 + local.get $1 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 12928 i32.store offset=8 local.get $0 @@ -25131,42 +26321,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=160 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $3 local.get $0 + local.get $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 9312 i32.store offset=168 - local.get $0 + local.get $1 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 13024 i32.store offset=8 local.get $0 @@ -25187,7 +26376,7 @@ i32.const 3 i32.const 13120 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -25195,7 +26384,7 @@ i32.const 3 i32.const 13152 call $~lib/rt/__newArray - local.tee $4 + local.tee $0 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -25203,7 +26392,7 @@ i32.const 3 i32.const 13184 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25211,19 +26400,18 @@ i32.const 3 i32.const 13216 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=144 - local.get $3 + local.get $4 call $~lib/array/Array#toString - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $5 + local.get $4 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=8 - local.get $5 + local.get $4 i32.const 9024 call $~lib/string/String.__eq i32.eqz @@ -25235,14 +26423,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $0 call $~lib/array/Array#toString local.set $4 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 local.get $4 i32.store - local.get $3 + local.get $0 i32.const 12800 i32.store offset=8 local.get $4 @@ -25257,17 +26445,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/array/Array#toString - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $1 + local.tee $0 + local.get $2 i32.store - local.get $3 + local.get $0 i32.const 13264 i32.store offset=8 - local.get $1 + local.get $2 i32.const 13264 call $~lib/string/String.__eq i32.eqz @@ -25279,17 +26467,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/array/Array#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $0 + local.get $1 i32.store - local.get $3 + local.get $0 i32.const 13296 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13296 call $~lib/string/String.__eq i32.eqz @@ -25306,12 +26494,12 @@ i32.const 35 i32.const 13344 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $0 + local.get $1 i32.store offset=164 - local.get $3 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -25320,23 +26508,23 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 9312 i32.store - local.get $0 + local.get $1 i32.load offset=4 local.set $5 - local.get $0 + local.get $1 i32.load offset=12 - local.set $3 + local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $6 - local.get $1 + local.set $8 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -25348,10 +26536,10 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $3 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -25363,18 +26551,18 @@ local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0117 - local.get $2 + block $folding-inner03 + local.get $6 i32.eqz if local.get $5 i32.load8_s call $~lib/util/number/itoa32 local.set $1 - br $folding-inner0117 + br $folding-inner03 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const 9308 i32.load i32.const 1 @@ -25385,25 +26573,25 @@ i32.mul i32.const 11 i32.add - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|0118 - local.get $2 + loop $for-loop|05120 local.get $6 + local.get $8 i32.gt_s if - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add local.get $5 - local.get $6 + local.get $8 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -25412,10 +26600,10 @@ local.set $0 local.get $4 if - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9312 local.get $4 @@ -25427,34 +26615,34 @@ i32.add local.set $0 end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 - br $for-loop|0118 + local.set $8 + br $for-loop|05120 end end - local.get $3 - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add - local.get $2 local.get $5 + local.get $6 i32.add i32.load8_s call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $3 + local.tee $0 i32.gt_s if local.get $1 - local.get $3 + local.get $0 call $~lib/string/String#substring local.set $1 - br $folding-inner0117 + br $folding-inner03 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25472,10 +26660,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 13376 i32.store offset=8 local.get $1 @@ -25495,12 +26682,12 @@ i32.const 36 i32.const 13408 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $0 + local.get $1 i32.store offset=164 - local.get $3 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -25509,23 +26696,23 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 9312 i32.store - local.get $0 + local.get $1 i32.load offset=4 local.set $5 - local.get $0 + local.get $1 i32.load offset=12 - local.set $3 + local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $6 - local.get $1 + local.set $8 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -25537,10 +26724,10 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $3 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -25552,18 +26739,18 @@ local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0120 - local.get $2 + block $folding-inner06 + local.get $6 i32.eqz if local.get $5 i32.load16_u call $~lib/util/number/utoa32 local.set $1 - br $folding-inner0120 + br $folding-inner06 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const 9308 i32.load i32.const 1 @@ -25574,27 +26761,27 @@ i32.mul i32.const 10 i32.add - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|0121 - local.get $2 + loop $for-loop|08 local.get $6 + local.get $8 i32.gt_s if - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add - local.get $5 - local.get $6 + local.get $8 i32.const 1 i32.shl + local.get $5 i32.add i32.load16_u call $~lib/util/number/itoa_buffered @@ -25603,10 +26790,10 @@ local.set $0 local.get $4 if - local.get $1 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9312 local.get $4 @@ -25618,36 +26805,36 @@ i32.add local.set $0 end - local.get $6 + local.get $8 i32.const 1 i32.add - local.set $6 - br $for-loop|0121 + local.set $8 + br $for-loop|08 end end - local.get $3 - local.get $1 + local.get $2 local.get $0 i32.const 1 i32.shl + local.get $1 i32.add - local.get $5 - local.get $2 + local.get $6 i32.const 1 i32.shl + local.get $5 i32.add i32.load16_u call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $3 + local.tee $0 i32.gt_s if local.get $1 - local.get $3 + local.get $0 call $~lib/string/String#substring local.set $1 - br $folding-inner0120 + br $folding-inner06 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25665,10 +26852,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 13440 i32.store offset=8 local.get $1 @@ -25688,12 +26874,12 @@ i32.const 37 i32.const 13488 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $0 + local.get $1 i32.store offset=164 - local.get $3 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -25702,326 +26888,26 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9312 i32.store - local.get $0 - i32.load offset=4 - local.set $5 - local.get $0 - i32.load offset=12 - local.set $3 - i32.const 0 - local.set $0 - i32.const 0 - local.set $6 local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $3 - i32.const 1 - i32.sub - local.tee $2 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9024 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - local.get $2 - i32.eqz - if - local.get $5 - i64.load - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64 - local.get $9 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9616 - local.set $1 - br $__inlined_func$~lib/util/number/utoa64 - end - local.get $9 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.wrap_i64 - local.tee $0 - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $3 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $9 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $9 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $9 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $9 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $9 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $9 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $9 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $9 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $9 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $9 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $9 - local.get $3 - call $~lib/util/number/utoa64_dec_lut - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 9308 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 20 - i32.add - i32.mul - i32.const 20 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0123 - local.get $2 - local.get $6 - i32.gt_s - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $4 - if - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 9312 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $4 - i32.add - local.set $0 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0123 - end - end - local.get $3 - local.get $1 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $2 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $3 - i32.gt_s - if - local.get $1 - local.get $3 - call $~lib/string/String#substring - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end + call $~lib/array/Array#join + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $1 + local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 13536 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13536 call $~lib/string/String.__eq i32.eqz @@ -26038,12 +26924,12 @@ i32.const 38 i32.const 13616 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 + local.tee $0 + local.get $1 i32.store offset=164 - local.get $3 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -26052,27 +26938,23 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 9312 i32.store - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=12 - call $~lib/util/string/joinIntegerArray + local.get $1 + call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 13680 i32.store offset=8 local.get $0 @@ -26093,16 +26975,15 @@ i32.const 30 i32.const 13792 call $~lib/rt/__newArray - local.tee $3 + local.tee $0 i32.store offset=140 - local.get $3 + local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 13840 i32.store offset=8 local.get $0 @@ -26122,18 +27003,17 @@ i32.const 30 i32.const 13952 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=164 - local.get $3 + local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 14000 i32.store offset=8 local.get $0 @@ -26149,19 +27029,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 2 i32.const 2 i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=160 - local.get $0 + local.get $1 i32.const 0 i32.const 2 i32.const 2 @@ -26169,7 +27049,7 @@ i32.const 14032 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 2 @@ -26177,8 +27057,8 @@ i32.const 14064 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $3 local.get $0 + local.get $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26189,21 +27069,21 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 9312 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.set $2 - local.get $0 + local.set $7 + local.get $1 i32.load offset=12 - local.set $0 + local.set $2 i32.const 0 - local.set $7 - local.get $3 + local.set $1 + local.get $0 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -26212,17 +27092,17 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $0 + local.get $2 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if @@ -26231,25 +27111,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $3 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $5 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.load - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 if (result i32) - local.get $3 + local.get $0 call $~lib/array/Array#toString else i32.const 9024 end - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -26257,7 +27137,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9024 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=4 @@ -26265,74 +27145,74 @@ i32.load i32.const 1 i32.shr_u - local.set $1 - loop $for-loop|027 - local.get $5 - local.get $7 - i32.gt_s + local.set $4 + loop $for-loop|010 + local.get $1 + local.get $6 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $1 i32.const 2 i32.shl + local.get $7 i32.add i32.load - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 call $~lib/array/Array#toString - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $0 + local.get $5 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store offset=4 end - local.get $1 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 9312 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store offset=4 end - local.get $7 + local.get $1 i32.const 1 i32.add - local.set $7 - br $for-loop|027 + local.set $1 + br $for-loop|010 end end global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $6 i32.const 2 i32.shl + local.get $7 i32.add i32.load - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/array/Array#toString - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -26345,13 +27225,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 14096 i32.store offset=8 - local.get $3 + local.get $0 i32.const 14096 call $~lib/string/String.__eq i32.eqz @@ -26364,19 +27243,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 2 i32.const 2 i32.const 39 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=132 - local.get $0 + local.get $1 i32.const 0 i32.const 2 i32.const 0 @@ -26384,7 +27263,7 @@ i32.const 14144 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 0 @@ -26392,8 +27271,8 @@ i32.const 14176 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $3 local.get $0 + local.get $1 i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26404,21 +27283,21 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 9312 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.set $2 - local.get $0 + local.set $7 + local.get $1 i32.load offset=12 - local.set $0 + local.set $2 i32.const 0 - local.set $7 - local.get $3 + local.set $1 + local.get $0 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -26427,17 +27306,17 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $0 + local.get $2 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if @@ -26446,25 +27325,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $3 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $5 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.load - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 if (result i32) - local.get $3 + local.get $0 call $~lib/array/Array#toString else i32.const 9024 end - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -26472,7 +27351,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end i32.const 9024 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=4 @@ -26480,74 +27359,74 @@ i32.load i32.const 1 i32.shr_u - local.set $1 - loop $for-loop|028 - local.get $5 - local.get $7 - i32.gt_s + local.set $4 + loop $for-loop|01221 + local.get $1 + local.get $6 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $1 i32.const 2 i32.shl + local.get $7 i32.add i32.load - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 call $~lib/array/Array#toString - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $0 + local.get $5 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store offset=4 end - local.get $1 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 9312 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store offset=4 end - local.get $7 + local.get $1 i32.const 1 i32.add - local.set $7 - br $for-loop|028 + local.set $1 + br $for-loop|01221 end end global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $6 i32.const 2 i32.shl + local.get $7 i32.add i32.load - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/array/Array#toString - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -26560,13 +27439,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 14096 i32.store offset=8 - local.get $3 + local.get $0 i32.const 14096 call $~lib/string/String.__eq i32.eqz @@ -26585,26 +27463,25 @@ i32.const 41 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $1 + local.get $2 i32.load offset=4 i32.store offset=128 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 40 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $1 i32.store offset=124 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.load offset=4 i32.store offset=120 - local.get $3 + local.get $1 i32.const 0 i32.const 1 i32.const 2 @@ -26612,12 +27489,12 @@ i32.const 14208 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $2 i32.const 0 - local.get $3 + local.get $1 call $~lib/array/Array#__uset local.get $0 - local.get $1 + local.get $2 i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26628,21 +27505,21 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 9312 i32.store - local.get $1 + local.get $2 i32.load offset=4 - local.set $2 - local.get $1 + local.set $7 + local.get $2 i32.load offset=12 - local.set $0 + local.set $2 i32.const 0 - local.set $7 - local.get $3 + local.set $1 + local.get $0 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer @@ -26651,17 +27528,17 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - local.get $0 + local.get $2 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if @@ -26670,25 +27547,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $3 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end - local.get $5 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $7 i32.load - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 if (result i32) - local.get $3 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString else i32.const 9024 end - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -26696,7 +27573,7 @@ br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end i32.const 9024 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=4 @@ -26704,74 +27581,74 @@ i32.load i32.const 1 i32.shr_u - local.set $1 - loop $for-loop|029 - local.get $5 - local.get $7 - i32.gt_s + local.set $4 + loop $for-loop|01422 + local.get $1 + local.get $6 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $7 + local.get $1 i32.const 2 i32.shl + local.get $7 i32.add i32.load - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 call $~lib/array/Array<~lib/array/Array>#toString - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 - local.get $3 - local.get $4 + local.get $0 + local.get $5 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store offset=4 end - local.get $1 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 9312 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store offset=4 end - local.get $7 + local.get $1 i32.const 1 i32.add - local.set $7 - br $for-loop|029 + local.set $1 + br $for-loop|01422 end end global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $5 + local.get $6 i32.const 2 i32.shl + local.get $7 i32.add i32.load - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/array/Array<~lib/array/Array>#toString - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store offset=4 end global.get $~lib/memory/__stack_pointer @@ -26784,13 +27661,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 12800 i32.store offset=8 - local.get $3 + local.get $0 i32.const 12800 call $~lib/string/String.__eq i32.eqz @@ -26803,19 +27679,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 4 i32.const 2 i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=128 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=132 - local.get $0 + local.get $1 i32.const 0 i32.const 1 i32.const 2 @@ -26823,7 +27699,7 @@ i32.const 14240 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 3 i32.const 2 @@ -26831,7 +27707,7 @@ i32.const 14272 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 2 i32.const 3 i32.const 2 @@ -26839,7 +27715,7 @@ i32.const 14304 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 3 i32.const 3 i32.const 2 @@ -26847,15 +27723,15 @@ i32.const 14336 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $3 local.get $0 + local.get $1 i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $3 + local.tee $1 i32.store offset=128 - local.get $3 + local.get $1 i32.load offset=12 i32.const 10 i32.ne @@ -26869,12 +27745,12 @@ end i32.const 0 local.set $0 - loop $for-loop|1128 + loop $for-loop|115 local.get $0 i32.const 10 i32.lt_s if - local.get $3 + local.get $1 local.get $0 call $~lib/array/Array#__get local.get $0 @@ -26891,23 +27767,23 @@ i32.const 1 i32.add local.set $0 - br $for-loop|1128 + br $for-loop|115 end end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 4 i32.const 2 i32.const 42 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $2 i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.load offset=4 i32.store offset=140 - local.get $4 + local.get $2 i32.const 0 i32.const 1 i32.const 2 @@ -26915,7 +27791,7 @@ i32.const 14400 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $4 + local.get $2 i32.const 1 i32.const 3 i32.const 2 @@ -26923,7 +27799,7 @@ i32.const 14496 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $4 + local.get $2 i32.const 2 i32.const 3 i32.const 2 @@ -26931,7 +27807,7 @@ i32.const 14624 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $4 + local.get $2 i32.const 3 i32.const 1 i32.const 2 @@ -26939,17 +27815,17 @@ i32.const 14688 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $3 - local.get $4 + local.get $0 + local.get $2 i32.store offset=140 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.set $7 + local.set $8 i32.const 0 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -26960,127 +27836,127 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $4 + local.get $2 i32.load offset=4 - local.set $5 - local.get $4 + local.set $6 + local.get $2 i32.load offset=12 - local.set $4 - loop $for-loop|0129 - local.get $0 - local.get $4 + local.set $5 + loop $for-loop|0131 + local.get $1 + local.get $5 i32.lt_s if - local.get $5 - local.get $0 + local.get $1 i32.const 2 i32.shl + local.get $6 i32.add i32.load - local.tee $3 + local.tee $0 if (result i32) - local.get $3 + local.get $0 i32.load offset=12 else i32.const 0 end - local.get $7 + local.get $8 i32.add - local.set $7 - local.get $0 + local.set $8 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0129 + local.set $1 + br $for-loop|0131 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.const 2 i32.shl - local.tee $3 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 30 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.store offset=4 - local.get $6 - local.get $7 + local.get $0 + local.get $8 i32.store offset=12 - local.get $6 - local.get $3 + local.get $0 + local.get $1 i32.store offset=8 - local.get $6 - local.get $8 + local.get $0 + local.get $7 i32.store offset=4 - local.get $6 - local.get $8 + local.get $0 + local.get $7 i32.store - local.get $6 - local.get $8 + local.get $0 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 - local.set $0 - loop $for-loop|1130 - local.get $0 - local.get $4 + local.set $1 + loop $for-loop|1132 + local.get $1 + local.get $5 i32.lt_s if - local.get $5 - local.get $0 + local.get $1 i32.const 2 i32.shl + local.get $6 i32.add i32.load - local.tee $3 + local.tee $2 if - local.get $2 - local.get $8 - i32.add local.get $3 + local.get $7 + i32.add + local.get $2 i32.load offset=4 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $2 call $~lib/memory/memory.copy local.get $2 local.get $3 i32.add - local.set $2 + local.set $3 end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|1130 + local.set $1 + br $for-loop|1132 end end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|2 - local.get $0 - local.get $7 + local.get $1 + local.get $8 i32.lt_s if - local.get $8 - local.get $8 - local.get $0 + local.get $7 + local.get $1 i32.const 2 i32.shl + local.get $7 i32.add i32.load i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|2 end end @@ -27088,8 +27964,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $6 + local.get $0 + local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27097,9 +27973,9 @@ i32.const 30 i32.const 14720 call $~lib/rt/__newArray - local.tee $4 + local.tee $5 i32.store offset=148 - local.get $6 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -27113,28 +27989,28 @@ end i32.const 0 local.set $0 - loop $for-loop|2131 - local.get $0 - local.get $4 + loop $for-loop|2133 + local.get $5 i32.load offset=12 - i32.lt_s + local.get $0 + i32.gt_s if - local.get $6 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $4 + i32.store + local.get $5 local.get $0 call $~lib/array/Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=8 - local.get $1 - local.get $3 + local.get $4 + local.get $2 call $~lib/string/String.__eq i32.eqz if @@ -27149,23 +28025,23 @@ i32.const 1 i32.add local.set $0 - br $for-loop|2131 + br $for-loop|2133 end end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 2 i32.const 2 i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=156 - local.get $0 + local.get $1 i32.const 0 i32.const 0 i32.const 2 @@ -27173,7 +28049,7 @@ i32.const 14784 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 i32.const 2 @@ -27181,16 +28057,16 @@ i32.const 14816 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $3 local.get $0 + local.get $1 i32.store offset=156 - local.get $0 + local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store - local.get $3 + local.get $0 i32.load offset=12 if i32.const 0 @@ -27315,10 +28191,10 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.tee $4 @@ -27852,10 +28728,10 @@ i32.ne if local.get $6 - local.get $5 local.get $1 i32.const 2 i32.shl + local.get $5 i32.add local.get $4 local.get $1 @@ -27968,10 +28844,10 @@ i32.ne if local.get $6 - local.get $5 local.get $1 i32.const 2 i32.shl + local.get $5 i32.add local.get $3 local.get $1 @@ -28010,10 +28886,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1344 i32.const 1104 @@ -28068,10 +28944,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1344 i32.const 1104 @@ -28136,7 +29012,6 @@ i32.load offset=4 local.set $4 loop $for-loop|0 - local.get $3 local.get $2 local.get $0 i32.load offset=12 @@ -28145,7 +29020,8 @@ local.get $5 i32.lt_s select - i32.lt_s + local.get $3 + i32.gt_s if local.get $3 i32.const 2 @@ -28216,43 +29092,43 @@ i32.load offset=12 local.set $5 loop $for-loop|0 - local.get $3 local.get $5 local.get $0 i32.load offset=12 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 local.get $5 i32.gt_s select - i32.lt_s + local.get $4 + i32.gt_s if local.get $0 i32.load offset=4 - local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $3 + local.get $4 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $4 + local.get $3 call $~lib/array/Array#push drop end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end @@ -28626,8 +29502,6 @@ i32.shr_u local.tee $2 local.get $2 - i32.const 0 - i32.gt_s select local.tee $3 local.get $1 @@ -28645,22 +29519,23 @@ local.tee $1 local.get $1 local.get $3 - i32.lt_s + i32.gt_s select i32.const 1 i32.shl - local.tee $4 + local.set $4 local.get $3 local.get $1 local.get $1 local.get $3 - i32.gt_s + i32.lt_s select i32.const 1 i32.shl - local.tee $1 - i32.sub local.tee $3 + local.get $4 + i32.sub + local.tee $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -28671,12 +29546,12 @@ return end i32.const 0 - local.get $4 local.get $2 i32.const 1 i32.shl + local.get $3 i32.eq - local.get $1 + local.get $4 select if global.get $~lib/memory/__stack_pointer @@ -28687,16 +29562,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 1 call $~lib/rt/itcms/__new local.tee $2 i32.store local.get $2 local.get $0 - local.get $1 + local.get $4 i32.add - local.get $3 + local.get $1 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -28723,750 +29598,196 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9616 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $0 - i32.sub - local.get $0 - local.get $0 - i32.const 31 - i32.shr_u - local.tee $1 - select - local.tee $2 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.get $1 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $3 - call $~lib/util/number/utoa32_dec_lut - local.get $1 - if - local.get $0 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/util/number/utoa32 (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - if - i32.const 31744 - i32.const 31792 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9616 - return - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $0 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $1 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9024 - return - end - block $folding-inner0 - local.get $4 - i32.eqz - if - local.get $0 - f64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/dtoa - local.get $3 - f64.const 0 - f64.eq - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11552 - local.set $0 - br $__inlined_func$~lib/util/number/dtoa - end - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.ne - if - local.get $3 - local.get $3 - f64.ne - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11584 - local.set $0 - br $__inlined_func$~lib/util/number/dtoa - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11616 - i32.const 11664 - local.get $3 - f64.const 0 - f64.lt - select - local.set $0 - br $__inlined_func$~lib/util/number/dtoa - end - i32.const 11696 - local.get $3 - call $~lib/util/number/dtoa_core - i32.const 1 - i32.shl - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 11696 - local.get $1 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 11516 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 28 - i32.add - i32.mul - i32.const 28 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $5 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 11520 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - local.get $7 - local.get $1 - local.get $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9616 + return + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + local.get $0 + i32.sub + local.get $0 + local.get $0 + i32.const 31 + i32.shr_u + local.tee $1 + select + local.tee $2 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u i32.const 1 - i32.shl i32.add + else local.get $0 - local.get $4 + i32.const 10000 + i32.ge_u i32.const 3 - i32.shl - i32.add - f64.load - call $~lib/util/number/dtoa_buffered - local.get $2 i32.add - local.tee $0 - i32.gt_s - if - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.const 1000 + i32.ge_u i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + else local.get $0 - return + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end end - i32.const 31744 - i32.const 31792 + local.get $1 + i32.add + local.tee $3 i32.const 1 + i32.shl i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $3 + call $~lib/util/number/utoa32_dec_lut + local.get $1 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/utoa32 (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + if + i32.const 31744 + i32.const 31792 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9616 + return + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) local.get $1 - i32.const 1 - i32.sub - local.tee $7 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9024 - return - end - local.get $7 - i32.eqz - if - local.get $0 - i64.load - i64.extend32_s - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa64 - local.get $3 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9616 - local.set $1 - br $__inlined_func$~lib/util/number/itoa64 - end - i64.const 0 - local.get $3 - i64.sub - local.get $3 - local.get $3 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $4 - select - local.tee $3 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.wrap_i64 - local.tee $5 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.get $4 - i32.add - local.tee $0 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $5 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $3 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $3 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $3 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $3 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $3 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $3 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $3 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.get $4 - i32.add - local.tee $0 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $3 - local.get $0 - call $~lib/util/number/utoa64_dec_lut - end - local.get $4 - if - local.get $1 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 4 + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 i32.add - global.set $~lib/memory/__stack_pointer local.get $1 - return - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9308 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 21 - i32.add - i32.mul - i32.const 21 - i32.add - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - loop $for-loop|0 - local.get $5 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $4 - if - local.get $6 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9312 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + i32.const 1000 + i32.ge_u + i32.add end + else local.get $1 - local.get $6 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - local.get $6 - local.get $0 - call $~lib/string/String#substring - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u i32.add - global.set $~lib/memory/__stack_pointer - return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return end - i32.const 31744 - i32.const 31792 + local.tee $0 i32.const 1 + i32.shl i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $1 + local.get $0 + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $~lib/array/Array<~lib/array/Array>#flat (param $0 i32) (result i32) (local $1 i32) @@ -29504,10 +29825,10 @@ local.get $6 i32.lt_s if - local.get $5 local.get $2 i32.const 2 i32.shl + local.get $5 i32.add i32.load local.tee $0 @@ -29565,10 +29886,10 @@ local.get $6 i32.lt_s if - local.get $5 local.get $2 i32.const 2 i32.shl + local.get $5 i32.add i32.load local.tee $3 @@ -29677,7 +29998,8 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -29763,7 +30085,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -29864,43 +30185,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#every (result i32) - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $2 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.gt_s select - i32.lt_s + local.get $4 + i32.gt_s if local.get $0 i32.load offset=4 - local.get $2 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 local.get $2 + local.get $4 local.get $0 local.get $1 i32.load @@ -29908,10 +30227,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -29942,20 +30261,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 local.set $4 block $__inlined_func$~lib/array/Array#findIndex loop $for-loop|0 - local.get $2 local.get $4 local.get $0 i32.load offset=12 @@ -29964,7 +30280,8 @@ local.get $4 i32.gt_s select - i32.lt_s + local.get $2 + i32.gt_s if local.get $0 i32.load offset=4 @@ -30084,7 +30401,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 i32.const 0 local.get $0 i32.load offset=12 @@ -30093,6 +30409,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -30214,10 +30531,10 @@ local.get $1 i32.lt_s if - local.get $6 local.get $0 i32.const 2 i32.shl + local.get $6 i32.add local.get $4 i32.store @@ -30305,10 +30622,10 @@ i32.lt_s if local.get $1 - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load i32.eq @@ -30402,10 +30719,10 @@ i32.lt_s if local.get $1 - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load i32.eq @@ -30494,11 +30811,11 @@ i32.ge_s if local.get $1 - local.get $0 local.get $2 local.tee $3 i32.const 2 i32.shl + local.get $0 i32.add i32.load i32.eq @@ -30764,41 +31081,39 @@ local.get $2 local.get $1 i32.store offset=4 - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $2 loop $for-loop|0 local.get $2 - local.get $4 local.get $0 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $4 + local.get $2 local.get $4 - i32.gt_s - select i32.lt_s + select + local.get $3 + i32.gt_s if local.get $0 i32.load offset=4 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $2 + local.get $3 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end @@ -30852,43 +31167,43 @@ i32.load offset=12 local.set $5 loop $for-loop|0 - local.get $3 local.get $5 local.get $0 i32.load offset=12 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 local.get $5 i32.gt_s select - i32.lt_s + local.get $4 + i32.gt_s if local.get $0 i32.load offset=4 - local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $3 + local.get $4 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $4 + local.get $3 call $~lib/array/Array#push drop end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end @@ -30995,53 +31310,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#some (result i32) - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $2 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.gt_s select - i32.lt_s + local.get $4 + i32.gt_s if local.get $0 i32.load offset=4 - local.get $2 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 local.get $2 + local.get $4 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -31321,10 +31634,10 @@ i32.ne if local.get $6 - local.get $5 local.get $1 i32.const 2 i32.shl + local.get $5 i32.add local.get $4 local.get $1 @@ -31384,14 +31697,14 @@ if local.get $0 i32.load offset=4 + local.tee $3 local.set $2 - local.get $0 - i32.load offset=4 local.get $1 i32.const 1 i32.sub i32.const 2 i32.shl + local.get $3 i32.add local.set $1 loop $while-continue|0 @@ -31623,7 +31936,8 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -31707,7 +32021,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -31780,41 +32093,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#every (result i32) - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $2 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.gt_s select - i32.lt_s + local.get $4 + i32.gt_s if - local.get $2 + local.get $4 local.get $0 i32.load offset=4 i32.add i32.load8_u - local.set $3 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 local.get $2 + local.get $4 local.get $0 local.get $1 i32.load @@ -31822,10 +32133,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -31856,20 +32167,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 local.set $4 block $__inlined_func$~lib/array/Array#findIndex loop $for-loop|0 - local.get $2 local.get $4 local.get $0 i32.load offset=12 @@ -31878,7 +32186,8 @@ local.get $4 i32.gt_s select - i32.lt_s + local.get $2 + i32.gt_s if local.get $2 local.get $0 @@ -31994,7 +32303,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 i32.const 0 local.get $0 i32.load offset=12 @@ -32003,6 +32311,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -32594,14 +32903,14 @@ end local.get $0 i32.sub - local.tee $2 + local.tee $0 local.get $5 local.get $1 i32.sub - local.tee $0 + local.tee $1 local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.lt_s select call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer @@ -32686,39 +32995,37 @@ local.get $2 local.get $1 i32.store offset=4 - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $2 loop $for-loop|0 local.get $2 - local.get $4 local.get $0 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $4 + local.get $2 local.get $4 - i32.gt_s - select i32.lt_s + select + local.get $3 + i32.gt_s if - local.get $2 + local.get $3 local.get $0 i32.load offset=4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $2 + local.get $3 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end @@ -32772,41 +33079,41 @@ i32.load offset=12 local.set $5 loop $for-loop|0 - local.get $3 local.get $5 local.get $0 i32.load offset=12 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 local.get $5 i32.gt_s select - i32.lt_s + local.get $4 + i32.gt_s if - local.get $3 + local.get $4 local.get $0 i32.load offset=4 i32.add i32.load8_u - local.set $4 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $3 + local.get $4 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $4 + local.get $3 call $~lib/array/Array#push drop end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end @@ -32909,51 +33216,49 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#some (result i32) - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $2 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.gt_s select - i32.lt_s + local.get $4 + i32.gt_s if - local.get $2 + local.get $4 local.get $0 i32.load offset=4 i32.add i32.load8_u - local.set $3 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 local.get $2 + local.get $4 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -33309,12 +33614,12 @@ if local.get $0 i32.load offset=4 + local.tee $3 local.set $2 - local.get $0 - i32.load offset=4 local.get $1 i32.const 1 i32.sub + local.get $3 i32.add local.set $1 loop $while-continue|0 @@ -33611,7 +33916,6 @@ i32.load offset=12 local.set $2 loop $for-loop|0 - local.get $3 local.get $2 local.get $0 i32.load offset=12 @@ -33620,7 +33924,8 @@ local.get $4 i32.lt_s select - i32.lt_s + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -33711,7 +34016,6 @@ local.set $3 block $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex loop $for-loop|0 - local.get $2 local.get $3 local.get $0 i32.load offset=12 @@ -33720,7 +34024,8 @@ local.get $4 i32.lt_s select - i32.lt_s + local.get $2 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -33895,7 +34200,6 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 i32.const 0 local.get $0 i32.load offset=12 @@ -33904,6 +34208,7 @@ i32.const 0 i32.ge_s select + local.get $1 i32.add local.tee $1 local.get $2 @@ -34051,10 +34356,10 @@ local.get $3 i32.lt_s if - local.get $5 local.get $2 i32.const 2 i32.shl + local.get $5 i32.add local.get $1 i32.store @@ -34251,10 +34556,10 @@ i32.ge_s if global.get $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.tee $3 @@ -34594,7 +34899,6 @@ i32.load offset=12 local.set $2 loop $for-loop|0 - local.get $3 local.get $2 local.get $0 i32.load offset=12 @@ -34603,7 +34907,8 @@ local.get $4 i32.lt_s select - i32.lt_s + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -34692,45 +34997,45 @@ i32.load offset=12 local.set $5 loop $for-loop|0 - local.get $3 local.get $5 local.get $0 i32.load offset=12 - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 local.get $5 i32.gt_s select - i32.lt_s + local.get $4 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $4 + local.tee $3 i32.store offset=4 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $3 + local.get $4 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $4 + local.get $3 call $~lib/array/Array<~lib/string/String>#push drop end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end @@ -34875,7 +35180,6 @@ i32.load offset=12 local.set $2 loop $for-loop|0 - local.get $3 local.get $2 local.get $0 i32.load offset=12 @@ -34884,7 +35188,8 @@ local.get $4 i32.lt_s select - i32.lt_s + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $0 @@ -35273,10 +35578,10 @@ i32.ne if local.get $6 - local.get $5 local.get $1 i32.const 2 i32.shl + local.get $5 i32.add local.get $4 local.get $1 @@ -35342,14 +35647,14 @@ if local.get $0 i32.load offset=4 + local.tee $3 local.set $1 - local.get $0 - i32.load offset=4 local.get $2 i32.const 1 i32.sub i32.const 2 i32.shl + local.get $3 i32.add local.set $2 loop $while-continue|0 diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index e58dc189da..7d54623bc8 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -95,8 +95,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -156,11 +156,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -174,10 +174,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1712 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1360 i32.const 1424 @@ -214,11 +214,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -298,19 +298,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -376,22 +376,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -639,13 +641,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -682,11 +687,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1504 @@ -710,11 +715,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1504 @@ -1097,8 +1102,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1464,13 +1468,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1485,7 +1489,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1522,7 +1527,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1531,6 +1535,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1591,12 +1596,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1504 @@ -1609,8 +1614,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1624,7 +1630,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1633,15 +1639,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1656,22 +1662,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1681,37 +1688,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1719,7 +1727,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1731,6 +1739,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1775,17 +1785,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1810,9 +1832,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -1890,27 +1916,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1922,7 +1956,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1932,8 +1968,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -1941,10 +1981,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1952,10 +1996,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -1963,7 +2011,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -1989,19 +2037,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2013,7 +2065,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2023,8 +2077,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2032,10 +2090,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2043,10 +2105,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2054,7 +2120,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2100,7 +2166,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2110,8 +2178,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2119,10 +2191,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2130,10 +2206,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2141,7 +2221,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2168,145 +2248,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2317,73 +2429,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2394,37 +2522,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2435,19 +2571,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2753,7 +2893,6 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -3035,7 +3174,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3063,7 +3203,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -3081,29 +3220,29 @@ i32.const 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.const 1632 i32.const 8 call $~lib/memory/memory.copy local.get $0 - local.get $3 + local.get $2 i32.store i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 - local.get $3 + local.tee $0 + local.get $2 i32.store + local.get $0 local.get $2 - local.get $3 call $~lib/rt/itcms/__link + local.get $0 local.get $2 - local.get $3 i32.store offset=4 - local.get $2 + local.get $0 i32.const 8 i32.store offset=8 - local.get $2 + local.get $0 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -3111,10 +3250,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store offset=12 local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3143,10 +3281,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store offset=12 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $1 i32.load local.tee $1 @@ -3156,7 +3293,7 @@ i32.sub i32.load offset=16 local.set $2 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index 351fde0324..d64c4e4f8a 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -101,8 +101,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -162,11 +162,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -180,10 +180,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1744 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1360 i32.const 1424 @@ -220,11 +220,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -304,19 +304,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -382,22 +382,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -645,13 +647,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -688,11 +693,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1504 @@ -716,11 +721,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1504 @@ -1103,8 +1108,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1470,13 +1474,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1491,7 +1495,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1528,7 +1533,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1537,6 +1541,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1597,12 +1602,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1504 @@ -1615,8 +1620,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1630,7 +1636,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1639,15 +1645,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1662,22 +1668,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1687,37 +1694,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1725,7 +1733,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2612,7 +2620,7 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2670,7 +2678,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -2713,12 +2720,11 @@ i32.const 95 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $1 i32.load local.tee $0 i32.store offset=4 - local.get $3 + global.get $~lib/memory/__stack_pointer local.get $0 local.get $1 i32.load offset=4 diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 85034442e2..a414c4235b 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -265,13 +265,13 @@ i32.mul i64.extend_i32_s local.get $2 - local.get $1 i32.const -3 i32.const 9 local.get $1 i32.const 2 i32.gt_s select + local.get $1 i32.add i32.const 153 i32.mul @@ -462,8 +462,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -523,11 +523,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -541,10 +541,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 7504 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1392 i32.const 1456 @@ -581,11 +581,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -665,19 +665,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -743,22 +743,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -1006,13 +1008,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1049,11 +1054,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1536 @@ -1077,11 +1082,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1536 @@ -1464,8 +1469,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1831,13 +1835,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1852,7 +1856,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1889,7 +1894,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1898,6 +1902,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1958,12 +1963,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1536 @@ -1976,8 +1981,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1991,7 +1997,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -2000,15 +2006,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -2023,22 +2029,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -2048,37 +2055,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -2086,7 +2094,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2287,13 +2295,13 @@ select i64.add local.get $1 - local.get $3 i32.const -3 i32.const 9 local.get $3 i32.const 2 i32.gt_s select + local.get $3 i32.add i32.const 153 i32.mul @@ -2377,13 +2385,13 @@ i64.add local.get $0 i32.load offset=8 - local.get $2 i32.const -3 i32.const 9 local.get $2 i32.const 2 i32.gt_s select + local.get $2 i32.add i32.const 153 i32.mul @@ -2465,13 +2473,13 @@ i64.add local.get $0 i32.load offset=8 - local.get $2 i32.const -3 i32.const 9 local.get $2 i32.const 2 i32.gt_s select + local.get $2 i32.add i32.const 153 i32.mul @@ -2624,13 +2632,13 @@ i32.const 10000 i32.div_u local.set $0 - local.get $1 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $1 i32.add local.get $4 i32.const 100 @@ -2659,13 +2667,13 @@ i32.const 100 i32.ge_u if - local.get $1 local.get $2 i32.const 2 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $1 i32.add local.get $0 i32.const 100 @@ -2685,12 +2693,12 @@ i32.const 10 i32.ge_u if - local.get $1 local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $1 i32.add local.get $0 i32.const 2 @@ -2700,12 +2708,12 @@ i32.load i32.store else - local.get $1 local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $1 i32.add local.get $0 i32.const 48 @@ -2729,6 +2737,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2773,17 +2783,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2808,9 +2830,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2888,27 +2914,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2920,7 +2954,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2930,8 +2966,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2939,10 +2979,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2950,10 +2994,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2961,7 +3009,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2987,19 +3035,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -3011,7 +3063,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -3021,8 +3075,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -3030,10 +3088,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -3041,10 +3103,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -3052,7 +3118,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3098,7 +3164,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -3108,8 +3176,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -3117,10 +3189,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -3128,10 +3204,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -3139,7 +3219,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3166,145 +3246,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -3315,73 +3427,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -3392,37 +3520,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -3433,19 +3569,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -3726,10 +3866,10 @@ ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.tee $1 i32.const 7 @@ -4425,8 +4565,8 @@ return end local.get $0 - local.get $0 local.tee $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4506,9 +4646,8 @@ (func $~lib/date/Date#toISOString (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $3 i64) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 112 i32.sub @@ -4581,7 +4720,7 @@ select if global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 1616 i32.const 1648 local.get $2 @@ -4589,20 +4728,19 @@ local.tee $2 i32.store local.get $1 + local.get $1 i32.const 31 i32.shr_s - local.tee $5 - local.get $1 - local.get $5 + local.tee $1 i32.add + local.get $1 i32.xor call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $1 i32.store offset=8 - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=12 local.get $1 @@ -4612,7 +4750,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 + local.get $4 local.get $2 local.get $1 call $~lib/string/String.__concat @@ -4624,10 +4762,9 @@ call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $1 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=8 local.get $1 @@ -4651,10 +4788,9 @@ call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=104 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=108 local.get $2 @@ -4669,10 +4805,9 @@ call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=84 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1616 i32.store offset=88 local.get $1 @@ -4687,10 +4822,9 @@ call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=84 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=92 local.get $2 @@ -4705,10 +4839,9 @@ call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=68 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store offset=72 local.get $1 @@ -4722,10 +4855,10 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $4 + local.tee $3 i64.const 86400000 i64.const 0 - local.get $4 + local.get $3 i64.const 0 i64.lt_s select @@ -4736,10 +4869,9 @@ call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=68 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=76 local.get $2 @@ -4754,10 +4886,9 @@ call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=52 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=56 local.get $1 @@ -4771,10 +4902,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $4 + local.tee $3 i64.const 3600000 i64.const 0 - local.get $4 + local.get $3 i64.const 0 i64.lt_s select @@ -4785,10 +4916,9 @@ call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=52 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=60 local.get $2 @@ -4803,10 +4933,9 @@ call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=36 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=40 local.get $1 @@ -4820,10 +4949,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $4 + local.tee $3 i64.const 60000 i64.const 0 - local.get $4 + local.get $3 i64.const 0 i64.lt_s select @@ -4834,10 +4963,9 @@ call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=36 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=44 local.get $2 @@ -4852,10 +4980,9 @@ call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 3552 i32.store offset=24 local.get $1 @@ -4869,10 +4996,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $4 + local.tee $3 i64.const 1000 i64.const 0 - local.get $4 + local.get $3 i64.const 0 i64.lt_s select @@ -4881,10 +5008,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=12 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=28 local.get $0 @@ -4899,10 +5025,9 @@ call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3584 i32.store offset=4 local.get $0 @@ -4921,7 +5046,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 44 i32.sub @@ -4982,18 +5106,15 @@ local.tee $4 local.get $0 i32.load offset=4 - local.tee $6 + local.tee $5 i32.const 3 i32.lt_s i32.sub - local.tee $2 - i32.const 0 - i32.ge_s - local.set $5 + local.set $2 local.get $0 i32.load offset=8 - local.tee $7 - local.get $6 + local.tee $6 + local.get $5 i32.const 1579 i32.add i32.load8_u @@ -5002,7 +5123,10 @@ local.get $2 i32.const 3 i32.sub - local.get $5 + local.get $2 + i32.const 0 + i32.ge_s + local.tee $0 select i32.const 4 i32.div_s @@ -5010,7 +5134,7 @@ local.get $2 i32.const 99 i32.sub - local.get $5 + local.get $0 select i32.const 100 i32.div_s @@ -5019,7 +5143,7 @@ local.get $2 i32.const 399 i32.sub - local.get $5 + local.get $0 select i32.const 400 i32.div_s @@ -5040,20 +5164,19 @@ local.set $2 global.get $~lib/memory/__stack_pointer local.get $4 + local.get $4 i32.const 31 i32.shr_s local.tee $0 - local.get $0 - local.get $4 i32.add + local.get $0 i32.xor call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $8 local.get $0 i32.store offset=8 - local.get $8 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=12 local.get $0 @@ -5078,21 +5201,21 @@ end global.get $~lib/memory/__stack_pointer local.tee $4 - local.get $3 local.get $2 i32.const 2 i32.shl + local.get $3 i32.add i32.load local.tee $2 i32.store offset=32 local.get $4 - local.get $1 - local.get $6 + local.get $5 i32.const 1 i32.sub i32.const 2 i32.shl + local.get $1 i32.add i32.load local.tee $1 @@ -5104,14 +5227,13 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=24 - local.get $7 + local.get $6 call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=32 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=40 local.get $2 @@ -5126,10 +5248,9 @@ call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=20 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 5072 i32.store offset=12 local.get $1 @@ -5149,9 +5270,8 @@ ) (func $~lib/date/Date#toTimeString (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $2 i64) + (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -5187,10 +5307,10 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $3 + local.tee $2 i64.const 86400000 i64.const 0 - local.get $3 + local.get $2 i64.const 0 i64.lt_s select @@ -5201,10 +5321,9 @@ call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=32 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=36 local.get $1 @@ -5212,10 +5331,9 @@ call $~lib/string/String#padStart local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=24 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=28 local.get $1 @@ -5229,10 +5347,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $3 + local.tee $2 i64.const 3600000 i64.const 0 - local.get $3 + local.get $2 i64.const 0 i64.lt_s select @@ -5241,30 +5359,28 @@ i32.const 60000 i32.div_s call $~lib/number/I32#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $2 + local.get $3 i32.store offset=24 - local.get $4 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=32 - local.get $2 + local.get $3 i32.const 2 call $~lib/string/String#padStart - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=20 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=12 local.get $1 @@ -5278,10 +5394,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $3 + local.tee $2 i64.const 60000 i64.const 0 - local.get $3 + local.get $2 i64.const 0 i64.lt_s select @@ -5292,10 +5408,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=8 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=16 local.get $0 @@ -5318,12 +5433,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i64) + (local $5 i64) + (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 96 i32.sub @@ -5379,12 +5493,12 @@ i32.const 28 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.const 5616 i32.const 28 call $~lib/memory/memory.copy local.get $1 - local.get $2 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 48 @@ -5398,47 +5512,47 @@ i32.store offset=4 local.get $0 i32.load - local.tee $7 + local.tee $6 local.get $0 i32.load offset=4 - local.tee $8 + local.tee $7 i32.const 3 i32.lt_s i32.sub - local.tee $4 - i32.const 0 - i32.ge_s local.set $3 local.get $0 i32.load offset=8 - local.tee $9 - local.get $8 + local.tee $8 + local.get $7 i32.const 1579 i32.add i32.load8_u - local.get $4 - local.get $4 - local.get $4 + local.get $3 + local.get $3 + local.get $3 i32.const 3 i32.sub local.get $3 + i32.const 0 + i32.ge_s + local.tee $2 select i32.const 4 i32.div_s - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 99 i32.sub - local.get $3 + local.get $2 select i32.const 100 i32.div_s i32.sub - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 399 i32.sub - local.get $3 + local.get $2 select i32.const 400 i32.div_s @@ -5448,99 +5562,96 @@ i32.add i32.const 7 i32.rem_s - local.tee $3 + local.tee $2 i32.const 7 i32.const 0 - local.get $3 + local.get $2 i32.const 0 i32.lt_s select i32.add - local.set $10 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 + local.get $6 i32.const 31 i32.shr_s - local.tee $3 - local.get $3 - local.get $7 + local.tee $2 i32.add + local.get $2 i32.xor call $~lib/number/I32#toString - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $5 + local.get $2 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=12 - local.get $5 + local.get $2 i32.const 4 call $~lib/string/String#padStart - local.tee $5 + local.tee $3 i32.store offset=16 - local.get $7 + local.get $6 i32.const 0 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 1616 i32.store offset=8 - local.get $3 + local.get $2 i32.const 1616 - local.get $5 + local.get $3 call $~lib/string/String.__concat - local.tee $5 + local.tee $3 i32.store offset=16 end global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $10 + local.get $9 i32.const 2 i32.shl + local.get $4 i32.add i32.load - local.tee $3 + local.tee $4 i32.store offset=80 - local.get $9 + local.get $8 call $~lib/number/I32#toString - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 - i32.store offset=88 local.get $2 + i32.store offset=88 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=92 - local.get $4 + local.get $2 i32.const 2 call $~lib/string/String#padStart local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=84 - local.get $3 + local.get $4 local.get $2 call $~lib/string/String.__concat - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $3 + local.get $4 i32.store offset=72 - local.get $2 - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.sub i32.const 2 i32.shl + local.get $1 i32.add i32.load local.tee $1 i32.store offset=76 - local.get $3 + local.get $4 local.get $1 call $~lib/string/String.__concat local.set $1 @@ -5548,31 +5659,30 @@ local.get $1 i32.store offset=68 local.get $1 - local.get $5 + local.get $3 call $~lib/string/String.__concat - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=60 local.get $1 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer i32.const 5072 i32.store offset=64 - local.get $2 + local.get $1 i32.const 5072 call $~lib/string/String.__concat - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=52 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $6 + local.tee $5 i64.const 86400000 i64.const 0 - local.get $6 + local.get $5 i64.const 0 i64.lt_s select @@ -5581,47 +5691,45 @@ i32.const 3600000 i32.div_s call $~lib/number/I32#toString - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=60 local.get $1 + i32.store offset=60 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=68 - local.get $2 + local.get $1 i32.const 2 call $~lib/string/String#padStart local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=56 - local.get $3 + local.get $4 local.get $1 call $~lib/string/String.__concat - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=44 local.get $1 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=48 - local.get $2 + local.get $1 i32.const 3520 call $~lib/string/String.__concat - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=36 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $6 + local.tee $5 i64.const 3600000 i64.const 0 - local.get $6 + local.get $5 i64.const 0 i64.lt_s select @@ -5630,47 +5738,45 @@ i32.const 60000 i32.div_s call $~lib/number/I32#toString - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=44 local.get $1 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=52 - local.get $2 + local.get $1 i32.const 2 call $~lib/string/String#padStart local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=40 - local.get $3 + local.get $4 local.get $1 call $~lib/string/String.__concat - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store offset=28 local.get $1 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer i32.const 3520 i32.store offset=32 - local.get $2 + local.get $1 i32.const 3520 call $~lib/string/String.__concat - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $6 + local.tee $5 i64.const 60000 i64.const 0 - local.get $6 + local.get $5 i64.const 0 i64.lt_s select @@ -5679,33 +5785,31 @@ i32.const 1000 i32.div_s call $~lib/number/I32#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=28 local.get $0 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer i32.const 1872 i32.store offset=36 - local.get $1 + local.get $0 i32.const 2 call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=24 - local.get $2 + local.get $1 local.get $0 call $~lib/string/String.__concat - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store offset=20 - local.get $1 + local.get $0 i32.const 6128 call $~lib/string/String.__concat global.get $~lib/memory/__stack_pointer @@ -5836,17 +5940,17 @@ local.tee $4 i32.store offset=8 local.get $4 - local.get $0 local.get $3 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u i32.store16 - local.get $5 local.get $3 i32.const 2 i32.shl + local.get $5 i32.add local.get $4 i32.store @@ -5894,10 +5998,10 @@ local.tee $6 i32.store offset=16 local.get $6 - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $8 call $~lib/memory/memory.copy @@ -5951,10 +6055,10 @@ local.tee $1 i32.store offset=4 local.get $1 - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $2 call $~lib/memory/memory.copy @@ -6078,10 +6182,9 @@ local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $2 i32.const 3520 i32.store - local.get $2 + global.get $~lib/memory/__stack_pointer local.get $0 i32.const 3520 call $~lib/string/String#split @@ -6244,10 +6347,9 @@ ) (func $start:std/date (local $0 i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) + (local $2 i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 36 i32.sub @@ -6288,15 +6390,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.eqz i32.eqz if @@ -6315,15 +6417,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.eqz i32.eqz if @@ -6342,15 +6444,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.eqz i32.eqz if @@ -6369,15 +6471,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.const 631152000000 i64.ne if @@ -6396,15 +6498,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.const -65007360000000 i64.ne if @@ -6423,15 +6525,15 @@ i32.const 0 i32.const 1 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.const 1541847600001 i64.ne if @@ -6450,15 +6552,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.const 8640000000000000 i64.ne if @@ -6578,10 +6680,10 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 86400000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6603,10 +6705,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 3600000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6628,10 +6730,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 60000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6653,10 +6755,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 1000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6717,10 +6819,10 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 86400000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6742,10 +6844,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 3600000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6767,10 +6869,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 60000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6792,10 +6894,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 1000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6820,10 +6922,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 1000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6846,10 +6948,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 1000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6872,10 +6974,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 1000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6928,10 +7030,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 1000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -6964,10 +7066,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 1000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7002,10 +7104,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 60000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7030,10 +7132,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 60000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7058,10 +7160,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 60000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7118,10 +7220,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 3600000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7146,10 +7248,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 3600000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7174,10 +7276,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 3600000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7234,10 +7336,10 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 86400000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7262,10 +7364,10 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 86400000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7290,10 +7392,10 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 86400000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7455,10 +7557,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 3600000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7480,10 +7582,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 60000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7505,10 +7607,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 1000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -7662,23 +7764,20 @@ global.get $~lib/memory/__stack_pointer i64.const 1467763200000 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.load - local.get $1 + local.get $2 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 - i32.const 0 - i32.ge_s - local.set $3 - local.get $1 + local.set $0 + local.get $2 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u @@ -7687,7 +7786,10 @@ local.get $0 i32.const 3 i32.sub - local.get $3 + local.get $0 + i32.const 0 + i32.ge_s + local.tee $2 select i32.const 4 i32.div_s @@ -7695,7 +7797,7 @@ local.get $0 i32.const 99 i32.sub - local.get $3 + local.get $2 select i32.const 100 i32.div_s @@ -7704,7 +7806,7 @@ local.get $0 i32.const 399 i32.sub - local.get $3 + local.get $2 select i32.const 400 i32.div_s @@ -7735,23 +7837,20 @@ global.get $~lib/memory/__stack_pointer i64.const 1467763199999 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $1 + local.get $2 i32.load - local.get $1 + local.get $2 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 - i32.const 0 - i32.ge_s - local.set $3 - local.get $1 + local.set $0 + local.get $2 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u @@ -7760,7 +7859,10 @@ local.get $0 i32.const 3 i32.sub - local.get $3 + local.get $0 + i32.const 0 + i32.ge_s + local.tee $2 select i32.const 4 i32.div_s @@ -7768,7 +7870,7 @@ local.get $0 i32.const 99 i32.sub - local.get $3 + local.get $2 select i32.const 100 i32.div_s @@ -7777,7 +7879,7 @@ local.get $0 i32.const 399 i32.sub - local.get $3 + local.get $2 select i32.const 400 i32.div_s @@ -7808,23 +7910,20 @@ global.get $~lib/memory/__stack_pointer i64.const 1467849599999 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store offset=12 - local.get $1 + local.get $2 i32.load - local.get $1 + local.get $2 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 - i32.const 0 - i32.ge_s - local.set $3 - local.get $1 + local.set $0 + local.get $2 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u @@ -7833,7 +7932,10 @@ local.get $0 i32.const 3 i32.sub - local.get $3 + local.get $0 + i32.const 0 + i32.ge_s + local.tee $2 select i32.const 4 i32.div_s @@ -7841,7 +7943,7 @@ local.get $0 i32.const 99 i32.sub - local.get $3 + local.get $2 select i32.const 100 i32.div_s @@ -7850,7 +7952,7 @@ local.get $0 i32.const 399 i32.sub - local.get $3 + local.get $2 select i32.const 400 i32.div_s @@ -7881,23 +7983,20 @@ global.get $~lib/memory/__stack_pointer i64.const 1467849600000 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store offset=16 - local.get $1 + local.get $2 i32.load - local.get $1 + local.get $2 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 - i32.const 0 - i32.ge_s - local.set $3 - local.get $1 + local.set $0 + local.get $2 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u @@ -7906,7 +8005,10 @@ local.get $0 i32.const 3 i32.sub - local.get $3 + local.get $0 + i32.const 0 + i32.ge_s + local.tee $2 select i32.const 4 i32.div_s @@ -7914,7 +8016,7 @@ local.get $0 i32.const 99 i32.sub - local.get $3 + local.get $2 select i32.const 100 i32.div_s @@ -7923,7 +8025,7 @@ local.get $0 i32.const 399 i32.sub - local.get $3 + local.get $2 select i32.const 400 i32.div_s @@ -7954,23 +8056,20 @@ global.get $~lib/memory/__stack_pointer i64.const 1468022400000 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store offset=20 - local.get $1 + local.get $2 i32.load - local.get $1 + local.get $2 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 - i32.const 0 - i32.ge_s - local.set $3 - local.get $1 + local.set $0 + local.get $2 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u @@ -7979,7 +8078,10 @@ local.get $0 i32.const 3 i32.sub - local.get $3 + local.get $0 + i32.const 0 + i32.ge_s + local.tee $2 select i32.const 4 i32.div_s @@ -7987,7 +8089,7 @@ local.get $0 i32.const 99 i32.sub - local.get $3 + local.get $2 select i32.const 100 i32.div_s @@ -7996,7 +8098,7 @@ local.get $0 i32.const 399 i32.sub - local.get $3 + local.get $2 select i32.const 400 i32.div_s @@ -8027,23 +8129,20 @@ global.get $~lib/memory/__stack_pointer i64.const 1468022399999 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store offset=24 - local.get $1 + local.get $2 i32.load - local.get $1 + local.get $2 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 - i32.const 0 - i32.ge_s - local.set $3 - local.get $1 + local.set $0 + local.get $2 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u @@ -8052,7 +8151,10 @@ local.get $0 i32.const 3 i32.sub - local.get $3 + local.get $0 + i32.const 0 + i32.ge_s + local.tee $2 select i32.const 4 i32.div_s @@ -8060,7 +8162,7 @@ local.get $0 i32.const 99 i32.sub - local.get $3 + local.get $2 select i32.const 100 i32.div_s @@ -8069,7 +8171,7 @@ local.get $0 i32.const 399 i32.sub - local.get $3 + local.get $2 select i32.const 400 i32.div_s @@ -8100,23 +8202,20 @@ global.get $~lib/memory/__stack_pointer i64.const 1468108799999 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.load - local.get $1 + local.get $2 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 - i32.const 0 - i32.ge_s - local.set $3 - local.get $1 + local.set $0 + local.get $2 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u @@ -8125,7 +8224,10 @@ local.get $0 i32.const 3 i32.sub - local.get $3 + local.get $0 + i32.const 0 + i32.ge_s + local.tee $2 select i32.const 4 i32.div_s @@ -8133,7 +8235,7 @@ local.get $0 i32.const 99 i32.sub - local.get $3 + local.get $2 select i32.const 100 i32.div_s @@ -8142,7 +8244,7 @@ local.get $0 i32.const 399 i32.sub - local.get $3 + local.get $2 select i32.const 400 i32.div_s @@ -8173,23 +8275,20 @@ global.get $~lib/memory/__stack_pointer i64.const 1468108800000 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.load - local.get $1 + local.get $2 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 - i32.const 0 - i32.ge_s - local.set $3 - local.get $1 + local.set $0 + local.get $2 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u @@ -8198,7 +8297,10 @@ local.get $0 i32.const 3 i32.sub - local.get $3 + local.get $0 + i32.const 0 + i32.ge_s + local.tee $2 select i32.const 4 i32.div_s @@ -8206,7 +8308,7 @@ local.get $0 i32.const 99 i32.sub - local.get $3 + local.get $2 select i32.const 100 i32.div_s @@ -8215,7 +8317,7 @@ local.get $0 i32.const 399 i32.sub - local.get $3 + local.get $2 select i32.const 400 i32.div_s @@ -8419,10 +8521,9 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store offset=32 local.get $0 @@ -8446,10 +8547,9 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3696 i32.store offset=32 local.get $0 @@ -8473,10 +8573,9 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3776 i32.store offset=32 local.get $0 @@ -8500,10 +8599,9 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3856 i32.store offset=32 local.get $0 @@ -8527,10 +8625,9 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3936 i32.store offset=32 local.get $0 @@ -8554,10 +8651,9 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4016 i32.store offset=32 local.get $0 @@ -8581,10 +8677,9 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4096 i32.store offset=32 local.get $0 @@ -8608,10 +8703,9 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4176 i32.store offset=32 local.get $0 @@ -8635,10 +8729,9 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4256 i32.store offset=32 local.get $0 @@ -8662,10 +8755,9 @@ call $~lib/date/Date#toDateString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5104 i32.store offset=32 local.get $0 @@ -8689,10 +8781,9 @@ call $~lib/date/Date#toDateString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5168 i32.store offset=32 local.get $0 @@ -8716,10 +8807,9 @@ call $~lib/date/Date#toDateString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5232 i32.store offset=32 local.get $0 @@ -8743,10 +8833,9 @@ call $~lib/date/Date#toTimeString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5296 i32.store offset=32 local.get $0 @@ -8770,10 +8859,9 @@ call $~lib/date/Date#toTimeString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5344 i32.store offset=32 local.get $0 @@ -8797,10 +8885,9 @@ call $~lib/date/Date#toUTCString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6160 i32.store offset=32 local.get $0 @@ -8824,10 +8911,9 @@ call $~lib/date/Date#toUTCString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6240 i32.store offset=32 local.get $0 @@ -8851,10 +8937,9 @@ call $~lib/date/Date#toUTCString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=28 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 6320 i32.store offset=32 local.get $0 @@ -9150,7 +9235,7 @@ global.get $~lib/memory/__stack_pointer i64.const 8640000000000000 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store local.get $0 i64.load offset=16 @@ -9164,7 +9249,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.load offset=16 i64.const 8640000000000000 i64.ne @@ -9188,7 +9273,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load i32.const 275760 i32.ne @@ -9212,7 +9297,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=4 i32.const 9 i32.ne @@ -9236,7 +9321,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=8 i32.const 13 i32.ne @@ -9270,14 +9355,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store offset=28 - local.get $1 + local.get $2 i32.const 7280 i32.store offset=32 local.get $0 @@ -9295,7 +9380,7 @@ global.get $~lib/memory/__stack_pointer i64.const 8639999999999999 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer i64.const -8639999999999999 @@ -9342,10 +9427,10 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 86400000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -9365,10 +9450,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 3600000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -9388,10 +9473,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 60000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -9411,10 +9496,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 i64.const 1000 i64.const 0 - local.get $2 + local.get $1 i64.const 0 i64.lt_s select @@ -9430,17 +9515,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/date/Date#toISOString - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer local.tee $3 - local.get $1 + local.get $2 i32.store offset=28 local.get $3 i32.const 7360 i32.store offset=32 - local.get $1 + local.get $2 i32.const 7360 call $~lib/string/String.__eq i32.eqz @@ -9456,10 +9541,10 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store offset=28 - local.get $1 + local.get $2 i32.const 7440 i32.store offset=32 local.get $0 @@ -9599,7 +9684,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $3 + local.tee $2 local.get $0 i32.const 20 i32.sub @@ -9608,11 +9693,11 @@ i32.shr_u i32.const 1 i32.shl - local.tee $5 + local.tee $6 local.get $1 i32.const 1 i32.shl - local.tee $2 + local.tee $1 i32.gt_u select i32.eqz @@ -9625,70 +9710,70 @@ return end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $3 local.get $2 - local.get $5 + local.get $1 + local.get $6 i32.sub - local.tee $2 + local.tee $4 i32.lt_u if - local.get $3 local.get $2 + local.get $4 i32.const 2 i32.sub - local.get $3 + local.get $2 i32.div_u i32.mul - local.tee $6 + local.tee $1 local.set $7 loop $while-continue|0 - local.get $4 - local.get $7 - i32.lt_u + local.get $1 + local.get $5 + i32.gt_u if - local.get $1 - local.get $4 + local.get $3 + local.get $5 i32.add i32.const 1872 - local.get $3 + local.get $2 call $~lib/memory/memory.copy - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end - local.get $1 - local.get $6 + local.get $3 + local.get $7 i32.add i32.const 1872 - local.get $2 - local.get $6 + local.get $4 + local.get $7 i32.sub call $~lib/memory/memory.copy else - local.get $1 + local.get $3 i32.const 1872 - local.get $2 + local.get $4 call $~lib/memory/memory.copy end - local.get $1 - local.get $2 + local.get $3 + local.get $4 i32.add local.get $0 - local.get $5 + local.get $6 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -9745,22 +9830,23 @@ local.tee $2 local.get $2 local.get $3 - i32.lt_s + i32.gt_s select i32.const 1 i32.shl - local.tee $4 + local.set $4 local.get $3 local.get $2 local.get $2 local.get $3 - i32.gt_s + i32.lt_s select i32.const 1 i32.shl - local.tee $2 - i32.sub local.tee $3 + local.get $4 + i32.sub + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -9771,12 +9857,12 @@ return end i32.const 0 - local.get $4 local.get $1 i32.const 1 i32.shl + local.get $3 i32.eq - local.get $2 + local.get $4 select if global.get $~lib/memory/__stack_pointer @@ -9787,16 +9873,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store local.get $1 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $3 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9880,10 +9966,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1392 i32.const 6496 diff --git a/tests/compiler/std/hash.optimized.wat b/tests/compiler/std/hash.optimized.wat index 72f358b8ca..656711ac9a 100644 --- a/tests/compiler/std/hash.optimized.wat +++ b/tests/compiler/std/hash.optimized.wat @@ -67,44 +67,44 @@ local.get $7 i32.le_u if - local.get $2 local.get $1 i32.load i32.const -2048144777 i32.mul + local.get $2 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $2 - local.get $4 local.get $1 i32.load offset=4 i32.const -2048144777 i32.mul + local.get $4 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $4 - local.get $6 local.get $1 i32.load offset=8 i32.const -2048144777 i32.mul + local.get $6 i32.add i32.const 13 i32.rotl i32.const -1640531535 i32.mul local.set $6 - local.get $5 local.get $1 i32.load offset=12 i32.const -2048144777 i32.mul + local.get $5 i32.add i32.const 13 i32.rotl @@ -118,7 +118,6 @@ br $while-continue|0 end end - local.get $3 local.get $2 i32.const 1 i32.rotl @@ -134,6 +133,7 @@ i32.const 18 i32.rotl i32.add + local.get $3 i32.add else local.get $3 @@ -152,11 +152,11 @@ local.get $4 i32.le_u if - local.get $2 local.get $1 i32.load i32.const -1028477379 i32.mul + local.get $2 i32.add i32.const 17 i32.rotl @@ -179,11 +179,11 @@ local.get $1 i32.gt_u if - local.get $2 local.get $1 i32.load8_u i32.const 374761393 i32.mul + local.get $2 i32.add i32.const 11 i32.rotl diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index a2dfa0240d..4f9e559928 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -109,8 +109,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -170,11 +170,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -188,10 +188,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1760 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -228,11 +228,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -312,19 +312,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -390,22 +390,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -653,13 +655,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -696,11 +701,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -724,11 +729,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1111,8 +1116,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1478,13 +1482,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1499,7 +1503,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1536,7 +1541,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1545,6 +1549,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1605,12 +1610,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1392 @@ -1623,8 +1628,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1638,7 +1644,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1647,15 +1653,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1670,22 +1676,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1695,37 +1702,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1733,7 +1741,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1877,8 +1885,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $6 - local.get $1 local.get $8 i32.extend8_s i32.const -1028477379 @@ -1908,9 +1914,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -1973,22 +1981,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -2045,6 +2053,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2089,17 +2099,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2124,9 +2146,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2204,27 +2230,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2236,7 +2270,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2246,8 +2282,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2255,10 +2295,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2266,10 +2310,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2277,7 +2325,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2303,19 +2351,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2327,7 +2379,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2337,8 +2391,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2346,10 +2404,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2357,10 +2419,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2368,7 +2434,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2414,7 +2480,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2424,8 +2492,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2433,10 +2505,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2444,10 +2520,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2455,7 +2535,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2482,145 +2562,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2631,73 +2743,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2708,37 +2836,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2749,19 +2885,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2780,19 +2920,19 @@ (local $7 i32) (local $8 i32) (local $9 i32) - local.get $1 local.get $0 i32.load offset=8 local.tee $8 local.get $2 i32.shr_u - i32.gt_u + local.get $1 + i32.lt_u if - local.get $1 i32.const 1073741820 local.get $2 i32.shr_u - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1456 i32.const 1728 @@ -3083,7 +3223,6 @@ end ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -3104,12 +3243,13 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 0 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $1 @@ -3120,7 +3260,6 @@ i32.store8 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -3141,12 +3280,13 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -3260,8 +3400,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $6 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -3290,9 +3428,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -3523,16 +3663,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3541,61 +3681,61 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $5 i32.const 0 i32.store - local.get $16 + local.get $5 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $5 i32.store - local.get $15 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $0 i32.store - local.get $15 - local.get $16 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $15 + local.get $5 i32.const 3 i32.store offset=4 - local.get $15 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $0 i32.store offset=8 - local.get $15 - local.get $16 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $15 + local.get $5 i32.const 4 i32.store offset=12 - local.get $15 + local.get $5 i32.const 0 i32.store offset=16 - local.get $15 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $15 + local.get $4 + local.get $5 i32.store loop $for-loop|1 - local.get $4 + local.get $2 i32.extend8_s i32.const 100 i32.lt_s if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -3605,62 +3745,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load8_u local.get $4 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 if i32.const 0 i32.const 1568 @@ -3669,19 +3809,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 - local.get $4 + local.get $5 + local.get $2 + local.get $2 i32.extend8_s - local.tee $16 + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $16 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3690,62 +3830,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load8_u local.get $4 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -3755,10 +3895,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.extend8_s i32.const 10 i32.add @@ -3771,14 +3911,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -3791,18 +3931,18 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|3 - local.get $4 + local.get $2 i32.extend8_s i32.const 100 i32.lt_s if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -3812,62 +3952,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load8_u local.get $4 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -3877,10 +4017,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.extend8_s i32.const 10 i32.add @@ -3893,19 +4033,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 - local.get $4 + local.get $5 + local.get $2 + local.get $2 i32.extend8_s - local.tee $16 + local.tee $4 i32.const 20 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $16 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3914,62 +4054,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load8_u local.get $4 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -3979,10 +4119,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.extend8_s i32.const 20 i32.add @@ -3995,14 +4135,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|3 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -4015,7 +4155,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4024,17 +4165,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $13 + local.tee $3 i32.const 0 i32.store - local.get $15 + local.get $5 i32.load offset=8 - local.set $3 - local.get $15 - i32.load offset=16 - local.tee $16 local.set $11 - local.get $13 + local.get $5 + i32.load offset=16 + local.tee $12 + local.set $4 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -4043,31 +4184,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $2 i32.store - local.get $14 + local.get $2 i32.const 0 i32.store - local.get $14 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $14 + local.get $2 i32.const 0 i32.store offset=4 - local.get $14 + local.get $2 i32.const 0 i32.store offset=8 - local.get $14 + local.get $2 i32.const 0 i32.store offset=12 - local.get $11 + local.get $4 i32.const 1073741820 i32.gt_u if @@ -4079,51 +4220,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $4 i32.const 8 - local.get $11 + local.get $4 i32.const 8 i32.gt_u select - local.tee $4 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store offset=4 - local.get $10 - local.get $4 + local.get $0 + local.get $8 call $~lib/memory/memory.fill - local.get $14 - local.get $10 + local.get $2 + local.get $0 i32.store - local.get $14 - local.get $10 + local.get $2 + local.get $0 call $~lib/rt/itcms/__link - local.get $14 - local.get $10 + local.get $2 + local.get $0 i32.store offset=4 - local.get $14 - local.get $4 + local.get $2 + local.get $8 i32.store offset=8 - local.get $14 - local.get $11 + local.get $2 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 - local.get $14 + local.get $3 + local.get $2 i32.store loop $for-loop|0 + local.get $7 local.get $12 - local.get $16 i32.lt_s if - local.get $3 - local.get $12 + local.get $7 i32.const 12 i32.mul + local.get $11 i32.add local.tee $4 i32.load offset=8 @@ -4131,7 +4272,7 @@ i32.and i32.eqz if - local.get $14 + local.get $2 local.get $1 local.get $4 i32.load8_s @@ -4141,35 +4282,35 @@ i32.add local.set $1 end - local.get $12 + local.get $7 i32.const 1 i32.add - local.set $12 + local.set $7 br $for-loop|0 end end - local.get $14 + local.get $2 local.get $1 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $14 + local.get $2 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $14 + local.get $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $5 call $~lib/map/Map#values - local.tee $6 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $16 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -4185,58 +4326,56 @@ i32.const 24 i32.const 6 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $4 i32.store - local.get $13 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store - local.get $13 local.get $4 + local.get $0 call $~lib/rt/itcms/__link - local.get $13 + local.get $4 i32.const 3 i32.store offset=4 - local.get $13 + local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $13 local.get $4 + local.get $0 call $~lib/rt/itcms/__link - local.get $13 + local.get $4 i32.const 4 i32.store offset=12 - local.get $13 + local.get $4 i32.const 0 i32.store offset=16 - local.get $13 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 - local.get $13 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $11 i32.store offset=16 loop $for-loop|4 - local.get $2 - local.get $14 + local.get $1 i32.load offset=12 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $2 - local.tee $3 - local.get $14 + local.get $1 i32.load offset=12 - i32.ge_u + local.get $6 + i32.le_u if i32.const 1248 i32.const 1728 @@ -4245,19 +4384,19 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $14 + local.get $6 + local.get $1 i32.load offset=4 i32.add i32.load8_s local.set $2 + local.get $13 local.get $6 - local.get $3 call $~lib/array/Array#__get - local.set $7 - local.get $15 + local.set $12 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 local.get $2 i32.extend8_s @@ -4269,24 +4408,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -4300,7 +4439,7 @@ if local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -4314,7 +4453,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -4334,14 +4473,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $7 + local.get $12 i32.const 20 i32.sub - local.tee $16 + local.tee $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -4351,62 +4490,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $12 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $12 + local.get $0 if - local.get $12 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $12 + local.get $0 i32.load8_u - local.get $16 + local.get $3 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $4 + local.get $8 i32.const -2 i32.and - local.set $12 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $12 + local.set $0 end - local.get $12 + local.get $0 i32.eqz if i32.const 0 @@ -4427,9 +4566,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $13 + local.get $4 i32.load local.get $2 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4439,79 +4579,79 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 15 i32.shr_u + local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 13 i32.shr_u + local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 16 i32.shr_u + local.get $7 i32.xor - local.tee $5 - local.get $13 + local.tee $14 + local.get $4 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $1 + local.get $7 if - local.get $1 + local.get $7 i32.load offset=4 - local.tee $4 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $7 i32.load8_u - local.get $2 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $8 i32.const -2 i32.and - local.set $1 + local.set $7 br $while-continue|015 end end i32.const 0 - local.set $1 + local.set $7 end - local.get $1 + local.get $7 if - local.get $1 + local.get $7 local.get $2 i32.store8 offset=1 else - local.get $13 + local.get $4 i32.load offset=16 - local.get $13 + local.get $4 i32.load offset=12 i32.eq if - local.get $13 + local.get $4 i32.load offset=20 - local.get $13 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -4519,17 +4659,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $13 + local.get $4 i32.load offset=4 else - local.get $13 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $16 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4539,66 +4679,64 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store - local.get $4 - local.get $16 + local.get $0 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $11 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $13 + local.get $4 i32.load offset=8 - local.tee $9 - local.get $13 + local.tee $8 + local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $10 - local.get $4 + local.set $16 + local.get $3 local.set $0 loop $while-continue|016 - local.get $9 - local.get $10 + local.get $8 + local.get $16 i32.ne if - local.get $9 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $9 + local.get $8 i32.load8_s - local.tee $12 + local.tee $9 i32.store8 local.get $0 - local.get $9 + local.get $8 i32.load8_s offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - local.get $16 - local.get $12 + local.get $9 i32.extend8_s i32.const -1028477379 i32.mul @@ -4608,33 +4746,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor + local.get $7 i32.and i32.const 2 i32.shl + local.get $10 i32.add - local.tee $12 + local.tee $9 i32.load i32.store offset=4 - local.get $12 + local.get $9 local.get $0 i32.store local.get $0 @@ -4642,33 +4782,33 @@ i32.add local.set $0 end - local.get $9 + local.get $8 i32.const 8 i32.add - local.set $9 + local.set $8 br $while-continue|016 end end - local.get $13 - local.get $1 + local.get $4 + local.get $10 i32.store - local.get $13 - local.get $1 + local.get $4 + local.get $10 call $~lib/rt/itcms/__link - local.get $13 - local.get $16 + local.get $4 + local.get $7 i32.store offset=4 - local.get $13 local.get $4 + local.get $3 i32.store offset=8 - local.get $13 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $13 - local.get $11 + local.get $4 + local.get $15 i32.store offset=12 - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4677,40 +4817,40 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $0 i32.store - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $4 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $16 - local.get $4 + local.get $7 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $4 + local.tee $0 local.get $2 i32.store8 - local.get $4 + local.get $0 local.get $2 i32.store8 offset=1 - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 + local.get $0 local.get $4 - local.get $13 i32.load - local.get $5 - local.get $13 + local.get $4 i32.load offset=4 + local.get $14 i32.and i32.const 2 i32.shl @@ -4719,28 +4859,28 @@ i32.load i32.store offset=4 local.get $2 - local.get $4 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $7 + local.get $11 + local.get $12 i32.const 20 i32.sub local.tee $2 local.get $2 call $~lib/map/Map#set - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|4 end end - local.get $13 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -4752,7 +4892,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -4765,18 +4905,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $6 loop $for-loop|6 - local.get $2 + local.get $6 i32.extend8_s i32.const 50 i32.lt_s if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.extend8_s i32.const -1028477379 i32.mul @@ -4786,62 +4926,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|019 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -4851,10 +4991,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#get - local.get $2 + local.get $6 i32.extend8_s i32.const 20 i32.add @@ -4867,14 +5007,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.extend8_s i32.const -1028477379 i32.mul @@ -4884,62 +5024,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|022 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -4948,14 +5088,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|6 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -4968,18 +5108,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $6 loop $for-loop|8 - local.get $2 + local.get $6 i32.extend8_s i32.const 50 i32.lt_s if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.extend8_s i32.const -1028477379 i32.mul @@ -4989,62 +5129,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|025 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -5053,19 +5193,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 - local.get $2 + local.get $5 + local.get $6 + local.get $6 i32.extend8_s - local.tee $4 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5074,62 +5214,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|028 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -5139,14 +5279,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.extend8_s i32.const -1028477379 i32.mul @@ -5156,62 +5296,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|031 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -5220,14 +5360,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|8 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -5239,9 +5379,9 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $5 call $~lib/map/Map#clear - local.get $15 + local.get $5 i32.load offset=20 if i32.const 0 @@ -5345,11 +5485,7 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $6 - local.get $1 local.get $8 - i32.const 255 - i32.and i32.const -1028477379 i32.mul i32.const 374761394 @@ -5377,9 +5513,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -5443,22 +5581,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -5665,16 +5803,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5683,62 +5821,62 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $5 i32.const 0 i32.store - local.get $16 + local.get $5 i32.const 24 i32.const 8 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $5 i32.store - local.get $15 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $0 i32.store - local.get $15 - local.get $16 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $15 + local.get $5 i32.const 3 i32.store offset=4 - local.get $15 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $0 i32.store offset=8 - local.get $15 - local.get $16 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $15 + local.get $5 i32.const 4 i32.store offset=12 - local.get $15 + local.get $5 i32.const 0 i32.store offset=16 - local.get $15 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $15 + local.get $4 + local.get $5 i32.store loop $for-loop|1 - local.get $4 + local.get $2 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.const 255 i32.and i32.const -1028477379 @@ -5749,62 +5887,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load8_u local.get $4 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 if i32.const 0 i32.const 1568 @@ -5813,20 +5951,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 - local.get $4 + local.get $5 + local.get $2 + local.get $2 i32.const 255 i32.and - local.tee $16 + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $16 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5835,62 +5973,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load8_u local.get $4 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -5900,10 +6038,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.const 255 i32.and i32.const 10 @@ -5917,14 +6055,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -5937,19 +6075,19 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|3 - local.get $4 + local.get $2 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.const 255 i32.and i32.const -1028477379 @@ -5960,62 +6098,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load8_u local.get $4 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -6025,10 +6163,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.const 255 i32.and i32.const 10 @@ -6042,20 +6180,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 - local.get $4 + local.get $5 + local.get $2 + local.get $2 i32.const 255 i32.and - local.tee $16 + local.tee $4 i32.const 20 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $16 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6064,62 +6202,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load8_u local.get $4 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -6129,10 +6267,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.const 255 i32.and i32.const 20 @@ -6146,14 +6284,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|3 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -6166,7 +6304,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6175,17 +6314,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $13 + local.tee $3 i32.const 0 i32.store - local.get $15 + local.get $5 i32.load offset=8 - local.set $3 - local.get $15 - i32.load offset=16 - local.tee $16 local.set $11 - local.get $13 + local.get $5 + i32.load offset=16 + local.tee $12 + local.set $4 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -6194,31 +6333,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i32.const 16 i32.const 9 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $2 i32.store - local.get $14 + local.get $2 i32.const 0 i32.store - local.get $14 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $14 + local.get $2 i32.const 0 i32.store offset=4 - local.get $14 + local.get $2 i32.const 0 i32.store offset=8 - local.get $14 + local.get $2 i32.const 0 i32.store offset=12 - local.get $11 + local.get $4 i32.const 1073741820 i32.gt_u if @@ -6230,51 +6369,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $4 i32.const 8 - local.get $11 + local.get $4 i32.const 8 i32.gt_u select - local.tee $4 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store offset=4 - local.get $10 - local.get $4 + local.get $0 + local.get $8 call $~lib/memory/memory.fill - local.get $14 - local.get $10 + local.get $2 + local.get $0 i32.store - local.get $14 - local.get $10 + local.get $2 + local.get $0 call $~lib/rt/itcms/__link - local.get $14 - local.get $10 + local.get $2 + local.get $0 i32.store offset=4 - local.get $14 - local.get $4 + local.get $2 + local.get $8 i32.store offset=8 - local.get $14 - local.get $11 + local.get $2 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 - local.get $14 + local.get $3 + local.get $2 i32.store loop $for-loop|0 + local.get $7 local.get $12 - local.get $16 i32.lt_s if - local.get $3 - local.get $12 + local.get $7 i32.const 12 i32.mul + local.get $11 i32.add local.tee $4 i32.load offset=8 @@ -6282,7 +6421,7 @@ i32.and i32.eqz if - local.get $14 + local.get $2 local.get $1 local.get $4 i32.load8_u @@ -6292,35 +6431,35 @@ i32.add local.set $1 end - local.get $12 + local.get $7 i32.const 1 i32.add - local.set $12 + local.set $7 br $for-loop|0 end end - local.get $14 + local.get $2 local.get $1 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $14 + local.get $2 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $14 + local.get $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $5 call $~lib/map/Map#values - local.tee $6 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $16 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -6336,58 +6475,56 @@ i32.const 24 i32.const 10 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $4 i32.store - local.get $13 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store - local.get $13 local.get $4 + local.get $0 call $~lib/rt/itcms/__link - local.get $13 + local.get $4 i32.const 3 i32.store offset=4 - local.get $13 + local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $13 local.get $4 + local.get $0 call $~lib/rt/itcms/__link - local.get $13 + local.get $4 i32.const 4 i32.store offset=12 - local.get $13 + local.get $4 i32.const 0 i32.store offset=16 - local.get $13 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 - local.get $13 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $11 i32.store offset=16 loop $for-loop|4 - local.get $2 - local.get $14 + local.get $1 i32.load offset=12 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $2 - local.tee $3 - local.get $14 + local.get $1 i32.load offset=12 - i32.ge_u + local.get $6 + i32.le_u if i32.const 1248 i32.const 1728 @@ -6396,23 +6533,21 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $14 + local.get $6 + local.get $1 i32.load offset=4 i32.add i32.load8_u local.set $2 + local.get $13 local.get $6 - local.get $3 call $~lib/array/Array#__get - local.set $7 - local.get $15 + local.set $12 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 local.get $2 - i32.const 255 - i32.and i32.const -1028477379 i32.mul i32.const 374761394 @@ -6421,24 +6556,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -6452,7 +6587,7 @@ if local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -6466,7 +6601,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -6486,14 +6621,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $7 + local.get $12 i32.const 20 i32.sub - local.tee $16 + local.tee $3 i32.const 255 i32.and i32.const -1028477379 @@ -6504,62 +6639,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $12 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $12 + local.get $0 if - local.get $12 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $12 + local.get $0 i32.load8_u - local.get $16 + local.get $3 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $4 + local.get $8 i32.const -2 i32.and - local.set $12 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $12 + local.set $0 end - local.get $12 + local.get $0 i32.eqz if i32.const 0 @@ -6580,11 +6715,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $13 + local.get $4 i32.load local.get $2 - i32.const 255 - i32.and + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6593,79 +6727,79 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 15 i32.shr_u + local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 13 i32.shr_u + local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 16 i32.shr_u + local.get $7 i32.xor - local.tee $5 - local.get $13 + local.tee $14 + local.get $4 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $1 + local.get $7 if - local.get $1 + local.get $7 i32.load offset=4 - local.tee $4 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $7 i32.load8_u - local.get $2 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $8 i32.const -2 i32.and - local.set $1 + local.set $7 br $while-continue|015 end end i32.const 0 - local.set $1 + local.set $7 end - local.get $1 + local.get $7 if - local.get $1 + local.get $7 local.get $2 i32.store8 offset=1 else - local.get $13 + local.get $4 i32.load offset=16 - local.get $13 + local.get $4 i32.load offset=12 i32.eq if - local.get $13 + local.get $4 i32.load offset=20 - local.get $13 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -6673,17 +6807,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $13 + local.get $4 i32.load offset=4 else - local.get $13 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $16 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6693,68 +6827,64 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store - local.get $4 - local.get $16 + local.get $0 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $11 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $13 + local.get $4 i32.load offset=8 - local.tee $9 - local.get $13 + local.tee $8 + local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $10 - local.get $4 + local.set $16 + local.get $3 local.set $0 loop $while-continue|016 - local.get $9 - local.get $10 + local.get $8 + local.get $16 i32.ne if - local.get $9 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $9 + local.get $8 i32.load8_u - local.tee $12 + local.tee $9 i32.store8 local.get $0 - local.get $9 + local.get $8 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - local.get $16 - local.get $12 - i32.const 255 - i32.and + local.get $9 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6763,33 +6893,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor + local.get $7 i32.and i32.const 2 i32.shl + local.get $10 i32.add - local.tee $12 + local.tee $9 i32.load i32.store offset=4 - local.get $12 + local.get $9 local.get $0 i32.store local.get $0 @@ -6797,33 +6929,33 @@ i32.add local.set $0 end - local.get $9 + local.get $8 i32.const 8 i32.add - local.set $9 + local.set $8 br $while-continue|016 end end - local.get $13 - local.get $1 + local.get $4 + local.get $10 i32.store - local.get $13 - local.get $1 + local.get $4 + local.get $10 call $~lib/rt/itcms/__link - local.get $13 - local.get $16 + local.get $4 + local.get $7 i32.store offset=4 - local.get $13 local.get $4 + local.get $3 i32.store offset=8 - local.get $13 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $13 - local.get $11 + local.get $4 + local.get $15 i32.store offset=12 - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -6832,40 +6964,40 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $0 i32.store - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $4 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $16 - local.get $4 + local.get $7 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $4 + local.tee $0 local.get $2 i32.store8 - local.get $4 + local.get $0 local.get $2 i32.store8 offset=1 - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 + local.get $0 local.get $4 - local.get $13 i32.load - local.get $5 - local.get $13 + local.get $4 i32.load offset=4 + local.get $14 i32.and i32.const 2 i32.shl @@ -6874,28 +7006,28 @@ i32.load i32.store offset=4 local.get $2 - local.get $4 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $7 + local.get $11 + local.get $12 i32.const 20 i32.sub local.tee $2 local.get $2 call $~lib/map/Map#set - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|4 end end - local.get $13 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -6907,7 +7039,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -6920,19 +7052,19 @@ unreachable end i32.const 0 - local.set $2 + local.set $6 loop $for-loop|6 - local.get $2 + local.get $6 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.const 255 i32.and i32.const -1028477379 @@ -6943,62 +7075,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|019 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -7008,10 +7140,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#get - local.get $2 + local.get $6 i32.const 255 i32.and i32.const 20 @@ -7025,14 +7157,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.const 255 i32.and i32.const -1028477379 @@ -7043,62 +7175,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|022 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -7107,14 +7239,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|6 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -7127,19 +7259,19 @@ unreachable end i32.const 0 - local.set $2 + local.set $6 loop $for-loop|8 - local.get $2 + local.get $6 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.const 255 i32.and i32.const -1028477379 @@ -7150,62 +7282,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|025 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -7214,20 +7346,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 - local.get $2 + local.get $5 + local.get $6 + local.get $6 i32.const 255 i32.and - local.tee $4 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761394 @@ -7236,62 +7368,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|028 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -7301,14 +7433,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.const 255 i32.and i32.const -1028477379 @@ -7319,62 +7451,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|031 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -7383,14 +7515,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|8 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -7402,9 +7534,9 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $5 call $~lib/map/Map#clear - local.get $15 + local.get $5 i32.load offset=20 if i32.const 0 @@ -7508,8 +7640,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $6 - local.get $1 local.get $8 i32.extend16_s i32.const -1028477379 @@ -7539,9 +7669,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -7604,22 +7736,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -7673,7 +7805,6 @@ i32.load offset=4 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -7694,12 +7825,13 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 1 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -7864,16 +7996,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7882,61 +8014,61 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $5 i32.const 0 i32.store - local.get $16 + local.get $5 i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $5 i32.store - local.get $15 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $0 i32.store - local.get $15 - local.get $16 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $15 + local.get $5 i32.const 3 i32.store offset=4 - local.get $15 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $0 i32.store offset=8 - local.get $15 - local.get $16 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $15 + local.get $5 i32.const 4 i32.store offset=12 - local.get $15 + local.get $5 i32.const 0 i32.store offset=16 - local.get $15 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $15 + local.get $4 + local.get $5 i32.store loop $for-loop|1 - local.get $4 + local.get $2 i32.extend16_s i32.const 100 i32.lt_s if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -7946,62 +8078,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load16_u local.get $4 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 if i32.const 0 i32.const 1568 @@ -8010,19 +8142,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 - local.get $4 + local.get $5 + local.get $2 + local.get $2 i32.extend16_s - local.tee $16 + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $16 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8031,62 +8163,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load16_u local.get $4 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -8096,10 +8228,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.extend16_s i32.const 10 i32.add @@ -8112,14 +8244,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -8132,18 +8264,18 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|3 - local.get $4 + local.get $2 i32.extend16_s i32.const 100 i32.lt_s if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -8153,62 +8285,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load16_u local.get $4 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -8218,10 +8350,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.extend16_s i32.const 10 i32.add @@ -8234,19 +8366,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 - local.get $4 + local.get $5 + local.get $2 + local.get $2 i32.extend16_s - local.tee $16 + local.tee $4 i32.const 20 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $16 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8255,62 +8387,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load16_u local.get $4 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -8320,10 +8452,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.extend16_s i32.const 20 i32.add @@ -8336,14 +8468,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|3 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -8356,7 +8488,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8365,17 +8498,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $13 + local.tee $3 i32.const 0 i32.store - local.get $15 + local.get $5 i32.load offset=8 - local.set $3 - local.get $15 - i32.load offset=16 - local.tee $16 local.set $11 - local.get $13 + local.get $5 + i32.load offset=16 + local.tee $12 + local.set $4 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8384,31 +8517,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $2 i32.store - local.get $14 + local.get $2 i32.const 0 i32.store - local.get $14 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $14 + local.get $2 i32.const 0 i32.store offset=4 - local.get $14 + local.get $2 i32.const 0 i32.store offset=8 - local.get $14 + local.get $2 i32.const 0 i32.store offset=12 - local.get $11 + local.get $4 i32.const 536870910 i32.gt_u if @@ -8420,53 +8553,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $4 i32.const 8 - local.get $11 + local.get $4 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $4 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store offset=4 - local.get $10 - local.get $4 + local.get $0 + local.get $8 call $~lib/memory/memory.fill - local.get $14 - local.get $10 + local.get $2 + local.get $0 i32.store - local.get $14 - local.get $10 + local.get $2 + local.get $0 call $~lib/rt/itcms/__link - local.get $14 - local.get $10 + local.get $2 + local.get $0 i32.store offset=4 - local.get $14 - local.get $4 + local.get $2 + local.get $8 i32.store offset=8 - local.get $14 - local.get $11 + local.get $2 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 - local.get $14 + local.get $3 + local.get $2 i32.store loop $for-loop|0 + local.get $7 local.get $12 - local.get $16 i32.lt_s if - local.get $3 - local.get $12 + local.get $7 i32.const 12 i32.mul + local.get $11 i32.add local.tee $4 i32.load offset=8 @@ -8474,7 +8607,7 @@ i32.and i32.eqz if - local.get $14 + local.get $2 local.get $1 local.get $4 i32.load16_s @@ -8484,35 +8617,35 @@ i32.add local.set $1 end - local.get $12 + local.get $7 i32.const 1 i32.add - local.set $12 + local.set $7 br $for-loop|0 end end - local.get $14 + local.get $2 local.get $1 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $14 + local.get $2 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $14 + local.get $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $5 call $~lib/map/Map#values - local.tee $6 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $16 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8528,58 +8661,56 @@ i32.const 24 i32.const 13 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $4 i32.store - local.get $13 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store - local.get $13 local.get $4 + local.get $0 call $~lib/rt/itcms/__link - local.get $13 + local.get $4 i32.const 3 i32.store offset=4 - local.get $13 + local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $13 local.get $4 + local.get $0 call $~lib/rt/itcms/__link - local.get $13 + local.get $4 i32.const 4 i32.store offset=12 - local.get $13 + local.get $4 i32.const 0 i32.store offset=16 - local.get $13 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 - local.get $13 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $11 i32.store offset=16 loop $for-loop|4 - local.get $2 - local.get $14 + local.get $1 i32.load offset=12 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $2 - local.tee $3 - local.get $14 + local.get $1 i32.load offset=12 - i32.ge_u + local.get $6 + i32.le_u if i32.const 1248 i32.const 1728 @@ -8588,21 +8719,21 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $1 i32.load offset=4 - local.get $3 + local.get $6 i32.const 1 i32.shl i32.add i32.load16_s local.set $2 + local.get $13 local.get $6 - local.get $3 call $~lib/array/Array#__get - local.set $7 - local.get $15 + local.set $12 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 local.get $2 i32.extend16_s @@ -8614,24 +8745,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -8645,7 +8776,7 @@ if local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -8659,7 +8790,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -8679,14 +8810,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $7 + local.get $12 i32.const 20 i32.sub - local.tee $16 + local.tee $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -8696,62 +8827,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $12 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $12 + local.get $0 if - local.get $12 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $12 + local.get $0 i32.load16_u - local.get $16 + local.get $3 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $4 + local.get $8 i32.const -2 i32.and - local.set $12 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $12 + local.set $0 end - local.get $12 + local.get $0 i32.eqz if i32.const 0 @@ -8772,9 +8903,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $13 + local.get $4 i32.load local.get $2 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -8784,79 +8916,79 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 15 i32.shr_u + local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 13 i32.shr_u + local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 16 i32.shr_u + local.get $7 i32.xor - local.tee $5 - local.get $13 + local.tee $14 + local.get $4 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $1 + local.get $7 if - local.get $1 + local.get $7 i32.load offset=4 - local.tee $4 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $7 i32.load16_u - local.get $2 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $8 i32.const -2 i32.and - local.set $1 + local.set $7 br $while-continue|015 end end i32.const 0 - local.set $1 + local.set $7 end - local.get $1 + local.get $7 if - local.get $1 + local.get $7 local.get $2 i32.store16 offset=2 else - local.get $13 + local.get $4 i32.load offset=16 - local.get $13 + local.get $4 i32.load offset=12 i32.eq if - local.get $13 + local.get $4 i32.load offset=20 - local.get $13 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -8864,17 +8996,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $13 + local.get $4 i32.load offset=4 else - local.get $13 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $16 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8884,66 +9016,64 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store - local.get $4 - local.get $16 + local.get $0 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $11 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $13 + local.get $4 i32.load offset=8 - local.tee $9 - local.get $13 + local.tee $8 + local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $10 - local.get $4 + local.set $16 + local.get $3 local.set $0 loop $while-continue|016 - local.get $9 - local.get $10 + local.get $8 + local.get $16 i32.ne if - local.get $9 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $9 + local.get $8 i32.load16_s - local.tee $12 + local.tee $9 i32.store16 local.get $0 - local.get $9 + local.get $8 i32.load16_s offset=2 i32.store16 offset=2 local.get $0 - local.get $1 - local.get $16 - local.get $12 + local.get $9 i32.extend16_s i32.const -1028477379 i32.mul @@ -8953,33 +9083,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor + local.get $7 i32.and i32.const 2 i32.shl + local.get $10 i32.add - local.tee $12 + local.tee $9 i32.load i32.store offset=4 - local.get $12 + local.get $9 local.get $0 i32.store local.get $0 @@ -8987,33 +9119,33 @@ i32.add local.set $0 end - local.get $9 + local.get $8 i32.const 8 i32.add - local.set $9 + local.set $8 br $while-continue|016 end end - local.get $13 - local.get $1 + local.get $4 + local.get $10 i32.store - local.get $13 - local.get $1 + local.get $4 + local.get $10 call $~lib/rt/itcms/__link - local.get $13 - local.get $16 + local.get $4 + local.get $7 i32.store offset=4 - local.get $13 local.get $4 + local.get $3 i32.store offset=8 - local.get $13 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $13 - local.get $11 + local.get $4 + local.get $15 i32.store offset=12 - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -9022,40 +9154,40 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $0 i32.store - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $4 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $16 - local.get $4 + local.get $7 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $4 + local.tee $0 local.get $2 i32.store16 - local.get $4 + local.get $0 local.get $2 i32.store16 offset=2 - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 + local.get $0 local.get $4 - local.get $13 i32.load - local.get $5 - local.get $13 + local.get $4 i32.load offset=4 + local.get $14 i32.and i32.const 2 i32.shl @@ -9064,28 +9196,28 @@ i32.load i32.store offset=4 local.get $2 - local.get $4 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $7 + local.get $11 + local.get $12 i32.const 20 i32.sub local.tee $2 local.get $2 call $~lib/map/Map#set - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|4 end end - local.get $13 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -9097,7 +9229,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -9110,18 +9242,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $6 loop $for-loop|6 - local.get $2 + local.get $6 i32.extend16_s i32.const 50 i32.lt_s if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.extend16_s i32.const -1028477379 i32.mul @@ -9131,62 +9263,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|019 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -9196,10 +9328,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#get - local.get $2 + local.get $6 i32.extend16_s i32.const 20 i32.add @@ -9212,14 +9344,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.extend16_s i32.const -1028477379 i32.mul @@ -9229,62 +9361,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|022 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -9293,14 +9425,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|6 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -9313,18 +9445,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $6 loop $for-loop|8 - local.get $2 + local.get $6 i32.extend16_s i32.const 50 i32.lt_s if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.extend16_s i32.const -1028477379 i32.mul @@ -9334,62 +9466,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|025 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -9398,19 +9530,19 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 - local.get $2 + local.get $5 + local.get $6 + local.get $6 i32.extend16_s - local.tee $4 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761395 @@ -9419,62 +9551,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|028 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -9484,14 +9616,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.extend16_s i32.const -1028477379 i32.mul @@ -9501,62 +9633,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|031 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -9565,14 +9697,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|8 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -9584,9 +9716,9 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $5 call $~lib/map/Map#clear - local.get $15 + local.get $5 i32.load offset=20 if i32.const 0 @@ -9690,11 +9822,7 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $6 - local.get $1 local.get $8 - i32.const 65535 - i32.and i32.const -1028477379 i32.mul i32.const 374761395 @@ -9722,9 +9850,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -9788,22 +9918,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -10010,16 +10140,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10028,62 +10158,62 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $5 i32.const 0 i32.store - local.get $16 + local.get $5 i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $5 i32.store - local.get $15 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $0 i32.store - local.get $15 - local.get $16 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $15 + local.get $5 i32.const 3 i32.store offset=4 - local.get $15 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $16 + local.tee $0 i32.store offset=8 - local.get $15 - local.get $16 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $15 + local.get $5 i32.const 4 i32.store offset=12 - local.get $15 + local.get $5 i32.const 0 i32.store offset=16 - local.get $15 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $15 + local.get $4 + local.get $5 i32.store loop $for-loop|1 - local.get $4 + local.get $2 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.const 65535 i32.and i32.const -1028477379 @@ -10094,62 +10224,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load16_u local.get $4 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 if i32.const 0 i32.const 1568 @@ -10158,20 +10288,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 - local.get $4 + local.get $5 + local.get $2 + local.get $2 i32.const 65535 i32.and - local.tee $16 + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $16 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761395 @@ -10180,62 +10310,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load16_u local.get $4 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -10245,10 +10375,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.const 65535 i32.and i32.const 10 @@ -10262,14 +10392,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -10282,19 +10412,19 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|3 - local.get $4 + local.get $2 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.const 65535 i32.and i32.const -1028477379 @@ -10305,62 +10435,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load16_u local.get $4 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -10370,10 +10500,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.const 65535 i32.and i32.const 10 @@ -10387,20 +10517,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 - local.get $4 + local.get $5 + local.get $2 + local.get $2 i32.const 65535 i32.and - local.tee $16 + local.tee $4 i32.const 20 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $16 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761395 @@ -10409,62 +10539,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $14 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $14 + local.get $4 if - local.get $14 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 - i32.load16_u local.get $4 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $16 + local.get $3 i32.const -2 i32.and - local.set $14 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $14 + local.set $4 end - local.get $14 + local.get $4 i32.eqz if i32.const 0 @@ -10474,10 +10604,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $4 + local.get $2 i32.const 65535 i32.and i32.const 20 @@ -10491,14 +10621,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|3 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -10511,7 +10641,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10520,17 +10651,17 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $13 + local.tee $3 i32.const 0 i32.store - local.get $15 + local.get $5 i32.load offset=8 - local.set $3 - local.get $15 - i32.load offset=16 - local.tee $16 local.set $11 - local.get $13 + local.get $5 + i32.load offset=16 + local.tee $12 + local.set $4 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -10539,31 +10670,31 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i32.const 16 i32.const 15 call $~lib/rt/itcms/__new - local.tee $14 + local.tee $2 i32.store - local.get $14 + local.get $2 i32.const 0 i32.store - local.get $14 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $14 + local.get $2 i32.const 0 i32.store offset=4 - local.get $14 + local.get $2 i32.const 0 i32.store offset=8 - local.get $14 + local.get $2 i32.const 0 i32.store offset=12 - local.get $11 + local.get $4 i32.const 536870910 i32.gt_u if @@ -10575,53 +10706,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $4 i32.const 8 - local.get $11 + local.get $4 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $4 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store offset=4 - local.get $10 - local.get $4 + local.get $0 + local.get $8 call $~lib/memory/memory.fill - local.get $14 - local.get $10 + local.get $2 + local.get $0 i32.store - local.get $14 - local.get $10 + local.get $2 + local.get $0 call $~lib/rt/itcms/__link - local.get $14 - local.get $10 + local.get $2 + local.get $0 i32.store offset=4 - local.get $14 - local.get $4 + local.get $2 + local.get $8 i32.store offset=8 - local.get $14 - local.get $11 + local.get $2 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 - local.get $14 + local.get $3 + local.get $2 i32.store loop $for-loop|0 + local.get $7 local.get $12 - local.get $16 i32.lt_s if - local.get $3 - local.get $12 + local.get $7 i32.const 12 i32.mul + local.get $11 i32.add local.tee $4 i32.load offset=8 @@ -10629,7 +10760,7 @@ i32.and i32.eqz if - local.get $14 + local.get $2 local.get $1 local.get $4 i32.load16_u @@ -10639,35 +10770,35 @@ i32.add local.set $1 end - local.get $12 + local.get $7 i32.const 1 i32.add - local.set $12 + local.set $7 br $for-loop|0 end end - local.get $14 + local.get $2 local.get $1 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $14 + local.get $2 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $14 + local.get $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $15 + local.get $5 call $~lib/map/Map#values - local.tee $6 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $16 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10683,58 +10814,56 @@ i32.const 24 i32.const 16 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $4 i32.store - local.get $13 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store - local.get $13 local.get $4 + local.get $0 call $~lib/rt/itcms/__link - local.get $13 + local.get $4 i32.const 3 i32.store offset=4 - local.get $13 + local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store offset=8 - local.get $13 local.get $4 + local.get $0 call $~lib/rt/itcms/__link - local.get $13 + local.get $4 i32.const 4 i32.store offset=12 - local.get $13 + local.get $4 i32.const 0 i32.store offset=16 - local.get $13 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 - local.get $13 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $8 + local.tee $11 i32.store offset=16 loop $for-loop|4 - local.get $2 - local.get $14 + local.get $1 i32.load offset=12 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $2 - local.tee $3 - local.get $14 + local.get $1 i32.load offset=12 - i32.ge_u + local.get $6 + i32.le_u if i32.const 1248 i32.const 1728 @@ -10743,25 +10872,23 @@ call $~lib/builtins/abort unreachable end - local.get $14 + local.get $1 i32.load offset=4 - local.get $3 + local.get $6 i32.const 1 i32.shl i32.add i32.load16_u local.set $2 + local.get $13 local.get $6 - local.get $3 call $~lib/array/Array#__get - local.set $7 - local.get $15 + local.set $12 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 local.get $2 - i32.const 65535 - i32.and i32.const -1028477379 i32.mul i32.const 374761395 @@ -10770,24 +10897,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -10801,7 +10928,7 @@ if local.get $0 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -10815,7 +10942,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $4 + local.get $3 i32.const -2 i32.and local.set $0 @@ -10835,14 +10962,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $7 + local.get $12 i32.const 20 i32.sub - local.tee $16 + local.tee $3 i32.const 65535 i32.and i32.const -1028477379 @@ -10853,62 +10980,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $12 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $12 + local.get $0 if - local.get $12 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $12 + local.get $0 i32.load16_u - local.get $16 + local.get $3 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $4 + local.get $8 i32.const -2 i32.and - local.set $12 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $12 + local.set $0 end - local.get $12 + local.get $0 i32.eqz if i32.const 0 @@ -10929,11 +11056,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $13 + local.get $4 i32.load local.get $2 - i32.const 65535 - i32.and + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761395 @@ -10942,79 +11068,79 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 15 i32.shr_u + local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 13 i32.shr_u + local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $7 i32.const 16 i32.shr_u + local.get $7 i32.xor - local.tee $5 - local.get $13 + local.tee $14 + local.get $4 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $1 + local.get $7 if - local.get $1 + local.get $7 i32.load offset=4 - local.tee $4 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $7 i32.load16_u - local.get $2 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $8 i32.const -2 i32.and - local.set $1 + local.set $7 br $while-continue|015 end end i32.const 0 - local.set $1 + local.set $7 end - local.get $1 + local.get $7 if - local.get $1 + local.get $7 local.get $2 i32.store16 offset=2 else - local.get $13 + local.get $4 i32.load offset=16 - local.get $13 + local.get $4 i32.load offset=12 i32.eq if - local.get $13 + local.get $4 i32.load offset=20 - local.get $13 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -11022,17 +11148,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $13 + local.get $4 i32.load offset=4 else - local.get $13 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $16 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11042,68 +11168,64 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store - local.get $4 - local.get $16 + local.get $0 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $11 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $13 + local.get $4 i32.load offset=8 - local.tee $9 - local.get $13 + local.tee $8 + local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $10 - local.get $4 + local.set $16 + local.get $3 local.set $0 loop $while-continue|016 - local.get $9 - local.get $10 + local.get $8 + local.get $16 i32.ne if - local.get $9 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $9 + local.get $8 i32.load16_u - local.tee $12 + local.tee $9 i32.store16 local.get $0 - local.get $9 + local.get $8 i32.load16_u offset=2 i32.store16 offset=2 local.get $0 - local.get $1 - local.get $16 - local.get $12 - i32.const 65535 - i32.and + local.get $9 i32.const -1028477379 i32.mul i32.const 374761395 @@ -11112,33 +11234,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $12 - local.get $12 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor + local.get $7 i32.and i32.const 2 i32.shl + local.get $10 i32.add - local.tee $12 + local.tee $9 i32.load i32.store offset=4 - local.get $12 + local.get $9 local.get $0 i32.store local.get $0 @@ -11146,33 +11270,33 @@ i32.add local.set $0 end - local.get $9 + local.get $8 i32.const 8 i32.add - local.set $9 + local.set $8 br $while-continue|016 end end - local.get $13 - local.get $1 + local.get $4 + local.get $10 i32.store - local.get $13 - local.get $1 + local.get $4 + local.get $10 call $~lib/rt/itcms/__link - local.get $13 - local.get $16 + local.get $4 + local.get $7 i32.store offset=4 - local.get $13 local.get $4 + local.get $3 i32.store offset=8 - local.get $13 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $13 - local.get $11 + local.get $4 + local.get $15 i32.store offset=12 - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -11181,40 +11305,40 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $4 i32.load offset=8 - local.tee $16 + local.tee $0 i32.store - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $4 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $16 - local.get $4 + local.get $7 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $4 + local.tee $0 local.get $2 i32.store16 - local.get $4 + local.get $0 local.get $2 i32.store16 offset=2 - local.get $13 - local.get $13 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 + local.get $0 local.get $4 - local.get $13 i32.load - local.get $5 - local.get $13 + local.get $4 i32.load offset=4 + local.get $14 i32.and i32.const 2 i32.shl @@ -11223,28 +11347,28 @@ i32.load i32.store offset=4 local.get $2 - local.get $4 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - local.get $7 + local.get $11 + local.get $12 i32.const 20 i32.sub local.tee $2 local.get $2 call $~lib/map/Map#set - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|4 end end - local.get $13 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -11256,7 +11380,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -11269,19 +11393,19 @@ unreachable end i32.const 0 - local.set $2 + local.set $6 loop $for-loop|6 - local.get $2 + local.get $6 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.const 65535 i32.and i32.const -1028477379 @@ -11292,62 +11416,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|019 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -11357,10 +11481,10 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#get - local.get $2 + local.get $6 i32.const 65535 i32.and i32.const 20 @@ -11374,14 +11498,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.const 65535 i32.and i32.const -1028477379 @@ -11392,62 +11516,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|022 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -11456,14 +11580,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|6 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -11476,19 +11600,19 @@ unreachable end i32.const 0 - local.set $2 + local.set $6 loop $for-loop|8 - local.get $2 + local.get $6 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.const 65535 i32.and i32.const -1028477379 @@ -11499,62 +11623,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|025 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -11563,20 +11687,20 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 - local.get $2 + local.get $5 + local.get $6 + local.get $6 i32.const 65535 i32.and - local.tee $4 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $4 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761395 @@ -11585,62 +11709,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|028 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 i32.eqz if i32.const 0 @@ -11650,14 +11774,14 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $2 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $15 + local.get $5 i32.load - local.get $15 + local.get $5 i32.load offset=4 - local.get $2 + local.get $6 i32.const 65535 i32.and i32.const -1028477379 @@ -11668,62 +11792,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $3 + local.get $2 if - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|031 end end i32.const 0 - local.set $3 + local.set $2 end - local.get $3 + local.get $2 if i32.const 0 i32.const 1568 @@ -11732,14 +11856,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|8 end end - local.get $15 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -11751,9 +11875,9 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $5 call $~lib/map/Map#clear - local.get $15 + local.get $5 i32.load offset=20 if i32.const 0 @@ -11791,22 +11915,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -12033,23 +12157,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -12114,23 +12238,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -12231,23 +12355,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -12328,23 +12452,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -12424,10 +12548,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $7 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -12454,10 +12579,10 @@ local.get $8 i32.lt_s if - local.get $5 local.get $3 i32.const 12 i32.mul + local.get $5 i32.add local.tee $6 i32.load offset=8 @@ -12494,7 +12619,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -12511,10 +12635,10 @@ local.tee $5 i32.store offset=16 loop $for-loop|2 - local.get $4 local.get $1 i32.load offset=12 - i32.lt_s + local.get $4 + i32.gt_s if local.get $1 local.get $4 @@ -12538,23 +12662,23 @@ i32.const 668265263 i32.mul local.tee $3 - local.get $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 - local.get $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 - local.get $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 @@ -12617,23 +12741,23 @@ i32.const 668265263 i32.mul local.tee $3 - local.get $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 - local.get $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 - local.get $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 @@ -12742,23 +12866,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -12836,23 +12960,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -12937,23 +13061,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -13018,23 +13142,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -13097,23 +13221,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -13283,8 +13407,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $6 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -13313,9 +13435,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -13377,22 +13501,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -13674,23 +13798,23 @@ i32.const 668265263 i32.mul local.tee $3 - local.get $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 - local.get $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 - local.get $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 @@ -13755,23 +13879,23 @@ i32.const 668265263 i32.mul local.tee $3 - local.get $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 - local.get $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 - local.get $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 @@ -13872,23 +13996,23 @@ i32.const 668265263 i32.mul local.tee $3 - local.get $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 - local.get $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 - local.get $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 @@ -13969,23 +14093,23 @@ i32.const 668265263 i32.mul local.tee $3 - local.get $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 - local.get $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 - local.get $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 @@ -14065,10 +14189,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.tee $3 i32.const 0 local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $10 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14175,10 +14300,10 @@ local.get $12 i32.lt_s if - local.get $11 local.get $8 i32.const 12 i32.mul + local.get $11 i32.add local.tee $3 i32.load offset=8 @@ -14215,7 +14340,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -14224,7 +14348,7 @@ local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14274,7 +14398,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -14282,15 +14405,15 @@ local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $5 local.get $6 i32.load offset=12 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $5 local.get $6 i32.load offset=12 - i32.ge_u + local.get $5 + i32.le_u if i32.const 1248 i32.const 1728 @@ -14325,23 +14448,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -14404,23 +14527,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -14490,23 +14613,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor local.tee $14 local.get $3 @@ -14644,8 +14767,6 @@ i32.load offset=4 i32.store offset=4 local.get $0 - local.get $10 - local.get $8 local.get $9 i32.const -1028477379 i32.mul @@ -14656,27 +14777,29 @@ i32.const 668265263 i32.mul local.tee $9 - local.get $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul local.tee $9 - local.get $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul local.tee $9 - local.get $9 i32.const 16 i32.shr_u + local.get $9 i32.xor + local.get $8 i32.and i32.const 2 i32.shl + local.get $10 i32.add local.tee $9 i32.load @@ -14735,10 +14858,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $0 local.get $8 i32.const 12 i32.mul + local.get $0 i32.add local.tee $0 local.get $1 @@ -14755,9 +14878,9 @@ local.get $0 local.get $3 i32.load - local.get $14 local.get $3 i32.load offset=4 + local.get $14 i32.and i32.const 2 i32.shl @@ -14832,23 +14955,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -14926,23 +15049,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -15027,23 +15150,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -15108,23 +15231,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -15187,23 +15310,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -15319,22 +15442,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -15458,7 +15581,6 @@ i32.load offset=8 i32.store offset=8 local.get $2 - local.get $7 local.get $1 local.get $6 i32.wrap_i64 @@ -15503,6 +15625,7 @@ i32.and i32.const 2 i32.shl + local.get $7 i32.add local.tee $9 i32.load @@ -15576,22 +15699,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -15643,7 +15766,6 @@ i32.load offset=8 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -15664,12 +15786,13 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -16096,7 +16219,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $11 + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16203,10 +16327,10 @@ local.get $13 i32.lt_s if - local.get $12 local.get $2 i32.const 4 i32.shl + local.get $12 i32.add local.tee $3 i32.load offset=12 @@ -16243,7 +16367,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -16252,7 +16375,7 @@ local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -16302,7 +16425,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -16310,15 +16432,15 @@ local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $10 local.get $6 i32.load offset=12 - i32.lt_s + local.get $10 + i32.gt_s if - local.get $10 local.get $6 i32.load offset=12 - i32.ge_u + local.get $10 + i32.le_u if i32.const 1248 i32.const 1728 @@ -16401,23 +16523,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor local.tee $15 local.get $3 @@ -16555,7 +16677,6 @@ i64.load offset=8 i64.store offset=8 local.get $0 - local.get $9 local.get $1 local.get $14 i32.wrap_i64 @@ -16579,27 +16700,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 i32.shl + local.get $9 i32.add local.tee $8 i32.load @@ -16658,10 +16780,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $0 local.get $1 i32.const 24 i32.mul + local.get $0 i32.add local.tee $0 local.get $4 @@ -16678,9 +16800,9 @@ local.get $0 local.get $3 i32.load - local.get $15 local.get $3 i32.load offset=4 + local.get $15 i32.and i32.const 2 i32.shl @@ -16924,22 +17046,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -17063,7 +17185,6 @@ i32.load offset=8 i32.store offset=8 local.get $2 - local.get $7 local.get $1 local.get $6 i32.wrap_i64 @@ -17108,6 +17229,7 @@ i32.and i32.const 2 i32.shl + local.get $7 i32.add local.tee $9 i32.load @@ -17181,22 +17303,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -17631,7 +17753,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $11 + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17738,10 +17861,10 @@ local.get $13 i32.lt_s if - local.get $12 local.get $2 i32.const 4 i32.shl + local.get $12 i32.add local.tee $3 i32.load offset=12 @@ -17778,7 +17901,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -17787,7 +17909,7 @@ local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17837,7 +17959,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -17845,15 +17966,15 @@ local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $10 local.get $6 i32.load offset=12 - i32.lt_s + local.get $10 + i32.gt_s if - local.get $10 local.get $6 i32.load offset=12 - i32.ge_u + local.get $10 + i32.le_u if i32.const 1248 i32.const 1728 @@ -17936,23 +18057,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor local.tee $15 local.get $3 @@ -18090,7 +18211,6 @@ i64.load offset=8 i64.store offset=8 local.get $0 - local.get $9 local.get $1 local.get $14 i32.wrap_i64 @@ -18114,27 +18234,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 i32.shl + local.get $9 i32.add local.tee $8 i32.load @@ -18193,10 +18314,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $0 local.get $1 i32.const 24 i32.mul + local.get $0 i32.add local.tee $0 local.get $4 @@ -18213,9 +18334,9 @@ local.get $0 local.get $3 i32.load - local.get $15 local.get $3 i32.load offset=4 + local.get $15 i32.and i32.const 2 i32.shl @@ -18514,8 +18635,6 @@ i32.load offset=4 i32.store offset=4 local.get $2 - local.get $7 - local.get $1 local.get $4 i32.reinterpret_f32 i32.const -1028477379 @@ -18545,9 +18664,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $7 i32.add local.tee $9 i32.load @@ -18610,22 +18731,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -18845,10 +18966,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 24 i32.const 26 call $~lib/rt/itcms/__new @@ -18857,10 +18978,10 @@ local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $5 i32.store local.get $4 - local.get $0 + local.get $5 call $~lib/rt/itcms/__link local.get $4 i32.const 3 @@ -18868,10 +18989,10 @@ local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $5 i32.store offset=8 local.get $4 - local.get $0 + local.get $5 call $~lib/rt/itcms/__link local.get $4 i32.const 4 @@ -18909,23 +19030,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -18939,7 +19060,7 @@ if local.get $1 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) @@ -18951,7 +19072,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $5 + local.get $6 i32.const -2 i32.and local.set $1 @@ -18992,23 +19113,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -19022,7 +19143,7 @@ if local.get $1 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) @@ -19034,7 +19155,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $5 + local.get $6 i32.const -2 i32.and local.set $1 @@ -19111,23 +19232,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -19141,7 +19262,7 @@ if local.get $1 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) @@ -19153,7 +19274,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $5 + local.get $6 i32.const -2 i32.and local.set $1 @@ -19211,23 +19332,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -19241,7 +19362,7 @@ if local.get $1 i32.load offset=8 - local.tee $5 + local.tee $6 i32.const 1 i32.and if (result i32) @@ -19253,7 +19374,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $5 + local.get $6 i32.const -2 i32.and local.set $1 @@ -19308,10 +19429,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $11 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -19329,7 +19449,7 @@ local.get $4 i32.load offset=16 local.tee $13 - local.set $0 + local.set $1 local.get $7 i32.const 8 i32.sub @@ -19363,7 +19483,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $0 + local.get $1 i32.const 268435455 i32.gt_u if @@ -19375,9 +19495,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 8 - local.get $0 + local.get $1 i32.const 8 i32.gt_u select @@ -19404,7 +19524,7 @@ local.get $9 i32.store offset=8 local.get $6 - local.get $0 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -19418,10 +19538,10 @@ local.get $13 i32.lt_s if - local.get $12 local.get $2 i32.const 12 i32.mul + local.get $12 i32.add local.tee $5 i32.load offset=8 @@ -19429,20 +19549,20 @@ i32.and i32.eqz if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $1 + local.set $0 local.get $5 f32.load local.set $3 - local.get $0 local.get $6 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -19454,7 +19574,7 @@ unreachable end local.get $6 - local.get $0 + local.get $1 i32.const 1 i32.add local.tee $5 @@ -19467,7 +19587,7 @@ end local.get $6 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -19482,18 +19602,17 @@ end end local.get $6 - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity local.get $6 - local.get $1 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -19502,7 +19621,7 @@ local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -19552,7 +19671,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19560,15 +19678,15 @@ local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $10 local.get $6 i32.load offset=12 - i32.lt_s + local.get $10 + i32.gt_s if - local.get $10 local.get $6 i32.load offset=12 - i32.ge_u + local.get $10 + i32.le_u if i32.const 1248 i32.const 1728 @@ -19604,23 +19722,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -19685,23 +19803,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -19771,23 +19889,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor local.tee $15 local.get $1 @@ -19925,8 +20043,6 @@ f32.load offset=4 f32.store offset=4 local.get $0 - local.get $9 - local.get $5 local.get $14 i32.reinterpret_f32 i32.const -1028477379 @@ -19938,27 +20054,29 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor + local.get $5 i32.and i32.const 2 i32.shl + local.get $9 i32.add local.tee $8 i32.load @@ -20017,10 +20135,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $0 local.get $5 i32.const 12 i32.mul + local.get $0 i32.add local.tee $0 local.get $3 @@ -20037,9 +20155,9 @@ local.get $0 local.get $1 i32.load - local.get $15 local.get $1 i32.load offset=4 + local.get $15 i32.and i32.const 2 i32.shl @@ -20115,23 +20233,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -20211,23 +20329,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -20313,23 +20431,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -20396,23 +20514,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -20476,23 +20594,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -20582,15 +20700,15 @@ unreachable ) (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) local.get $0 i32.load local.get $0 i32.load offset=4 local.get $1 i64.reinterpret_f64 - local.tee $3 + local.tee $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20600,7 +20718,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -20611,22 +20729,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -20642,7 +20760,7 @@ if local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -20654,7 +20772,7 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + local.get $3 i32.const -2 i32.and local.set $0 @@ -20751,7 +20869,6 @@ i32.load offset=8 i32.store offset=8 local.get $2 - local.get $8 local.get $1 local.get $5 i64.reinterpret_f64 @@ -20798,6 +20915,7 @@ i32.and i32.const 2 i32.shl + local.get $8 i32.add local.tee $10 i32.load @@ -20845,15 +20963,15 @@ global.set $~lib/memory/__stack_pointer ) (func $~lib/map/Map#get (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) local.get $0 i32.load local.get $0 i32.load offset=4 local.get $1 i64.reinterpret_f64 - local.tee $3 + local.tee $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20863,7 +20981,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -20874,22 +20992,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -20905,7 +21023,7 @@ if local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -20917,7 +21035,7 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + local.get $3 i32.const -2 i32.and local.set $0 @@ -21124,10 +21242,10 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new @@ -21136,10 +21254,10 @@ local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $5 i32.store local.get $4 - local.get $0 + local.get $5 call $~lib/rt/itcms/__link local.get $4 i32.const 3 @@ -21147,10 +21265,10 @@ local.get $4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $5 i32.store offset=8 local.get $4 - local.get $0 + local.get $5 call $~lib/rt/itcms/__link local.get $4 i32.const 4 @@ -21327,10 +21445,9 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $11 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21348,7 +21465,7 @@ local.get $4 i32.load offset=16 local.tee $13 - local.set $0 + local.set $1 local.get $7 i32.const 8 i32.sub @@ -21382,7 +21499,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $0 + local.get $1 i32.const 134217727 i32.gt_u if @@ -21394,9 +21511,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 8 - local.get $0 + local.get $1 i32.const 8 i32.gt_u select @@ -21423,7 +21540,7 @@ local.get $9 i32.store offset=8 local.get $6 - local.get $0 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -21437,10 +21554,10 @@ local.get $13 i32.lt_s if - local.get $12 local.get $2 i32.const 4 i32.shl + local.get $12 i32.add local.tee $5 i32.load offset=12 @@ -21448,20 +21565,20 @@ i32.and i32.eqz if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $1 + local.set $0 local.get $5 f64.load local.set $3 - local.get $0 local.get $6 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -21473,7 +21590,7 @@ unreachable end local.get $6 - local.get $0 + local.get $1 i32.const 1 i32.add local.tee $5 @@ -21486,7 +21603,7 @@ end local.get $6 i32.load offset=4 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -21501,18 +21618,17 @@ end end local.get $6 - local.get $1 + local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity local.get $6 - local.get $1 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -21521,7 +21637,7 @@ local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -21571,7 +21687,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -21579,15 +21694,15 @@ local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $10 local.get $6 i32.load offset=12 - i32.lt_s + local.get $10 + i32.gt_s if - local.get $10 local.get $6 i32.load offset=12 - i32.ge_u + local.get $10 + i32.le_u if i32.const 1248 i32.const 1728 @@ -21672,23 +21787,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor local.tee $15 local.get $1 @@ -21826,7 +21941,6 @@ f64.load offset=8 f64.store offset=8 local.get $0 - local.get $9 local.get $5 local.get $18 i64.reinterpret_f64 @@ -21852,27 +21966,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor i32.and i32.const 2 i32.shl + local.get $9 i32.add local.tee $8 i32.load @@ -21931,10 +22046,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $0 local.get $5 i32.const 24 i32.mul + local.get $0 i32.add local.tee $0 local.get $3 @@ -21951,9 +22066,9 @@ local.get $0 local.get $1 i32.load - local.get $15 local.get $1 i32.load offset=4 + local.get $15 i32.and i32.const 2 i32.shl @@ -22473,10 +22588,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $1 local.get $4 i32.const 12 i32.mul + local.get $1 i32.add local.tee $1 local.get $3 @@ -22493,9 +22608,9 @@ local.get $1 local.get $0 i32.load - local.get $5 local.get $0 i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -22645,10 +22760,10 @@ local.get $3 i32.gt_s if - local.get $4 local.get $3 i32.const 12 i32.mul + local.get $4 i32.add local.tee $5 i32.load offset=8 @@ -22886,10 +23001,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $1 local.get $4 i32.const 12 i32.mul + local.get $1 i32.add local.tee $1 local.get $3 @@ -22906,9 +23021,9 @@ local.get $1 local.get $0 i32.load - local.get $5 local.get $0 i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -23066,10 +23181,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $1 local.get $4 i32.const 12 i32.mul + local.get $1 i32.add local.tee $1 local.get $3 @@ -23086,9 +23201,9 @@ local.get $1 local.get $0 i32.load - local.get $5 local.get $0 i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -23245,10 +23360,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $1 local.get $4 i32.const 12 i32.mul + local.get $1 i32.add local.tee $1 local.get $3 @@ -23265,9 +23380,9 @@ local.get $1 local.get $0 i32.load - local.get $5 local.get $0 i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -23425,10 +23540,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $1 local.get $4 i32.const 12 i32.mul + local.get $1 i32.add local.tee $1 local.get $3 @@ -23445,9 +23560,9 @@ local.get $1 local.get $0 i32.load - local.get $5 local.get $0 i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -23601,10 +23716,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $1 local.get $4 i32.const 12 i32.mul + local.get $1 i32.add local.tee $1 local.get $3 @@ -23621,9 +23736,9 @@ local.get $1 local.get $0 i32.load - local.get $5 local.get $0 i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -23788,10 +23903,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $4 i32.const 4 i32.shl + local.get $3 i32.add local.tee $3 local.get $1 @@ -23808,9 +23923,9 @@ local.get $3 local.get $0 i32.load - local.get $5 local.get $0 i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -23867,10 +23982,10 @@ local.get $3 i32.gt_s if - local.get $4 local.get $3 i32.const 4 i32.shl + local.get $4 i32.add local.tee $5 i32.load offset=12 @@ -24057,10 +24172,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $4 i32.const 4 i32.shl + local.get $3 i32.add local.tee $3 local.get $1 @@ -24077,9 +24192,9 @@ local.get $3 local.get $0 i32.load - local.get $5 local.get $0 i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -24233,10 +24348,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $4 i32.const 12 i32.mul + local.get $3 i32.add local.tee $3 local.get $1 @@ -24253,9 +24368,9 @@ local.get $3 local.get $0 i32.load - local.get $5 local.get $0 i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -24423,10 +24538,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $4 i32.const 4 i32.shl + local.get $3 i32.add local.tee $3 local.get $1 @@ -24443,9 +24558,9 @@ local.get $3 local.get $0 i32.load - local.get $6 local.get $0 i32.load offset=4 + local.get $6 i32.and i32.const 2 i32.shl diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 1dfcd2110c..44bab5fa41 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -676,12 +676,16 @@ i32.const 31 i32.shr_u if + f64.const 1.5707963267948966 local.get $0 f64.const 0.5 f64.mul f64.const 0.5 f64.add local.tee $0 + f64.sqrt + local.tee $1 + local.get $0 local.get $0 local.get $0 local.get $0 @@ -722,21 +726,14 @@ f64.const 1 f64.add f64.div - local.set $1 - f64.const 1.5707963267948966 - local.get $0 - f64.sqrt - local.tee $0 local.get $1 - local.get $0 f64.mul f64.const 6.123233995736766e-17 f64.sub f64.add f64.sub - local.tee $0 - local.get $0 - f64.add + f64.const 2 + f64.mul return end f64.const 0.5 @@ -806,9 +803,8 @@ f64.div f64.add f64.add - local.tee $0 - local.get $0 - f64.add + f64.const 2 + f64.mul ) (func $~lib/math/NativeMathf.acos (param $0 f32) (result f32) (local $1 f32) @@ -1179,7 +1175,6 @@ (local $4 i32) (local $5 f64) (local $6 i64) - (local $7 i32) block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 @@ -1303,8 +1298,9 @@ local.get $0 local.get $0 f64.sub - local.tee $2 - local.get $2 + local.get $0 + local.get $0 + f64.sub f64.div i32.const 1 local.get $4 @@ -1335,43 +1331,50 @@ i64.const 127 i64.and i32.wrap_i64 + local.set $4 + local.get $6 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.tee $3 + f64.const 0.6931471805598903 + f64.mul + local.get $4 i32.const 4 i32.shl - local.tee $4 - i32.const 3136 + i32.const 1088 i32.add - local.set $7 + f64.load offset=8 + f64.add + local.tee $2 local.get $1 local.get $6 i64.const -4503599627370496 i64.and i64.sub f64.reinterpret_i64 - local.get $7 + local.get $4 + i32.const 4 + i32.shl + i32.const 3136 + i32.add f64.load f64.sub - local.get $7 + local.get $4 + i32.const 4 + i32.shl + i32.const 3136 + i32.add f64.load offset=8 f64.sub local.get $4 + i32.const 4 + i32.shl i32.const 1088 i32.add - local.tee $4 f64.load f64.mul - local.set $0 - local.get $6 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.tee $3 - f64.const 0.6931471805598903 - f64.mul - local.get $4 - f64.load offset=8 - f64.add - local.tee $2 - local.get $0 + local.tee $0 f64.add local.set $5 local.get $2 @@ -1413,59 +1416,61 @@ end ) (func $std/math/test_acosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 f64) - (local $4 i64) + (local $3 i64) block $__inlined_func$~lib/math/NativeMath.acosh (result f64) local.get $0 - local.tee $3 - i64.reinterpret_f64 - local.set $4 - local.get $3 - local.get $3 + local.get $0 f64.sub f64.const 0 f64.div - local.get $4 + local.get $0 + i64.reinterpret_f64 + local.tee $3 i64.const 4607182418800017408 i64.lt_s br_if $__inlined_func$~lib/math/NativeMath.acosh drop - local.get $4 + local.get $3 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $4 + local.tee $3 i64.const 1024 i64.lt_u if - local.get $3 + local.get $0 + f64.const 1 + f64.sub + local.get $0 + f64.const 1 + f64.sub + local.get $0 f64.const 1 f64.sub - local.tee $3 - local.get $3 - local.get $3 f64.mul - local.get $3 - local.get $3 - f64.add + local.get $0 + f64.const 1 + f64.sub + f64.const 2 + f64.mul f64.add f64.sqrt f64.add call $~lib/math/NativeMath.log1p br $__inlined_func$~lib/math/NativeMath.acosh end - local.get $4 + local.get $3 i64.const 1049 i64.lt_u if - local.get $3 - local.get $3 + local.get $0 + local.get $0 f64.add f64.const 1 - local.get $3 - local.get $3 - local.get $3 + local.get $0 + local.get $0 + local.get $0 f64.mul f64.const 1 f64.sub @@ -1476,7 +1481,7 @@ call $~lib/math/NativeMath.log br $__inlined_func$~lib/math/NativeMath.acosh end - local.get $3 + local.get $0 call $~lib/math/NativeMath.log f64.const 0.6931471805599453 f64.add @@ -1670,7 +1675,6 @@ (local $3 i32) (local $4 i32) (local $5 f64) - (local $6 f32) block $~lib/util/math/logf_lut|inlined.0 (result f32) local.get $0 i32.reinterpret_f32 @@ -1696,8 +1700,9 @@ local.get $0 local.get $0 f32.sub - local.tee $6 - local.get $6 + local.get $0 + local.get $0 + f32.sub f32.div i32.const 1 local.get $1 @@ -1727,10 +1732,6 @@ i32.shr_u i32.const 15 i32.and - i32.const 4 - i32.shl - i32.const 5184 - i32.add local.set $4 local.get $1 local.get $3 @@ -1740,6 +1741,10 @@ f32.reinterpret_i32 f64.promote_f32 local.get $4 + i32.const 4 + i32.shl + i32.const 5184 + i32.add f64.load f64.mul f64.const 1 @@ -1760,6 +1765,10 @@ local.get $5 f64.mul local.get $4 + i32.const 4 + i32.shl + i32.const 5184 + i32.add f64.load offset=8 local.get $3 i32.const 23 @@ -1996,9 +2005,8 @@ local.get $3 f64.mul f64.add - local.tee $0 - local.get $0 - f64.add + f64.const 2 + f64.mul f64.const 6.123233995736766e-17 f64.sub f64.sub @@ -2024,9 +2032,8 @@ local.get $0 f64.add f64.div - local.tee $1 - local.get $1 - f64.add + f64.const 2 + f64.mul f64.sub f64.sub f64.const 0.7853981633974483 @@ -2213,8 +2220,9 @@ local.get $3 local.get $3 f64.mul - local.tee $3 local.get $3 + local.get $3 + f64.mul f64.const 1 f64.add f64.sqrt @@ -2290,8 +2298,9 @@ local.get $3 local.get $3 f32.mul - local.tee $3 local.get $3 + local.get $3 + f32.mul f32.const 1 f32.add f32.sqrt @@ -2725,7 +2734,6 @@ (func $std/math/test_atanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) (local $4 i64) - (local $5 f64) local.get $0 f64.abs local.set $3 @@ -2746,8 +2754,9 @@ local.get $3 local.get $3 f64.add - local.tee $5 - local.get $5 + local.get $3 + local.get $3 + f64.add local.get $3 f64.mul f64.const 1 @@ -2847,35 +2856,33 @@ (local $8 i64) (local $9 i32) (local $10 i32) - local.get $1 - local.set $4 block $__inlined_func$~lib/math/NativeMath.atan2 i32.const 1 local.get $0 - local.tee $1 - local.get $1 - f64.ne - local.get $4 + local.tee $4 local.get $4 f64.ne + local.get $1 + local.get $1 + f64.ne select if - local.get $4 local.get $1 + local.get $4 f64.add - local.set $1 + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $1 + local.get $4 i64.reinterpret_f64 local.tee $8 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $6 + local.set $9 local.get $8 i32.wrap_i64 - local.get $4 + local.get $1 i64.reinterpret_f64 local.tee $8 i64.const 32 @@ -2891,9 +2898,9 @@ i32.or i32.eqz if - local.get $1 + local.get $4 call $~lib/math/NativeMath.atan - local.set $1 + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end local.get $5 @@ -2901,34 +2908,34 @@ i32.shr_u i32.const 2 i32.and - local.get $6 + local.get $9 i32.const 31 i32.shr_u i32.or - local.set $7 + local.set $6 local.get $5 i32.const 2147483647 i32.and local.set $5 - local.get $6 + local.get $9 i32.const 2147483647 i32.and - local.tee $6 + local.tee $7 i32.or i32.eqz if block $break|0 block $case3|0 block $case2|0 - local.get $7 + local.get $6 br_table $__inlined_func$~lib/math/NativeMath.atan2 $__inlined_func$~lib/math/NativeMath.atan2 $case2|0 $case3|0 $break|0 end f64.const 3.141592653589793 - local.set $1 + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const -3.141592653589793 - local.set $1 + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end end @@ -2942,39 +2949,39 @@ i32.const 2146435072 i32.eq if - local.get $6 + local.get $7 i32.const 2146435072 i32.eq if (result f64) f64.const 2.356194490192345 f64.const 0.7853981633974483 - local.get $7 + local.get $6 i32.const 2 i32.and select else f64.const 3.141592653589793 f64.const 0 - local.get $7 + local.get $6 i32.const 2 i32.and select end - local.tee $1 + local.tee $4 f64.neg - local.get $1 - local.get $7 + local.get $4 + local.get $6 i32.const 1 i32.and select - local.set $1 + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end i32.const 1 - local.get $6 + local.get $7 i32.const 2146435072 i32.eq - local.get $6 + local.get $7 local.get $5 i32.const 67108864 i32.add @@ -2982,73 +2989,73 @@ select br_if $folding-inner0 local.get $5 - local.get $6 + local.get $7 i32.const 67108864 i32.add i32.gt_u i32.const 0 - local.get $7 + local.get $6 i32.const 2 i32.and select if (result f64) f64.const 0 else - local.get $1 local.get $4 + local.get $1 f64.div f64.abs call $~lib/math/NativeMath.atan end - local.set $1 + local.set $4 block $break|1 block $case3|1 block $case2|1 block $case1|1 block $case0|1 - local.get $7 + local.get $6 br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 end br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $1 + local.get $4 f64.neg - local.set $1 + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const 3.141592653589793 - local.get $1 + local.get $4 f64.const 1.2246467991473532e-16 f64.sub f64.sub - local.set $1 + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $1 + local.get $4 f64.const 1.2246467991473532e-16 f64.sub f64.const 3.141592653589793 f64.sub - local.set $1 + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end unreachable end f64.const -1.5707963267948966 f64.const 1.5707963267948966 - local.get $7 + local.get $6 i32.const 1 i32.and select - local.set $1 + local.set $4 end - local.get $1 + local.get $4 local.get $2 local.get $3 call $std/math/check if (result i32) local.get $0 - local.get $4 + local.get $1 call $~lib/bindings/Math/atan2 local.get $2 local.get $3 @@ -3361,16 +3368,14 @@ (local $3 f64) (local $4 f64) (local $5 i32) - (local $6 f64) - (local $7 i32) - (local $8 f64) + (local $6 i32) block $__inlined_func$~lib/math/NativeMathf.cbrt (result f32) local.get $0 local.get $0 f32.add local.get $0 i32.reinterpret_f32 - local.tee $7 + local.tee $6 i32.const 2147483647 i32.and local.tee $5 @@ -3391,7 +3396,7 @@ f32.const 16777216 f32.mul i32.reinterpret_f32 - local.tee $7 + local.tee $6 i32.const 2147483647 i32.and i32.const 3 @@ -3405,7 +3410,7 @@ i32.const 709958130 i32.add end - local.get $7 + local.get $6 i32.const -2147483648 i32.and i32.or @@ -3420,14 +3425,14 @@ local.get $3 local.get $0 f64.promote_f32 - local.tee $6 - local.get $6 + local.get $0 + f64.promote_f32 f64.add - local.tee $8 local.get $4 f64.add f64.mul - local.get $6 + local.get $0 + f64.promote_f32 local.get $4 f64.add local.get $4 @@ -3440,11 +3445,16 @@ f64.mul local.set $4 local.get $3 - local.get $8 + local.get $0 + f64.promote_f32 + local.get $0 + f64.promote_f32 + f64.add local.get $4 f64.add f64.mul - local.get $6 + local.get $0 + f64.promote_f32 local.get $4 f64.add local.get $4 @@ -3463,8 +3473,8 @@ (local $4 i64) (local $5 i64) (local $6 i64) - (local $7 i64) - (local $8 i32) + (local $7 i32) + (local $8 i64) (local $9 i64) (local $10 i64) (local $11 i64) @@ -3477,6 +3487,10 @@ i64.const 1045 i64.sub local.tee $2 + i64.const 63 + i64.and + local.set $3 + local.get $2 i64.const 6 i64.shr_s i32.wrap_i64 @@ -3484,174 +3498,172 @@ i32.shl i32.const 5440 i32.add - local.tee $8 + local.tee $7 i64.load - local.set $5 - local.get $8 + local.set $6 + local.get $7 i64.load offset=8 - local.set $3 - local.get $8 + local.set $2 + local.get $7 i64.load offset=16 local.set $1 - local.get $2 - i64.const 63 - i64.and - local.tee $2 + local.get $3 i64.const 0 i64.ne if - local.get $5 - local.get $2 - i64.shl + local.get $6 local.get $3 - i64.const 64 + i64.shl local.get $2 + i64.const 64 + local.get $3 i64.sub local.tee $4 i64.shr_u i64.or - local.set $5 - local.get $3 + local.set $6 local.get $2 + local.get $3 i64.shl local.get $1 local.get $4 i64.shr_u i64.or - local.set $3 + local.set $2 local.get $1 - local.get $2 + local.get $3 i64.shl - local.get $8 + local.get $7 i64.load offset=24 local.get $4 i64.shr_u i64.or local.set $1 end - local.get $3 - i64.const 4294967295 - i64.and - local.tee $6 local.get $0 i64.const 4503599627370495 i64.and i64.const 4503599627370496 i64.or - local.tee $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $7 - i64.mul local.set $4 - local.get $6 local.get $2 + i64.const 4294967295 + i64.and + local.tee $5 + local.get $3 i64.const 32 i64.shr_u - local.tee $6 + local.tee $8 i64.mul - local.get $7 - local.get $3 + local.get $4 + local.get $2 i64.const 32 i64.shr_u - local.tee $7 + local.tee $9 i64.mul local.get $4 + local.get $5 + i64.mul + local.tee $4 i64.const 32 i64.shr_u i64.add - local.tee $9 + local.tee $5 i64.const 4294967295 i64.and i64.add - local.set $3 - local.get $6 - local.get $7 - i64.mul + local.set $2 + local.get $8 local.get $9 + i64.mul + local.get $5 i64.const 32 i64.shr_u i64.add - local.get $3 + local.get $2 i64.const 32 i64.shr_u i64.add global.set $~lib/math/res128_hi - global.get $~lib/math/res128_hi - local.get $2 - local.get $5 - i64.mul - i64.add - local.get $2 - i64.const 32 - i64.shr_s local.get $1 i64.const 32 i64.shr_u + local.get $3 + i64.const 32 + i64.shr_u i64.mul local.tee $1 local.get $4 i64.const 4294967295 i64.and - local.get $3 + local.get $2 i64.const 32 i64.shl i64.add i64.add - local.tee $5 + local.tee $2 local.get $1 i64.lt_u i64.extend_i32_u + global.get $~lib/math/res128_hi + local.get $3 + local.get $6 + i64.mul i64.add - local.tee $7 + i64.add + local.tee $8 i64.const 2 i64.shl - local.get $5 + local.get $2 i64.const 62 i64.shr_u i64.or - local.tee $2 + local.tee $1 i64.const 63 i64.shr_s - local.tee $1 + local.tee $6 + local.get $2 + i64.const 2 + i64.shl + i64.xor + local.set $3 + local.get $6 i64.const 1 i64.shr_s - local.get $2 + local.get $1 i64.xor local.tee $4 i64.clz - local.set $3 + local.set $2 local.get $4 - local.get $3 - i64.shl - local.get $1 - local.get $5 - i64.const 2 + local.get $2 i64.shl - i64.xor - local.tee $9 - i64.const 64 local.get $3 + i64.const 64 + local.get $2 i64.sub i64.shr_u i64.or - local.tee $5 + local.tee $4 i64.const 4294967295 i64.and - local.tee $6 - i64.const 560513588 - i64.mul - local.set $4 - local.get $5 + local.set $5 + local.get $4 i64.const 32 i64.shr_u - local.tee $10 + local.tee $9 i64.const 560513588 i64.mul - local.get $6 + local.get $5 i64.const 3373259426 i64.mul - local.get $4 + local.get $5 + i64.const 560513588 + i64.mul + local.tee $10 i64.const 32 i64.shr_u i64.add @@ -3659,54 +3671,54 @@ i64.const 4294967295 i64.and i64.add - local.set $6 - local.get $10 + local.set $5 + local.get $9 i64.const 3373259426 i64.mul local.get $11 i64.const 32 i64.shr_u i64.add - local.get $6 + local.get $5 i64.const 32 i64.shr_u i64.add global.set $~lib/math/res128_hi - local.get $4 + local.get $10 i64.const 4294967295 i64.and - local.get $6 + local.get $5 i64.const 32 i64.shl i64.add - local.tee $4 - local.get $5 + local.tee $5 + local.get $4 f64.convert_i64_u f64.const 3.753184150245214e-04 f64.mul - local.get $9 local.get $3 + local.get $2 i64.shl f64.convert_i64_u f64.const 3.834951969714103e-04 f64.mul f64.add i64.trunc_f64_u - local.tee $5 + local.tee $3 i64.lt_u i64.extend_i32_u global.get $~lib/math/res128_hi - local.tee $10 + local.tee $4 i64.const 11 i64.shr_u i64.add f64.convert_i64_u global.set $~lib/math/rempio2_y0 - local.get $5 - local.get $10 + local.get $3 + local.get $4 i64.const 53 i64.shl - local.get $4 + local.get $5 i64.const 11 i64.shr_u i64.or @@ -3717,12 +3729,12 @@ global.set $~lib/math/rempio2_y1 global.get $~lib/math/rempio2_y0 i64.const 4372995238176751616 - local.get $3 + local.get $2 i64.const 52 i64.shl i64.sub local.get $0 - local.get $2 + local.get $1 i64.xor i64.const -9223372036854775808 i64.and @@ -3735,17 +3747,17 @@ local.get $12 f64.mul global.set $~lib/math/rempio2_y1 - local.get $7 + local.get $8 i64.const 62 i64.shr_s - local.get $1 + local.get $6 i64.sub i32.wrap_i64 ) (func $~lib/math/NativeMath.cos (param $0 f64) (result f64) (local $1 f64) - (local $2 i64) - (local $3 f64) + (local $2 f64) + (local $3 i64) (local $4 f64) (local $5 i32) (local $6 i32) @@ -3754,7 +3766,7 @@ (local $9 f64) local.get $0 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -3779,26 +3791,26 @@ local.get $0 local.get $0 f64.mul - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 f64.mul local.set $4 f64.const 1 - local.get $3 + local.get $1 f64.const 0.5 f64.mul - local.tee $1 + local.tee $2 f64.sub local.tee $8 f64.const 1 local.get $8 f64.sub - local.get $1 + local.get $2 f64.sub - local.get $3 - local.get $3 - local.get $3 - local.get $3 + local.get $1 + local.get $1 + local.get $1 + local.get $1 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -3810,8 +3822,8 @@ local.get $4 local.get $4 f64.mul - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -3840,7 +3852,7 @@ return end block $~lib/math/rempio2|inlined.0 (result i32) - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -3857,15 +3869,15 @@ local.get $0 f64.const 1.5707963267341256 f64.add - local.set $3 + local.set $1 i32.const -1 local.set $5 local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.const 6.077100506506192e-11 f64.add local.tee $0 @@ -3873,14 +3885,14 @@ f64.const 6.077100506506192e-11 f64.add else - local.get $3 + local.get $1 f64.const 6.077100506303966e-11 f64.add - local.tee $3 + local.tee $1 f64.const 2.0222662487959506e-21 f64.add local.set $0 - local.get $3 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -3890,13 +3902,13 @@ local.get $0 f64.const 1.5707963267341256 f64.sub - local.set $3 + local.set $1 local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.const 6.077100506506192e-11 f64.sub local.tee $0 @@ -3904,14 +3916,14 @@ f64.const 6.077100506506192e-11 f64.sub else - local.get $3 + local.get $1 f64.const 6.077100506303966e-11 f64.sub - local.tee $3 + local.tee $1 f64.const 2.0222662487959506e-21 f64.sub local.set $0 - local.get $3 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -3945,9 +3957,9 @@ local.get $4 f64.const 6.077100506506192e-11 f64.mul - local.tee $3 - f64.sub local.tee $1 + f64.sub + local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -3964,23 +3976,24 @@ f64.const 2.0222662487959506e-21 f64.mul local.get $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 f64.const 6.077100506303966e-11 f64.mul - local.tee $1 + local.tee $2 f64.sub local.tee $0 f64.sub - local.get $1 + local.get $2 f64.sub f64.sub - local.set $3 + local.set $1 local.get $6 local.get $0 - local.get $3 + local.get $1 f64.sub - local.tee $1 + local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -3997,32 +4010,33 @@ f64.const 8.4784276603689e-32 f64.mul local.get $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 f64.const 2.0222662487111665e-21 f64.mul - local.tee $1 + local.tee $2 f64.sub local.tee $0 f64.sub - local.get $1 + local.get $2 f64.sub f64.sub - local.set $3 + local.set $1 local.get $0 - local.get $3 + local.get $1 f64.sub else - local.get $1 + local.get $2 end - local.set $1 + local.set $2 end - local.get $1 + local.get $2 global.set $~lib/math/rempio2_y0 local.get $0 - local.get $1 + local.get $2 f64.sub - local.get $3 + local.get $1 f64.sub global.set $~lib/math/rempio2_y1 local.get $4 @@ -4030,7 +4044,7 @@ br $~lib/math/rempio2|inlined.0 end i32.const 0 - local.get $2 + local.get $3 call $~lib/math/pio2_large_quot local.tee $5 i32.sub @@ -4040,28 +4054,28 @@ end local.set $6 global.get $~lib/math/rempio2_y0 - local.set $3 + local.set $0 global.get $~lib/math/rempio2_y1 local.set $4 local.get $6 i32.const 1 i32.and if (result f64) - local.get $3 - local.get $3 + local.get $0 + local.get $0 f64.mul - local.tee $0 - local.get $3 + local.tee $1 + local.get $0 f64.mul - local.set $1 - local.get $3 + local.set $2 local.get $0 + local.get $1 local.get $4 f64.const 0.5 f64.mul + local.get $2 + local.get $1 local.get $1 - local.get $0 - local.get $0 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -4069,12 +4083,12 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 + local.get $1 f64.mul f64.mul - local.get $0 + local.get $1 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -4086,21 +4100,21 @@ f64.mul local.get $4 f64.sub - local.get $1 + local.get $2 f64.const -0.16666666666666632 f64.mul f64.sub f64.sub else - local.get $3 - local.get $3 - f64.mul - local.tee $0 + local.get $0 local.get $0 f64.mul - local.set $1 + local.tee $1 + local.get $1 + f64.mul + local.set $2 f64.const 1 - local.get $0 + local.get $1 f64.const 0.5 f64.mul local.tee $8 @@ -4111,10 +4125,10 @@ f64.sub local.get $8 f64.sub - local.get $0 - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 + local.get $1 + local.get $1 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -4123,11 +4137,11 @@ f64.const 0.0416666666666666 f64.add f64.mul + local.get $2 + local.get $2 + f64.mul local.get $1 local.get $1 - f64.mul - local.get $0 - local.get $0 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -4138,7 +4152,7 @@ f64.mul f64.add f64.mul - local.get $3 + local.get $0 local.get $4 f64.mul f64.sub @@ -4207,10 +4221,10 @@ if local.get $0 f64.promote_f32 - local.tee $9 f64.const 3.141592653589793 f64.add - local.get $9 + local.get $0 + f64.promote_f32 f64.const 3.141592653589793 f64.sub local.get $5 @@ -4306,10 +4320,10 @@ if local.get $0 f64.promote_f32 - local.tee $9 f64.const 6.283185307179586 f64.add - local.get $9 + local.get $0 + f64.promote_f32 f64.const 6.283185307179586 f64.sub local.get $5 @@ -4392,13 +4406,12 @@ if local.get $0 f64.promote_f32 - local.tee $8 + local.get $0 + f64.promote_f32 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $9 - local.get $8 - local.get $9 + local.tee $9 f64.const 1.5707963109016418 f64.mul f64.sub @@ -4946,11 +4959,11 @@ i64.const 1 i64.shl i32.wrap_i64 + local.tee $7 i32.const 3 i32.shl i32.const 5664 i32.add - local.tee $7 i64.load offset=8 local.get $5 i64.const 45 @@ -4974,6 +4987,10 @@ f64.mul local.set $2 local.get $7 + i32.const 3 + i32.shl + i32.const 5664 + i32.add f64.load local.get $0 f64.add @@ -5718,9 +5735,8 @@ f64.mul local.get $0 f64.add - local.tee $0 - local.get $0 - f64.add + f64.const 2 + f64.mul br $~lib/util/math/specialcase2|inlined.0 end local.get $5 @@ -6058,8 +6074,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f64) - (local $8 f32) + (local $7 f32) block $__inlined_func$~lib/math/NativeMathf.hypot (result f32) local.get $1 i32.reinterpret_f32 @@ -6108,13 +6123,13 @@ br_if $__inlined_func$~lib/math/NativeMathf.hypot drop f32.const 1 - local.set $8 + local.set $7 local.get $5 i32.const 1568669696 i32.ge_u if (result f32) f32.const 1237940039285380274899124e3 - local.set $8 + local.set $7 local.get $1 f32.const 8.077935669463161e-28 f32.mul @@ -6128,7 +6143,7 @@ i32.lt_u if (result f32) f32.const 8.077935669463161e-28 - local.set $8 + local.set $7 local.get $1 f32.const 1237940039285380274899124e3 f32.mul @@ -6141,16 +6156,16 @@ end end local.set $0 - local.get $8 + local.get $7 + local.get $0 + f64.promote_f32 local.get $0 f64.promote_f32 - local.tee $7 - local.get $7 f64.mul local.get $1 f64.promote_f32 - local.tee $7 - local.get $7 + local.get $1 + f64.promote_f32 f64.mul f64.add f32.demote_f64 @@ -6528,8 +6543,7 @@ (local $6 f64) (local $7 f64) (local $8 i64) - (local $9 i32) - (local $10 f64) + (local $9 f64) block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 @@ -6568,7 +6582,7 @@ f64.mul local.tee $6 f64.add - local.tee $10 + local.tee $9 local.get $0 local.get $7 f64.sub @@ -6579,7 +6593,7 @@ f64.mul f64.add local.get $4 - local.get $10 + local.get $9 f64.sub local.get $6 f64.add @@ -6649,8 +6663,9 @@ local.get $0 local.get $0 f64.sub - local.tee $2 - local.get $2 + local.get $0 + local.get $0 + f64.sub f64.div i32.const 1 local.get $3 @@ -6681,28 +6696,44 @@ i64.const 63 i64.and i32.wrap_i64 + local.set $3 + local.get $8 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.get $3 i32.const 4 i32.shl - local.tee $3 - i32.const 8992 + i32.const 7968 i32.add - local.set $9 + f64.load offset=8 + f64.add + local.tee $5 local.get $1 local.get $8 i64.const -4503599627370496 i64.and i64.sub f64.reinterpret_i64 - local.get $9 + local.get $3 + i32.const 4 + i32.shl + i32.const 8992 + i32.add f64.load f64.sub - local.get $9 + local.get $3 + i32.const 4 + i32.shl + i32.const 8992 + i32.add f64.load offset=8 f64.sub local.get $3 + i32.const 4 + i32.shl i32.const 7968 i32.add - local.tee $3 f64.load f64.mul local.tee $0 @@ -6713,16 +6744,7 @@ local.tee $7 f64.const 1.4426950407214463 f64.mul - local.set $4 - local.get $8 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.get $3 - f64.load offset=8 - f64.add - local.tee $5 - local.get $4 + local.tee $4 f64.add local.set $6 local.get $5 @@ -6779,7 +6801,6 @@ (local $5 i32) (local $6 i32) (local $7 f64) - (local $8 f32) block $~lib/util/math/log2f_lut|inlined.0 (result f32) local.get $0 i32.reinterpret_f32 @@ -6805,8 +6826,9 @@ local.get $0 local.get $0 f32.sub - local.tee $8 - local.get $8 + local.get $0 + local.get $0 + f32.sub f32.div i32.const 1 local.get $3 @@ -6836,10 +6858,6 @@ i32.shr_u i32.const 15 i32.and - i32.const 4 - i32.shl - i32.const 10016 - i32.add local.set $6 local.get $3 local.get $5 @@ -6849,6 +6867,10 @@ f32.reinterpret_i32 f64.promote_f32 local.get $6 + i32.const 4 + i32.shl + i32.const 10016 + i32.add f64.load f64.mul f64.const 1 @@ -6872,6 +6894,10 @@ f64.const 1.4426950186867042 f64.mul local.get $6 + i32.const 4 + i32.shl + i32.const 10016 + i32.add f64.load offset=8 local.get $5 i32.const 23 @@ -6928,9 +6954,8 @@ (local $5 i64) (local $6 i64) (local $7 i64) - (local $8 i64) - (local $9 f64) - (local $10 i64) + (local $8 f64) + (local $9 i64) block $__inlined_func$~lib/math/NativeMath.mod (result f64) local.get $0 local.get $0 @@ -6952,18 +6977,14 @@ i64.const 2047 i64.and local.set $6 - local.get $0 - i64.reinterpret_f64 - local.tee $3 - i64.const 63 - i64.shr_u - local.set $8 i32.const 1 local.get $1 local.get $1 f64.ne i32.const 1 - local.get $3 + local.get $0 + i64.reinterpret_f64 + local.tee $3 i64.const 52 i64.shr_u i64.const 2047 @@ -6982,8 +7003,8 @@ local.get $0 local.get $1 f64.mul - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.div br $__inlined_func$~lib/math/NativeMath.mod end @@ -6991,17 +7012,21 @@ local.get $3 i64.const 1 i64.shl - local.tee $10 + local.tee $9 i64.ge_u if local.get $0 local.get $7 - local.get $10 + local.get $9 i64.ne f64.convert_i32_u f64.mul br $__inlined_func$~lib/math/NativeMath.mod end + local.get $3 + i64.const 63 + i64.shr_u + local.set $7 local.get $5 i64.eqz if (result i64) @@ -7076,6 +7101,7 @@ br $while-continue|0 end end + local.get $5 local.get $3 local.get $4 i64.ge_u @@ -7090,17 +7116,17 @@ local.set $3 end local.get $3 - local.get $3 i64.const 11 i64.shl i64.clz - local.tee $4 + local.tee $5 + i64.sub + local.set $4 + local.get $3 + local.get $5 i64.shl local.set $3 - local.get $5 local.get $4 - i64.sub - local.tee $4 i64.const 0 i64.gt_s if (result i64) @@ -7118,7 +7144,7 @@ i64.sub i64.shr_u end - local.get $8 + local.get $7 i64.const 63 i64.shl i64.or @@ -7348,20 +7374,20 @@ (local $2 i64) (local $3 i32) (local $4 f64) - (local $5 f64) - (local $6 i64) + (local $5 i32) + (local $6 f64) (local $7 i64) (local $8 f64) (local $9 i64) - (local $10 f64) - (local $11 i32) - (local $12 i32) + (local $10 i64) + (local $11 i64) + (local $12 f64) (local $13 f64) - (local $14 i64) + (local $14 f64) (local $15 f64) (local $16 f64) (local $17 f64) - (local $18 f64) + (local $18 i32) local.get $1 f64.abs f64.const 2 @@ -7415,12 +7441,12 @@ end end local.get $1 - local.tee $5 + local.tee $6 i64.reinterpret_f64 local.tee $7 i64.const 52 i64.shr_u - local.set $9 + local.set $10 block $~lib/util/math/pow_lut|inlined.0 local.get $0 local.tee $4 @@ -7428,7 +7454,7 @@ local.tee $2 i64.const 52 i64.shr_u - local.tee $14 + local.tee $9 i64.const 1 i64.sub i64.const 2046 @@ -7436,7 +7462,7 @@ if (result i32) i32.const 1 else - local.get $9 + local.get $10 i64.const 2047 i64.and i64.const 958 @@ -7467,7 +7493,7 @@ i64.eq br_if $~lib/util/math/pow_lut|inlined.0 local.get $4 - local.get $5 + local.get $6 f64.add local.set $0 i32.const 1 @@ -7504,8 +7530,8 @@ i64.lt_u i32.eq br_if $~lib/util/math/pow_lut|inlined.0 - local.get $5 - local.get $5 + local.get $6 + local.get $6 f64.mul local.set $0 br $~lib/util/math/pow_lut|inlined.0 @@ -7537,13 +7563,13 @@ i64.shr_u i64.const 2047 i64.and - local.tee $6 + local.tee $2 i64.const 1023 i64.lt_u br_if $~lib/util/math/checkint|inlined.0 drop i32.const 2 - local.get $6 + local.get $2 i64.const 1075 i64.gt_u br_if $~lib/util/math/checkint|inlined.0 @@ -7551,10 +7577,10 @@ i32.const 0 i64.const 1 i64.const 1075 - local.get $6 + local.get $2 i64.sub i64.shl - local.tee $6 + local.tee $2 i64.const 1 i64.sub local.get $7 @@ -7564,7 +7590,7 @@ br_if $~lib/util/math/checkint|inlined.0 drop i32.const 1 - local.get $6 + local.get $2 local.get $7 i64.and i64.const 0 @@ -7598,8 +7624,9 @@ local.get $4 local.get $4 f64.sub - local.tee $0 - local.get $0 + local.get $4 + local.get $4 + f64.sub f64.div local.set $0 block $~lib/util/math/checkint|inlined.1 (result i32) @@ -7609,13 +7636,13 @@ i64.shr_u i64.const 2047 i64.and - local.tee $6 + local.tee $11 i64.const 1023 i64.lt_u br_if $~lib/util/math/checkint|inlined.1 drop i32.const 2 - local.get $6 + local.get $11 i64.const 1075 i64.gt_u br_if $~lib/util/math/checkint|inlined.1 @@ -7623,10 +7650,10 @@ i32.const 0 i64.const 1 i64.const 1075 - local.get $6 + local.get $11 i64.sub i64.shl - local.tee $6 + local.tee $11 i64.const 1 i64.sub local.get $7 @@ -7636,8 +7663,8 @@ br_if $~lib/util/math/checkint|inlined.1 drop i32.const 1 - local.get $6 local.get $7 + local.get $11 i64.and i64.const 0 i64.ne @@ -7645,26 +7672,26 @@ drop i32.const 2 end - local.tee $11 + local.tee $5 i32.eqz br_if $~lib/util/math/pow_lut|inlined.0 - local.get $14 - i64.const 2047 - i64.and - local.set $14 i32.const 262144 i32.const 0 - local.get $11 + local.get $5 i32.const 1 i32.eq select - local.set $12 + local.set $3 + local.get $9 + i64.const 2047 + i64.and + local.set $9 local.get $2 i64.const 9223372036854775807 i64.and local.set $2 end - local.get $9 + local.get $10 i64.const 2047 i64.and i64.const 958 @@ -7678,7 +7705,7 @@ i64.const 4607182418800017408 i64.eq br_if $~lib/util/math/pow_lut|inlined.0 - local.get $9 + local.get $10 i64.const 2047 i64.and i64.const 958 @@ -7686,7 +7713,7 @@ br_if $~lib/util/math/pow_lut|inlined.0 f64.const inf f64.const 0 - local.get $9 + local.get $10 i64.const 2048 i64.lt_u local.get $2 @@ -7697,7 +7724,7 @@ local.set $0 br $~lib/util/math/pow_lut|inlined.0 end - local.get $14 + local.get $9 i64.eqz if (result i64) local.get $4 @@ -7714,118 +7741,126 @@ local.set $2 end local.get $2 - local.get $2 i64.const 4604531861337669632 i64.sub local.tee $9 + i64.const 45 + i64.shr_u + i64.const 127 + i64.and + i32.wrap_i64 + local.set $5 + local.get $9 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.tee $12 + f64.const 0.6931471805598903 + f64.mul + local.get $5 + i32.const 5 + i32.shl + i32.const 10272 + i32.add + f64.load offset=16 + f64.add + local.tee $13 + local.get $2 + local.get $9 i64.const -4503599627370496 i64.and i64.sub - local.tee $6 + local.tee $2 i64.const 2147483648 i64.add i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $0 - local.get $9 - i64.const 45 - i64.shr_u - i64.const 127 - i64.and - i32.wrap_i64 + local.tee $4 + local.get $5 i32.const 5 i32.shl i32.const 10272 i32.add - local.tee $11 f64.load - local.tee $1 + local.tee $0 f64.mul f64.const 1 f64.sub - local.set $13 - local.get $9 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.tee $17 - f64.const 0.6931471805598903 - f64.mul - local.get $11 - f64.load offset=16 - f64.add - local.tee $8 - local.get $13 - local.get $6 + local.tee $1 + local.get $2 f64.reinterpret_i64 - local.get $0 + local.get $4 f64.sub - local.get $1 + local.get $0 f64.mul - local.tee $18 + local.tee $14 f64.add - local.tee $10 + local.tee $0 f64.add - local.set $15 - local.get $10 - local.get $10 + local.set $4 + local.get $0 + local.get $0 f64.const -0.5 f64.mul - local.tee $4 + local.tee $15 f64.mul - local.set $16 - local.get $15 - local.get $13 - local.get $13 + local.set $8 + local.get $4 + local.get $1 + local.get $1 f64.const -0.5 f64.mul - local.tee $1 + local.tee $16 f64.mul - local.tee $0 + local.tee $17 f64.add - local.tee $13 - local.get $13 - local.get $17 + local.tee $1 + local.get $1 + local.get $12 f64.const 5.497923018708371e-14 f64.mul - local.get $11 + local.get $5 + i32.const 5 + i32.shl + i32.const 10272 + i32.add f64.load offset=24 f64.add - local.get $8 - local.get $15 + local.get $13 + local.get $4 f64.sub - local.get $10 + local.get $0 f64.add f64.add - local.get $18 - local.get $4 - local.get $1 + local.get $14 + local.get $15 + local.get $16 f64.add f64.mul f64.add - local.get $15 - local.get $13 + local.get $4 + local.get $1 f64.sub - local.get $0 + local.get $17 f64.add f64.add - local.get $10 - local.get $16 + local.get $0 + local.get $8 f64.mul - local.get $10 + local.get $0 f64.const 0.5000000000000007 f64.mul f64.const -0.6666666666666679 f64.add - local.get $16 - local.get $10 + local.get $8 + local.get $0 f64.const -0.6666666663487739 f64.mul f64.const 0.7999999995323976 f64.add - local.get $16 - local.get $10 + local.get $8 + local.get $0 f64.const 1.0000415263675542 f64.mul f64.const -1.142909628459501 @@ -7836,11 +7871,11 @@ f64.add f64.mul f64.add - local.tee $0 + local.tee $4 f64.add - local.tee $8 + local.tee $0 f64.sub - local.get $0 + local.get $4 f64.add global.set $~lib/util/math/log_tail block $~lib/util/math/exp_inline|inlined.0 (result f64) @@ -7848,8 +7883,8 @@ i64.const -134217728 i64.and f64.reinterpret_i64 - local.tee $0 - local.get $8 + local.tee $8 + local.get $0 i64.reinterpret_f64 i64.const -134217728 i64.and @@ -7857,13 +7892,13 @@ local.tee $1 f64.mul local.set $4 - local.get $5 - local.get $0 + local.get $6 + local.get $8 f64.sub local.get $1 f64.mul - local.get $5 - local.get $8 + local.get $6 + local.get $0 local.get $1 f64.sub global.get $~lib/util/math/log_tail @@ -7871,9 +7906,11 @@ f64.mul f64.add local.set $1 + local.get $3 + local.set $5 local.get $4 i64.reinterpret_f64 - local.tee $6 + local.tee $2 i64.const 52 i64.shr_u i32.wrap_i64 @@ -7887,7 +7924,7 @@ if f64.const -1 f64.const 1 - local.get $12 + local.get $5 select local.get $3 i32.const 969 @@ -7896,21 +7933,21 @@ i32.ge_u br_if $~lib/util/math/exp_inline|inlined.0 drop - local.get $6 + local.get $2 i64.const 63 i64.shr_u i32.wrap_i64 if (result f64) f64.const -1.2882297539194267e-231 f64.const 1.2882297539194267e-231 - local.get $12 + local.get $5 select f64.const 1.2882297539194267e-231 f64.mul else f64.const -3105036184601417870297958e207 f64.const 3105036184601417870297958e207 - local.get $12 + local.get $5 select f64.const 3105036184601417870297958e207 f64.mul @@ -7930,26 +7967,26 @@ f64.add local.tee $0 i64.reinterpret_f64 - local.tee $9 + local.tee $7 i64.const 127 i64.and i64.const 1 i64.shl i32.wrap_i64 + local.tee $18 i32.const 3 i32.shl i32.const 5664 i32.add - local.tee $11 i64.load offset=8 - local.get $12 + local.get $5 i64.extend_i32_u - local.get $9 + local.get $7 i64.add i64.const 45 i64.shl i64.add - local.set $6 + local.set $2 local.get $4 local.get $0 f64.const 6755399441055744 @@ -7964,26 +8001,30 @@ f64.add local.get $1 f64.add - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 f64.mul - local.set $0 - local.get $11 + local.set $1 + local.get $18 + i32.const 3 + i32.shl + i32.const 5664 + i32.add f64.load - local.get $1 - f64.add local.get $0 + f64.add local.get $1 + local.get $0 f64.const 0.16666666666665886 f64.mul f64.const 0.49999999999996786 f64.add f64.mul f64.add - local.get $0 - local.get $0 - f64.mul local.get $1 + local.get $1 + f64.mul + local.get $0 f64.const 0.008333335853059549 f64.mul f64.const 0.0416666808410674 @@ -7995,12 +8036,12 @@ i32.eqz if block $~lib/util/math/specialcase|inlined.1 (result f64) - local.get $9 + local.get $7 i64.const 2147483648 i64.and i64.eqz if - local.get $6 + local.get $2 i64.const 4544132024016830464 i64.sub f64.reinterpret_i64 @@ -8013,35 +8054,35 @@ f64.mul br $~lib/util/math/specialcase|inlined.1 end - local.get $6 + local.get $2 i64.const 4602678819172646912 i64.add - local.tee $6 + local.tee $2 f64.reinterpret_i64 local.tee $4 local.get $4 local.get $0 f64.mul f64.add - local.tee $8 + local.tee $1 f64.abs f64.const 1 f64.lt if (result f64) f64.const 1 - local.get $8 + local.get $1 f64.copysign - local.tee $5 - local.get $8 - f64.add - local.tee $1 - local.get $5 + local.tee $6 local.get $1 - f64.sub + f64.add + local.tee $8 + local.get $6 local.get $8 + f64.sub + local.get $1 f64.add local.get $4 - local.get $8 + local.get $1 f64.sub local.get $4 local.get $0 @@ -8049,28 +8090,28 @@ f64.add f64.add f64.add - local.get $5 + local.get $6 f64.sub - local.tee $8 + local.tee $1 f64.const 0 f64.eq if (result f64) - local.get $6 + local.get $2 i64.const -9223372036854775808 i64.and f64.reinterpret_i64 else - local.get $8 + local.get $1 end else - local.get $8 + local.get $1 end f64.const 2.2250738585072014e-308 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end - local.get $6 + local.get $2 f64.reinterpret_i64 local.tee $1 local.get $1 @@ -8102,8 +8143,8 @@ ) (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) (local $2 i32) - (local $3 i32) - (local $4 f32) + (local $3 f32) + (local $4 i32) (local $5 i32) (local $6 i64) (local $7 i32) @@ -8163,6 +8204,7 @@ end block $~lib/util/math/powf_lut|inlined.0 local.get $1 + local.tee $3 i32.reinterpret_f32 local.tee $5 i32.const 1 @@ -8171,9 +8213,9 @@ i32.sub i32.const -16777217 i32.ge_u - local.tee $3 - local.get $0 local.tee $4 + local.get $0 + local.tee $1 i32.reinterpret_f32 local.tee $2 i32.const 8388608 @@ -8182,7 +8224,7 @@ i32.ge_u i32.or if - local.get $3 + local.get $4 if f32.const 1 local.set $0 @@ -8197,8 +8239,8 @@ i32.const 1065353216 i32.eq br_if $~lib/util/math/powf_lut|inlined.0 - local.get $4 local.get $1 + local.get $3 f32.add local.set $0 i32.const 1 @@ -8235,8 +8277,8 @@ i32.lt_u i32.eq br_if $~lib/util/math/powf_lut|inlined.0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f32.mul local.set $0 br $~lib/util/math/powf_lut|inlined.0 @@ -8250,8 +8292,8 @@ i32.ge_u if f32.const 1 - local.get $4 - local.get $4 + local.get $1 + local.get $1 f32.mul local.tee $0 f32.neg @@ -8319,17 +8361,18 @@ i32.const 31 i32.shr_u if - local.get $4 - local.get $4 + local.get $1 + local.get $1 + f32.sub + local.get $1 + local.get $1 f32.sub - local.tee $0 - local.get $0 f32.div local.set $0 block $~lib/util/math/checkintf|inlined.1 (result i32) i32.const 0 local.get $5 - local.tee $3 + local.tee $4 i32.const 23 i32.shr_u i32.const 255 @@ -8354,12 +8397,12 @@ local.tee $5 i32.const 1 i32.sub - local.get $3 + local.get $4 i32.and br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 1 - local.get $3 + local.get $4 local.get $5 i32.and br_if $~lib/util/math/checkintf|inlined.1 @@ -8385,7 +8428,7 @@ i32.const 8388608 i32.lt_u if (result i32) - local.get $4 + local.get $1 f32.const 8388608 f32.mul i32.reinterpret_f32 @@ -8399,26 +8442,27 @@ local.set $2 end local.get $2 - local.get $2 i32.const 1060306944 i32.sub local.tee $5 + i32.const 19 + i32.shr_u + i32.const 15 + i32.and + local.set $4 + local.get $2 + local.get $5 i32.const -8388608 i32.and - local.tee $3 + local.tee $5 i32.sub f32.reinterpret_i32 f64.promote_f32 - local.get $5 - i32.const 19 - i32.shr_u - i32.const 15 - i32.and + local.get $4 i32.const 4 i32.shl i32.const 10016 i32.add - local.tee $5 f64.load f64.mul f64.const 1 @@ -8427,7 +8471,7 @@ local.get $9 f64.mul local.set $8 - local.get $1 + local.get $3 f64.promote_f32 local.get $9 f64.const 0.288457581109214 @@ -8441,9 +8485,13 @@ local.get $9 f64.const 1.4426950408774342 f64.mul - local.get $5 + local.get $4 + i32.const 4 + i32.shl + i32.const 10016 + i32.add f64.load offset=8 - local.get $3 + local.get $5 i32.const 23 i32.shr_s f64.convert_i32_s @@ -9047,8 +9095,9 @@ local.get $0 local.get $1 f32.mul - local.tee $0 local.get $0 + local.get $1 + f32.mul f32.div return end @@ -9253,8 +9302,8 @@ ) (func $~lib/math/NativeMath.sin (param $0 f64) (result f64) (local $1 f64) - (local $2 i64) - (local $3 f64) + (local $2 f64) + (local $3 i64) (local $4 f64) (local $5 i32) (local $6 i32) @@ -9263,7 +9312,7 @@ (local $9 f64) local.get $0 i64.reinterpret_f64 - local.tee $2 + local.tee $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -9289,12 +9338,12 @@ local.get $0 local.get $0 f64.mul - local.tee $3 + local.tee $1 local.get $0 f64.mul - local.get $3 - local.get $3 - local.get $3 + local.get $1 + local.get $1 + local.get $1 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -9302,12 +9351,12 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $3 - local.get $3 - local.get $3 + local.get $1 + local.get $1 + local.get $1 f64.mul f64.mul - local.get $3 + local.get $1 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -9331,7 +9380,7 @@ return end block $~lib/math/rempio2|inlined.1 (result i32) - local.get $2 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -9348,15 +9397,15 @@ local.get $0 f64.const 1.5707963267341256 f64.add - local.set $3 + local.set $1 i32.const -1 local.set $5 local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.const 6.077100506506192e-11 f64.add local.tee $0 @@ -9364,14 +9413,14 @@ f64.const 6.077100506506192e-11 f64.add else - local.get $3 + local.get $1 f64.const 6.077100506303966e-11 f64.add - local.tee $3 + local.tee $1 f64.const 2.0222662487959506e-21 f64.add local.set $0 - local.get $3 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -9381,13 +9430,13 @@ local.get $0 f64.const 1.5707963267341256 f64.sub - local.set $3 + local.set $1 local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.const 6.077100506506192e-11 f64.sub local.tee $0 @@ -9395,14 +9444,14 @@ f64.const 6.077100506506192e-11 f64.sub else - local.get $3 + local.get $1 f64.const 6.077100506303966e-11 f64.sub - local.tee $3 + local.tee $1 f64.const 2.0222662487959506e-21 f64.sub local.set $0 - local.get $3 + local.get $1 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -9436,9 +9485,9 @@ local.get $4 f64.const 6.077100506506192e-11 f64.mul - local.tee $3 - f64.sub local.tee $1 + f64.sub + local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -9455,23 +9504,24 @@ f64.const 2.0222662487959506e-21 f64.mul local.get $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 f64.const 6.077100506303966e-11 f64.mul - local.tee $1 + local.tee $2 f64.sub local.tee $0 f64.sub - local.get $1 + local.get $2 f64.sub f64.sub - local.set $3 + local.set $1 local.get $6 local.get $0 - local.get $3 + local.get $1 f64.sub - local.tee $1 + local.tee $2 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -9488,32 +9538,33 @@ f64.const 8.4784276603689e-32 f64.mul local.get $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 f64.const 2.0222662487111665e-21 f64.mul - local.tee $1 + local.tee $2 f64.sub local.tee $0 f64.sub - local.get $1 + local.get $2 f64.sub f64.sub - local.set $3 + local.set $1 local.get $0 - local.get $3 + local.get $1 f64.sub else - local.get $1 + local.get $2 end - local.set $1 + local.set $2 end - local.get $1 + local.get $2 global.set $~lib/math/rempio2_y0 local.get $0 - local.get $1 + local.get $2 f64.sub - local.get $3 + local.get $1 f64.sub global.set $~lib/math/rempio2_y1 local.get $4 @@ -9521,7 +9572,7 @@ br $~lib/math/rempio2|inlined.1 end i32.const 0 - local.get $2 + local.get $3 call $~lib/math/pio2_large_quot local.tee $5 i32.sub @@ -9531,22 +9582,22 @@ end local.set $6 global.get $~lib/math/rempio2_y0 - local.set $3 + local.set $0 global.get $~lib/math/rempio2_y1 local.set $4 local.get $6 i32.const 1 i32.and if (result f64) - local.get $3 - local.get $3 - f64.mul - local.tee $0 + local.get $0 local.get $0 f64.mul - local.set $1 + local.tee $1 + local.get $1 + f64.mul + local.set $2 f64.const 1 - local.get $0 + local.get $1 f64.const 0.5 f64.mul local.tee $8 @@ -9557,10 +9608,10 @@ f64.sub local.get $8 f64.sub - local.get $0 - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 + local.get $1 + local.get $1 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -9569,11 +9620,11 @@ f64.const 0.0416666666666666 f64.add f64.mul + local.get $2 + local.get $2 + f64.mul local.get $1 local.get $1 - f64.mul - local.get $0 - local.get $0 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -9584,28 +9635,28 @@ f64.mul f64.add f64.mul - local.get $3 + local.get $0 local.get $4 f64.mul f64.sub f64.add f64.add else - local.get $3 - local.get $3 + local.get $0 + local.get $0 f64.mul - local.tee $0 - local.get $3 + local.tee $1 + local.get $0 f64.mul - local.set $1 - local.get $3 + local.set $2 local.get $0 + local.get $1 local.get $4 f64.const 0.5 f64.mul + local.get $2 + local.get $1 local.get $1 - local.get $0 - local.get $0 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -9613,12 +9664,12 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 + local.get $1 f64.mul f64.mul - local.get $0 + local.get $1 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -9630,7 +9681,7 @@ f64.mul local.get $4 f64.sub - local.get $1 + local.get $2 f64.const -0.16666666666666632 f64.mul f64.sub @@ -9765,10 +9816,10 @@ end local.get $0 f64.promote_f32 - local.tee $9 f64.const 3.141592653589793 f64.add - local.get $9 + local.get $0 + f64.promote_f32 f64.const 3.141592653589793 f64.sub local.get $5 @@ -9862,10 +9913,10 @@ end local.get $0 f64.promote_f32 - local.tee $9 f64.const 6.283185307179586 f64.add - local.get $9 + local.get $0 + f64.promote_f32 f64.const 6.283185307179586 f64.sub local.get $5 @@ -9896,13 +9947,12 @@ if local.get $0 f64.promote_f32 - local.tee $8 + local.get $0 + f64.promote_f32 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $9 - local.get $8 - local.get $9 + local.tee $9 f64.const 1.5707963109016418 f64.mul f64.sub @@ -10759,10 +10809,10 @@ if local.get $0 f64.promote_f32 - local.tee $9 f64.const 1.5707963267948966 f64.add - local.get $9 + local.get $0 + f64.promote_f32 f64.const 1.5707963267948966 f64.sub local.get $5 @@ -10778,10 +10828,10 @@ else local.get $0 f64.promote_f32 - local.tee $9 f64.const 3.141592653589793 f64.add - local.get $9 + local.get $0 + f64.promote_f32 f64.const 3.141592653589793 f64.sub local.get $5 @@ -10807,10 +10857,10 @@ if local.get $0 f64.promote_f32 - local.tee $9 f64.const 4.71238898038469 f64.add - local.get $9 + local.get $0 + f64.promote_f32 f64.const 4.71238898038469 f64.sub local.get $5 @@ -10826,10 +10876,10 @@ else local.get $0 f64.promote_f32 - local.tee $9 f64.const 6.283185307179586 f64.add - local.get $9 + local.get $0 + f64.promote_f32 f64.const 6.283185307179586 f64.sub local.get $5 @@ -10862,13 +10912,12 @@ if local.get $0 f64.promote_f32 - local.tee $8 + local.get $0 + f64.promote_f32 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $9 - local.get $8 - local.get $9 + local.tee $9 f64.const 1.5707963109016418 f64.mul f64.sub @@ -11256,8 +11305,8 @@ (func $~lib/math/NativeMath.sincos (param $0 f64) (local $1 f64) (local $2 f64) - (local $3 i64) - (local $4 f64) + (local $3 f64) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 f64) @@ -11267,7 +11316,7 @@ (local $11 f64) local.get $0 i64.reinterpret_f64 - local.tee $3 + local.tee $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -11294,13 +11343,9 @@ end local.get $0 local.get $0 + local.get $0 f64.mul local.tee $1 - local.get $1 - f64.mul - local.set $4 - local.get $0 - local.get $1 local.get $0 f64.mul local.get $1 @@ -11314,7 +11359,9 @@ f64.const 0.00833333333332249 f64.add local.get $1 - local.get $4 + local.get $1 + local.get $1 + f64.mul f64.mul local.get $1 f64.const 1.58969099521155e-10 @@ -11329,6 +11376,13 @@ f64.mul f64.add global.set $~lib/math/NativeMath.sincos_sin + local.get $0 + local.get $0 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $3 f64.const 1 local.get $1 f64.const 0.5 @@ -11353,8 +11407,8 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $4 - local.get $4 + local.get $3 + local.get $3 f64.mul local.get $1 local.get $1 @@ -11391,7 +11445,7 @@ return end block $~lib/math/rempio2|inlined.3 (result i32) - local.get $3 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -11488,12 +11542,12 @@ f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $4 + local.tee $3 f64.const 1.5707963267341256 f64.mul f64.sub local.tee $0 - local.get $4 + local.get $3 f64.const 6.077100506506192e-11 f64.mul local.tee $1 @@ -11511,13 +11565,13 @@ i32.const 16 i32.gt_u if - local.get $4 + local.get $3 f64.const 2.0222662487959506e-21 f64.mul local.get $0 local.tee $1 local.get $1 - local.get $4 + local.get $3 f64.const 6.077100506303966e-11 f64.mul local.tee $2 @@ -11545,13 +11599,13 @@ i32.const 49 i32.gt_u if (result f64) - local.get $4 + local.get $3 f64.const 8.4784276603689e-32 f64.mul local.get $0 local.tee $1 local.get $1 - local.get $4 + local.get $3 f64.const 2.0222662487111665e-21 f64.mul local.tee $2 @@ -11578,12 +11632,12 @@ local.get $1 f64.sub global.set $~lib/math/rempio2_y1 - local.get $4 + local.get $3 i32.trunc_f64_s br $~lib/math/rempio2|inlined.3 end i32.const 0 - local.get $3 + local.get $4 call $~lib/math/pio2_large_quot local.tee $5 i32.sub @@ -11596,22 +11650,19 @@ local.tee $2 local.get $2 f64.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $2 f64.mul - local.set $9 + local.set $1 local.get $2 - local.get $1 + local.get $0 global.get $~lib/math/rempio2_y1 local.tee $7 f64.const 0.5 f64.mul local.get $1 - local.get $2 - f64.mul - local.tee $0 - local.get $1 - local.get $1 + local.get $0 + local.get $0 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -11619,10 +11670,12 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $1 - local.get $9 + local.get $0 + local.get $0 + local.get $0 f64.mul - local.get $1 + f64.mul + local.get $0 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -11634,12 +11687,20 @@ f64.mul local.get $7 f64.sub - local.get $0 + local.get $1 f64.const -0.16666666666666632 f64.mul f64.sub f64.sub - local.tee $4 + local.set $3 + local.get $2 + local.get $2 + f64.mul + local.tee $1 + local.get $1 + f64.mul + local.set $9 + local.get $3 local.set $0 f64.const 1 local.get $1 @@ -11693,7 +11754,7 @@ if local.get $1 local.set $0 - local.get $4 + local.get $3 f64.neg local.set $1 end @@ -44577,14 +44638,14 @@ global.set $~lib/math/random_state0_64 local.get $3 local.get $2 - local.get $2 i64.const 23 i64.shl + local.get $2 i64.xor local.tee $2 - local.get $2 i64.const 17 i64.shr_u + local.get $2 i64.xor i64.xor local.get $3 @@ -44643,24 +44704,24 @@ call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_32 - local.tee $4 + local.tee $5 global.get $~lib/math/random_state1_32 i32.xor - local.tee $5 - local.get $4 + local.tee $4 + local.get $5 i32.const 26 i32.rotl i32.xor - local.get $5 + local.get $4 i32.const 9 i32.shl i32.xor global.set $~lib/math/random_state0_32 - local.get $5 + local.get $4 i32.const 13 i32.rotl global.set $~lib/math/random_state1_32 - local.get $4 + local.get $5 i32.const -1640531525 i32.mul i32.const 5 diff --git a/tests/compiler/std/mod.optimized.wat b/tests/compiler/std/mod.optimized.wat index 7cc94f9d46..3a905d40e0 100644 --- a/tests/compiler/std/mod.optimized.wat +++ b/tests/compiler/std/mod.optimized.wat @@ -20,7 +20,6 @@ (local $7 i64) (local $8 i64) (local $9 i64) - (local $10 i64) block $__inlined_func$std/mod/check (result i32) block $__inlined_func$~lib/math/NativeMath.mod (result f64) local.get $0 @@ -44,18 +43,14 @@ i64.const 2047 i64.and local.set $7 - local.get $0 - i64.reinterpret_f64 - local.tee $3 - i64.const 63 - i64.shr_u - local.set $9 i32.const 1 local.get $4 local.get $4 f64.ne i32.const 1 - local.get $3 + local.get $0 + i64.reinterpret_f64 + local.tee $3 i64.const 52 i64.shr_u i64.const 2047 @@ -83,17 +78,21 @@ local.get $3 i64.const 1 i64.shl - local.tee $10 + local.tee $9 i64.ge_u if local.get $0 local.get $8 - local.get $10 + local.get $9 i64.ne f64.convert_i32_u f64.mul br $__inlined_func$~lib/math/NativeMath.mod end + local.get $3 + i64.const 63 + i64.shr_u + local.set $8 local.get $6 i64.eqz if (result i64) @@ -168,6 +167,7 @@ br $while-continue|0 end end + local.get $6 local.get $3 local.get $5 i64.ge_u @@ -182,17 +182,17 @@ local.set $3 end local.get $3 - local.get $3 i64.const 11 i64.shl i64.clz - local.tee $5 + local.tee $6 + i64.sub + local.set $5 + local.get $3 + local.get $6 i64.shl local.set $3 - local.get $6 local.get $5 - i64.sub - local.tee $5 i64.const 0 i64.gt_s if (result i64) @@ -210,7 +210,7 @@ i64.sub i64.shr_u end - local.get $9 + local.get $8 i64.const 63 i64.shl i64.or @@ -285,7 +285,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) block $__inlined_func$std/mod/check (result i32) block $__inlined_func$~lib/math/NativeMathf.mod (result f32) local.get $0 @@ -308,17 +307,13 @@ i32.const 255 i32.and local.set $6 - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const -2147483648 - i32.and - local.set $8 i32.const 1 local.get $1 local.get $1 f32.ne - local.get $3 + local.get $0 + i32.reinterpret_f32 + local.tee $3 i32.const 23 i32.shr_u i32.const 255 @@ -346,17 +341,21 @@ local.get $3 i32.const 1 i32.shl - local.tee $9 + local.tee $8 i32.ge_u if local.get $0 local.get $7 - local.get $9 + local.get $8 i32.ne f32.convert_i32_u f32.mul br $__inlined_func$~lib/math/NativeMathf.mod end + local.get $3 + i32.const -2147483648 + i32.and + local.set $7 local.get $5 if (result i32) local.get $3 @@ -429,6 +428,7 @@ br $while-continue|0 end end + local.get $5 local.get $3 local.get $4 i32.ge_u @@ -443,17 +443,17 @@ local.set $3 end local.get $3 - local.get $3 i32.const 8 i32.shl i32.clz - local.tee $4 + local.tee $5 + i32.sub + local.set $4 + local.get $3 + local.get $5 i32.shl local.set $3 - local.get $5 local.get $4 - i32.sub - local.tee $4 i32.const 0 i32.gt_s if (result i32) @@ -471,7 +471,7 @@ i32.sub i32.shr_u end - local.get $8 + local.get $7 i32.or f32.reinterpret_i32 br $__inlined_func$~lib/math/NativeMathf.mod diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 5079d78e9e..40f1243a95 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -104,8 +104,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -165,11 +165,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -183,10 +183,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -223,11 +223,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -288,19 +288,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -366,22 +366,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -629,13 +631,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -672,11 +677,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -700,11 +705,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1087,8 +1092,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1107,11 +1111,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1121,12 +1125,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1139,7 +1143,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1148,6 +1151,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1246,13 +1250,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1381,18 +1385,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1409,19 +1408,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 - local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index ba8ff9c7c8..5fec91b589 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -163,8 +163,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -224,11 +224,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -242,10 +242,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1520 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -282,11 +282,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -347,19 +347,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -425,22 +425,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -688,13 +690,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -731,11 +736,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -759,11 +764,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1146,8 +1151,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1166,11 +1170,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1180,12 +1184,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1198,7 +1202,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1207,6 +1210,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1253,13 +1257,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1388,18 +1392,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1416,19 +1415,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -2133,23 +2132,22 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a2 global.get $~lib/memory/__stack_pointer - local.tee $1 global.get $std/operator-overloading/a1 - local.tee $0 + local.tee $1 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a @@ -2183,23 +2181,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/s1 local.tee $0 + global.get $std/operator-overloading/s1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/s2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.sub local.get $0 - i32.load offset=4 + i32.load + i32.sub local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s @@ -2231,23 +2229,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/m1 local.tee $0 + global.get $std/operator-overloading/m1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/m2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.mul local.get $0 - i32.load offset=4 + i32.load + i32.mul local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.mul call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m @@ -2281,23 +2279,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/d1 local.tee $0 + global.get $std/operator-overloading/d1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/d2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.div_s local.get $0 - i32.load offset=4 + i32.load + i32.div_s local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.div_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d @@ -2331,23 +2329,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/f1 local.tee $0 + global.get $std/operator-overloading/f1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/f2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.rem_s local.get $0 - i32.load offset=4 + i32.load + i32.rem_s local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.rem_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f @@ -2378,23 +2376,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/p1 local.tee $0 + global.get $std/operator-overloading/p1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/p2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - call $~lib/math/ipow32 local.get $0 - i32.load offset=4 + i32.load + call $~lib/math/ipow32 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p @@ -2428,23 +2426,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/n1 local.tee $0 + global.get $std/operator-overloading/n1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/n2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.and local.get $0 - i32.load offset=4 + i32.load + i32.and local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.and call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n @@ -2478,23 +2476,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/o1 local.tee $0 + global.get $std/operator-overloading/o1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/o2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.or local.get $0 - i32.load offset=4 + i32.load + i32.or local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.or call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o @@ -2528,23 +2526,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/x1 local.tee $0 + global.get $std/operator-overloading/x1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/x2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.xor local.get $0 - i32.load offset=4 + i32.load + i32.xor local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.xor call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x @@ -2578,24 +2576,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/eq1 local.tee $0 + global.get $std/operator-overloading/eq1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/eq2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.eq if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.eq else i32.const 0 @@ -2621,24 +2619,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq4 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/eq3 local.tee $0 + global.get $std/operator-overloading/eq3 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/eq4 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.eq if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.eq else i32.const 0 @@ -2654,24 +2652,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/eq1 local.tee $0 + global.get $std/operator-overloading/eq1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/eq2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.ne if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.ne else i32.const 0 @@ -2687,24 +2685,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/eq3 local.tee $0 + global.get $std/operator-overloading/eq3 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/eq4 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.ne if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.ne else i32.const 0 @@ -2730,24 +2728,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gt2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/gt1 local.tee $0 + global.get $std/operator-overloading/gt1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/gt2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.gt_s if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.gt_s else i32.const 0 @@ -2773,24 +2771,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gte2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/gte1 local.tee $0 + global.get $std/operator-overloading/gte1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/gte2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.ge_s if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.ge_s else i32.const 0 @@ -2816,24 +2814,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/le2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/le1 local.tee $0 + global.get $std/operator-overloading/le1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/le2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.lt_s if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.lt_s else i32.const 0 @@ -2859,24 +2857,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/leq2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/leq1 local.tee $0 + global.get $std/operator-overloading/leq1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/leq2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.le_s if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.le_s else i32.const 0 @@ -3386,18 +3384,18 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/ais1 local.tee $0 + global.get $std/operator-overloading/ais1 + local.tee $1 i32.store - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load i32.const 1 i32.add - local.get $0 + local.get $1 i32.load offset=4 i32.const 1 i32.add @@ -3408,23 +3406,22 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais2 global.get $~lib/memory/__stack_pointer - local.tee $1 global.get $std/operator-overloading/ais1 - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais2 - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais @@ -3472,23 +3469,22 @@ call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii2 global.get $~lib/memory/__stack_pointer - local.tee $1 global.get $std/operator-overloading/aii1 - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/aii2 - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii diff --git a/tests/compiler/std/pointer.optimized.wat b/tests/compiler/std/pointer.optimized.wat index e440a71518..c286865cc4 100644 --- a/tests/compiler/std/pointer.optimized.wat +++ b/tests/compiler/std/pointer.optimized.wat @@ -65,17 +65,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -100,9 +112,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -180,20 +196,28 @@ i32.load8_u i32.store8 local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 1 + i32.add + local.set $2 local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.add - local.set $0 + local.set $3 + local.get $0 local.get $1 - i32.const 2 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 i32.add - local.tee $3 + local.set $0 + local.get $3 i32.const 1 i32.add local.set $1 @@ -212,7 +236,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $2 i32.const 8 i32.shl @@ -222,30 +248,42 @@ i32.or i32.store local.get $0 - local.get $2 - i32.const 24 - i32.shr_u + i32.const 4 + i32.add local.get $1 - i32.load offset=5 - local.tee $2 + i32.const 5 + i32.add + i32.load + local.tee $3 i32.const 8 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $2 i32.const 24 i32.shr_u + i32.or + i32.store + local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $2 i32.const 8 i32.shl + local.get $3 + i32.const 24 + i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -253,7 +291,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -279,19 +317,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $4 i32.const 2 i32.sub @@ -303,7 +345,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $2 i32.const 16 i32.shl @@ -313,30 +357,42 @@ i32.or i32.store local.get $0 - local.get $2 - i32.const 16 - i32.shr_u + i32.const 4 + i32.add local.get $1 - i32.load offset=6 - local.tee $2 + i32.const 6 + i32.add + i32.load + local.tee $3 i32.const 16 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $2 i32.const 16 i32.shr_u + i32.or + i32.store + local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $2 i32.const 16 i32.shl + local.get $3 + i32.const 16 + i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -344,7 +400,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -390,7 +446,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $2 i32.const 24 i32.shl @@ -400,30 +458,42 @@ i32.or i32.store local.get $0 - local.get $2 - i32.const 8 - i32.shr_u + i32.const 4 + i32.add local.get $1 - i32.load offset=7 - local.tee $2 + i32.const 7 + i32.add + i32.load + local.tee $3 i32.const 24 i32.shl - i32.or - i32.store offset=4 - local.get $0 local.get $2 i32.const 8 i32.shr_u + i32.or + i32.store + local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $2 i32.const 24 i32.shl + local.get $3 + i32.const 8 + i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -431,7 +501,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -458,145 +528,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 end local.get $4 i32.const 8 @@ -607,73 +709,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 end local.get $4 i32.const 4 @@ -684,37 +802,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 end local.get $4 i32.const 2 @@ -725,19 +851,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $2 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $2 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $1 - local.get $3 local.get $2 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + i32.load8_u + i32.store8 end local.get $4 i32.const 1 @@ -835,10 +965,9 @@ i32.add global.set $std/pointer/one global.get $std/pointer/one - local.tee $0 global.set $std/pointer/nextOne global.get $std/pointer/nextOne - local.get $0 + global.get $std/pointer/one i32.ne if i32.const 0 @@ -1193,7 +1322,9 @@ unreachable end global.get $std/pointer/buf - f32.load offset=4 + i32.const 4 + i32.add + f32.load f32.const 1.2000000476837158 f32.ne if @@ -1217,7 +1348,9 @@ unreachable end global.get $std/pointer/buf - f32.load offset=4 + i32.const 4 + i32.add + f32.load f32.const 1.2000000476837158 f32.ne if @@ -1253,13 +1386,15 @@ unreachable end global.get $std/pointer/buf - local.tee $3 + local.tee $0 i32.const 8 i32.add f32.const 1.2999999523162842 f32.store - local.get $3 - f32.load offset=8 + local.get $0 + i32.const 8 + i32.add + f32.load f32.const 1.2999999523162842 f32.ne if @@ -1271,7 +1406,9 @@ unreachable end global.get $std/pointer/buf - f32.load offset=8 + i32.const 8 + i32.add + f32.load f32.const 1.2999999523162842 f32.ne if diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index c389f66592..aaf284c996 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -102,8 +102,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -163,11 +163,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -181,10 +181,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1648 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -221,11 +221,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -305,19 +305,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -383,22 +383,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -646,13 +648,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -689,11 +694,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -717,11 +722,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1104,8 +1109,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1471,13 +1475,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1492,7 +1496,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1529,7 +1534,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1538,6 +1542,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1598,12 +1603,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1392 @@ -1616,8 +1621,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1631,7 +1637,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1640,15 +1646,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1663,22 +1669,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1688,37 +1695,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1726,7 +1734,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1866,8 +1874,6 @@ local.tee $8 i32.store8 local.get $2 - local.get $6 - local.get $1 local.get $8 i32.extend8_s i32.const -1028477379 @@ -1897,9 +1903,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -2054,6 +2062,7 @@ end local.get $0 i32.load offset=8 + local.set $3 local.get $0 local.get $0 i32.load offset=16 @@ -2064,6 +2073,7 @@ local.get $2 i32.const 3 i32.shl + local.get $3 i32.add local.tee $2 local.get $1 @@ -2077,9 +2087,9 @@ local.get $2 local.get $0 i32.load - local.get $4 local.get $0 i32.load offset=4 + local.get $4 i32.and i32.const 2 i32.shl @@ -2096,6 +2106,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2140,17 +2152,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2175,9 +2199,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2255,27 +2283,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2287,7 +2323,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2297,8 +2335,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2306,10 +2348,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2317,10 +2363,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2328,7 +2378,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2354,19 +2404,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2378,7 +2432,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2388,8 +2444,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2397,10 +2457,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2408,10 +2472,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2419,7 +2487,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2465,7 +2533,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2475,8 +2545,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2484,10 +2558,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2495,10 +2573,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2506,7 +2588,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2533,145 +2615,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2682,73 +2796,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2759,37 +2889,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2800,19 +2938,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2831,19 +2973,19 @@ (local $7 i32) (local $8 i32) (local $9 i32) - local.get $1 local.get $0 i32.load offset=8 local.tee $8 local.get $2 i32.shr_u - i32.gt_u + local.get $1 + i32.lt_u if - local.get $1 i32.const 1073741820 local.get $2 i32.shr_u - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1456 i32.const 1616 @@ -3134,7 +3276,6 @@ end ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -3155,12 +3296,13 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 0 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $1 @@ -3399,23 +3541,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -3480,23 +3622,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -3586,23 +3728,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -3668,23 +3810,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -3751,10 +3893,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $9 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3859,10 +4002,10 @@ local.get $11 i32.lt_s if - local.get $10 local.get $7 i32.const 3 i32.shl + local.get $10 i32.add local.tee $1 i32.load offset=4 @@ -3899,7 +4042,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -3907,10 +4049,10 @@ local.tee $1 i32.store offset=8 loop $for-loop|4 - local.get $4 local.get $3 i32.load offset=12 - i32.lt_s + local.get $4 + i32.gt_s if local.get $3 local.get $4 @@ -3926,16 +4068,16 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul @@ -3945,9 +4087,9 @@ local.get $2 i32.load offset=4 local.get $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -4043,23 +4185,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -4125,23 +4267,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -4230,23 +4372,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -4311,23 +4453,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -4393,23 +4535,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -4577,11 +4719,7 @@ local.tee $8 i32.store8 local.get $2 - local.get $6 - local.get $1 local.get $8 - i32.const 255 - i32.and i32.const -1028477379 i32.mul i32.const 374761394 @@ -4609,9 +4747,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -4767,6 +4907,7 @@ end local.get $0 i32.load offset=8 + local.set $3 local.get $0 local.get $0 i32.load offset=16 @@ -4777,6 +4918,7 @@ local.get $2 i32.const 3 i32.shl + local.get $3 i32.add local.tee $2 local.get $1 @@ -4790,9 +4932,9 @@ local.get $2 local.get $0 i32.load - local.get $4 local.get $0 i32.load offset=4 + local.get $4 i32.and i32.const 2 i32.shl @@ -5006,23 +5148,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -5088,23 +5230,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -5196,23 +5338,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -5279,23 +5421,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -5362,10 +5504,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $9 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5470,10 +5613,10 @@ local.get $11 i32.lt_s if - local.get $10 local.get $7 i32.const 3 i32.shl + local.get $10 i32.add local.tee $1 i32.load offset=4 @@ -5510,7 +5653,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -5518,10 +5660,10 @@ local.tee $1 i32.store offset=8 loop $for-loop|4 - local.get $4 local.get $3 i32.load offset=12 - i32.lt_s + local.get $4 + i32.gt_s if local.get $3 local.get $4 @@ -5538,16 +5680,16 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul @@ -5557,9 +5699,9 @@ local.get $2 i32.load offset=4 local.get $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -5657,23 +5799,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -5740,23 +5882,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -5847,23 +5989,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -5929,23 +6071,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -6012,23 +6154,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -6196,8 +6338,6 @@ local.tee $8 i32.store16 local.get $2 - local.get $6 - local.get $1 local.get $8 i32.extend16_s i32.const -1028477379 @@ -6227,9 +6367,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -6384,6 +6526,7 @@ end local.get $0 i32.load offset=8 + local.set $3 local.get $0 local.get $0 i32.load offset=16 @@ -6394,6 +6537,7 @@ local.get $2 i32.const 3 i32.shl + local.get $3 i32.add local.tee $2 local.get $1 @@ -6407,9 +6551,9 @@ local.get $2 local.get $0 i32.load - local.get $4 local.get $0 i32.load offset=4 + local.get $4 i32.and i32.const 2 i32.shl @@ -6423,7 +6567,6 @@ end ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -6444,12 +6587,13 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 1 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -6661,23 +6805,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -6742,23 +6886,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -6848,23 +6992,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -6930,23 +7074,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -7013,10 +7157,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $9 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7123,10 +7268,10 @@ local.get $11 i32.lt_s if - local.get $10 local.get $7 i32.const 3 i32.shl + local.get $10 i32.add local.tee $1 i32.load offset=4 @@ -7163,7 +7308,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -7171,10 +7315,10 @@ local.tee $1 i32.store offset=8 loop $for-loop|4 - local.get $4 local.get $3 i32.load offset=12 - i32.lt_s + local.get $4 + i32.gt_s if local.get $3 local.get $4 @@ -7190,16 +7334,16 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul @@ -7209,9 +7353,9 @@ local.get $2 i32.load offset=4 local.get $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -7307,23 +7451,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -7389,23 +7533,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -7494,23 +7638,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -7575,23 +7719,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -7657,23 +7801,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -7841,11 +7985,7 @@ local.tee $8 i32.store16 local.get $2 - local.get $6 - local.get $1 local.get $8 - i32.const 65535 - i32.and i32.const -1028477379 i32.mul i32.const 374761395 @@ -7873,9 +8013,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -8031,6 +8173,7 @@ end local.get $0 i32.load offset=8 + local.set $3 local.get $0 local.get $0 i32.load offset=16 @@ -8041,6 +8184,7 @@ local.get $2 i32.const 3 i32.shl + local.get $3 i32.add local.tee $2 local.get $1 @@ -8054,9 +8198,9 @@ local.get $2 local.get $0 i32.load - local.get $4 local.get $0 i32.load offset=4 + local.get $4 i32.and i32.const 2 i32.shl @@ -8272,23 +8416,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -8354,23 +8498,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -8462,23 +8606,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -8545,23 +8689,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -8628,10 +8772,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $9 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8738,10 +8883,10 @@ local.get $11 i32.lt_s if - local.get $10 local.get $7 i32.const 3 i32.shl + local.get $10 i32.add local.tee $1 i32.load offset=4 @@ -8778,7 +8923,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -8786,10 +8930,10 @@ local.tee $1 i32.store offset=8 loop $for-loop|4 - local.get $4 local.get $3 i32.load offset=12 - i32.lt_s + local.get $4 + i32.gt_s if local.get $3 local.get $4 @@ -8806,16 +8950,16 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul @@ -8825,9 +8969,9 @@ local.get $2 i32.load offset=4 local.get $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -8925,23 +9069,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -9008,23 +9152,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -9115,23 +9259,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -9197,23 +9341,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -9280,23 +9424,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -9464,8 +9608,6 @@ local.tee $8 i32.store local.get $2 - local.get $6 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -9494,9 +9636,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -9648,6 +9792,7 @@ end local.get $0 i32.load offset=8 + local.set $3 local.get $0 local.get $0 i32.load offset=16 @@ -9658,6 +9803,7 @@ local.get $2 i32.const 3 i32.shl + local.get $3 i32.add local.tee $2 local.get $1 @@ -9671,9 +9817,9 @@ local.get $2 local.get $0 i32.load - local.get $4 local.get $0 i32.load offset=4 + local.get $4 i32.and i32.const 2 i32.shl @@ -9687,7 +9833,6 @@ end ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -9708,12 +9853,13 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -9920,23 +10066,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -9998,23 +10144,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -10100,23 +10246,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -10179,23 +10325,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -10260,10 +10406,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $9 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10370,10 +10517,10 @@ local.get $11 i32.lt_s if - local.get $10 local.get $7 i32.const 3 i32.shl + local.get $10 i32.add local.tee $1 i32.load offset=4 @@ -10410,7 +10557,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -10418,10 +10564,10 @@ local.tee $1 i32.store offset=8 loop $for-loop|2 - local.get $4 local.get $3 i32.load offset=12 - i32.lt_s + local.get $4 + i32.gt_s if local.get $3 local.get $4 @@ -10436,16 +10582,16 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul @@ -10455,9 +10601,9 @@ local.get $2 i32.load offset=4 local.get $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -10549,23 +10695,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -10628,23 +10774,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -10729,23 +10875,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -10807,23 +10953,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -10886,23 +11032,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -11068,8 +11214,6 @@ local.tee $8 i32.store local.get $2 - local.get $6 - local.get $1 local.get $8 i32.const -1028477379 i32.mul @@ -11098,9 +11242,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $6 i32.add local.tee $8 i32.load @@ -11252,6 +11398,7 @@ end local.get $0 i32.load offset=8 + local.set $3 local.get $0 local.get $0 i32.load offset=16 @@ -11262,6 +11409,7 @@ local.get $2 i32.const 3 i32.shl + local.get $3 i32.add local.tee $2 local.get $1 @@ -11275,9 +11423,9 @@ local.get $2 local.get $0 i32.load - local.get $4 local.get $0 i32.load offset=4 + local.get $4 i32.and i32.const 2 i32.shl @@ -11485,23 +11633,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -11563,23 +11711,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -11665,23 +11813,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -11744,23 +11892,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -11825,10 +11973,11 @@ call $~lib/builtins/abort unreachable end + global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $9 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -11935,10 +12084,10 @@ local.get $11 i32.lt_s if - local.get $10 local.get $7 i32.const 3 i32.shl + local.get $10 i32.add local.tee $1 i32.load offset=4 @@ -11975,7 +12124,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -11983,10 +12131,10 @@ local.tee $1 i32.store offset=8 loop $for-loop|2 - local.get $4 local.get $3 i32.load offset=12 - i32.lt_s + local.get $4 + i32.gt_s if local.get $3 local.get $4 @@ -12001,16 +12149,16 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul @@ -12020,9 +12168,9 @@ local.get $2 i32.load offset=4 local.get $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -12114,23 +12262,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -12193,23 +12341,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -12294,23 +12442,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -12372,23 +12520,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -12451,23 +12599,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -12583,22 +12731,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -12718,7 +12866,6 @@ local.tee $6 i64.store local.get $2 - local.get $7 local.get $1 local.get $6 i32.wrap_i64 @@ -12763,6 +12910,7 @@ i32.and i32.const 2 i32.shl + local.get $7 i32.add local.tee $9 i32.load @@ -12926,6 +13074,7 @@ end local.get $0 i32.load offset=8 + local.set $3 local.get $0 local.get $0 i32.load offset=16 @@ -12936,6 +13085,7 @@ local.get $2 i32.const 4 i32.shl + local.get $3 i32.add local.tee $2 local.get $1 @@ -12949,9 +13099,9 @@ local.get $2 local.get $0 i32.load - local.get $4 local.get $0 i32.load offset=4 + local.get $4 i32.and i32.const 2 i32.shl @@ -12965,7 +13115,6 @@ end ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -12986,12 +13135,13 @@ local.get $1 i32.const 1 i32.add - local.tee $3 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $3 + local.get $1 + i32.const 1 + i32.add i32.store offset=12 end local.get $0 @@ -13326,7 +13476,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13434,10 +13585,10 @@ local.get $12 i32.lt_s if - local.get $11 local.get $8 i32.const 4 i32.shl + local.get $11 i32.add local.tee $2 i32.load offset=8 @@ -13474,7 +13625,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -13482,10 +13632,10 @@ local.tee $2 i32.store offset=8 loop $for-loop|2 - local.get $7 local.get $1 i32.load offset=12 - i32.lt_s + local.get $7 + i32.gt_s if local.get $4 local.get $1 @@ -13696,22 +13846,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -13831,7 +13981,6 @@ local.tee $6 i64.store local.get $2 - local.get $7 local.get $1 local.get $6 i32.wrap_i64 @@ -13876,6 +14025,7 @@ i32.and i32.const 2 i32.shl + local.get $7 i32.add local.tee $9 i32.load @@ -14039,6 +14189,7 @@ end local.get $0 i32.load offset=8 + local.set $3 local.get $0 local.get $0 i32.load offset=16 @@ -14049,6 +14200,7 @@ local.get $2 i32.const 4 i32.shl + local.get $3 i32.add local.tee $2 local.get $1 @@ -14062,9 +14214,9 @@ local.get $2 local.get $0 i32.load - local.get $4 local.get $0 i32.load offset=4 + local.get $4 i32.and i32.const 2 i32.shl @@ -14369,7 +14521,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14477,10 +14630,10 @@ local.get $12 i32.lt_s if - local.get $11 local.get $8 i32.const 4 i32.shl + local.get $11 i32.add local.tee $2 i32.load offset=8 @@ -14517,7 +14670,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -14525,10 +14677,10 @@ local.tee $2 i32.store offset=8 loop $for-loop|2 - local.get $7 local.get $1 i32.load offset=12 - i32.lt_s + local.get $7 + i32.gt_s if local.get $4 local.get $1 @@ -14790,8 +14942,6 @@ local.tee $4 f32.store local.get $2 - local.get $7 - local.get $1 local.get $4 i32.reinterpret_f32 i32.const -1028477379 @@ -14821,9 +14971,11 @@ i32.const 16 i32.shr_u i32.xor + local.get $1 i32.and i32.const 2 i32.shl + local.get $7 i32.add local.tee $9 i32.load @@ -14976,6 +15128,7 @@ end local.get $0 i32.load offset=8 + local.set $3 local.get $0 local.get $0 i32.load offset=16 @@ -14986,6 +15139,7 @@ local.get $2 i32.const 3 i32.shl + local.get $3 i32.add local.tee $2 local.get $1 @@ -14999,9 +15153,9 @@ local.get $2 local.get $0 i32.load - local.get $4 local.get $0 i32.load offset=4 + local.get $4 i32.and i32.const 2 i32.shl @@ -15211,23 +15365,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -15290,23 +15444,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -15393,23 +15547,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -15473,23 +15627,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -15555,7 +15709,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -15662,10 +15817,10 @@ local.get $12 i32.lt_s if - local.get $11 local.get $8 i32.const 3 i32.shl + local.get $11 i32.add local.tee $5 i32.load offset=4 @@ -15681,10 +15836,10 @@ local.get $5 f32.load local.set $2 - local.get $0 local.get $4 i32.load offset=12 - i32.ge_u + local.get $0 + i32.le_u if local.get $0 i32.const 0 @@ -15737,7 +15892,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -15745,10 +15899,10 @@ local.tee $1 i32.store offset=8 loop $for-loop|2 - local.get $7 local.get $4 i32.load offset=12 - i32.lt_s + local.get $7 + i32.gt_s if local.get $4 local.get $7 @@ -15764,16 +15918,16 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul @@ -15783,9 +15937,9 @@ local.get $3 i32.load offset=4 local.get $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -15878,23 +16032,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -15958,23 +16112,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -16060,23 +16214,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -16139,23 +16293,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -16219,23 +16373,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -16325,15 +16479,15 @@ unreachable ) (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) local.get $0 i32.load local.get $0 i32.load offset=4 local.get $1 i64.reinterpret_f64 - local.tee $3 + local.tee $2 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16343,7 +16497,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16354,22 +16508,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -16385,7 +16539,7 @@ if local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -16397,7 +16551,7 @@ f64.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $2 + local.get $3 i32.const -2 i32.and local.set $0 @@ -16490,7 +16644,6 @@ local.tee $5 f64.store local.get $2 - local.get $8 local.get $1 local.get $5 i64.reinterpret_f64 @@ -16537,6 +16690,7 @@ i32.and i32.const 2 i32.shl + local.get $8 i32.add local.tee $10 i32.load @@ -16703,6 +16857,7 @@ end local.get $0 i32.load offset=8 + local.set $3 local.get $0 local.get $0 i32.load offset=16 @@ -16713,6 +16868,7 @@ local.get $2 i32.const 4 i32.shl + local.get $3 i32.add local.tee $2 local.get $1 @@ -16726,9 +16882,9 @@ local.get $2 local.get $0 i32.load - local.get $5 local.get $0 i32.load offset=4 + local.get $5 i32.and i32.const 2 i32.shl @@ -17036,7 +17192,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $10 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17144,10 +17301,10 @@ local.get $12 i32.lt_s if - local.get $11 local.get $8 i32.const 4 i32.shl + local.get $11 i32.add local.tee $5 i32.load offset=8 @@ -17163,10 +17320,10 @@ local.get $5 f64.load local.set $3 - local.get $0 local.get $1 i32.load offset=12 - i32.ge_u + local.get $0 + i32.le_u if local.get $0 i32.const 0 @@ -17219,7 +17376,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -17227,10 +17383,10 @@ local.tee $0 i32.store offset=8 loop $for-loop|2 - local.get $7 local.get $1 i32.load offset=12 - i32.lt_s + local.get $7 + i32.gt_s if local.get $4 local.get $1 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index e6996f90c4..0aa81e4efa 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -61,10 +61,10 @@ (export "memory" (memory $0)) (start $~start) (func $~lib/array/Array#__get (param $0 i32) (result i32) - local.get $0 i32.const 1100 i32.load - i32.ge_u + local.get $0 + i32.le_u if i32.const 1472 i32.const 1536 @@ -140,8 +140,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -201,11 +201,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -219,10 +219,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1952 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1824 @@ -259,11 +259,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -343,19 +343,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -421,22 +421,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -684,13 +686,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -727,11 +732,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1904 @@ -755,11 +760,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1904 @@ -1142,8 +1147,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1462,6 +1466,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1506,17 +1512,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1541,9 +1559,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -1621,27 +1643,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1653,7 +1683,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1663,8 +1695,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -1672,10 +1708,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1683,10 +1723,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -1694,7 +1738,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -1720,19 +1764,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -1744,7 +1792,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -1754,8 +1804,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -1763,10 +1817,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -1774,10 +1832,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -1785,7 +1847,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -1831,7 +1893,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -1841,8 +1905,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -1850,10 +1918,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -1861,10 +1933,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -1872,7 +1948,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -1899,145 +1975,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 + local.get $4 + i32.load8_u + i32.store8 + local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2048,73 +2156,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2125,37 +2249,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2166,19 +2298,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2198,29 +2334,28 @@ (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 local.get $0 i32.const 20 i32.sub - local.tee $6 + local.tee $2 i32.load i32.const -4 i32.and i32.const 16 i32.sub - i32.le_u + local.get $1 + i32.ge_u if - local.get $6 + local.get $2 local.get $1 i32.store offset=16 local.get $0 return end - local.get $6 + local.get $2 i32.load offset=12 - local.set $7 + local.set $3 local.get $1 - local.tee $3 i32.const 1073741804 i32.ge_u if @@ -2237,12 +2372,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $1 + local.set $4 loop $do-continue|0 - local.get $1 + local.get $4 call $~lib/rt/itcms/step i32.sub - local.set $1 + local.set $4 global.get $~lib/rt/itcms/state i32.eqz if @@ -2258,36 +2393,37 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $1 + local.get $4 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + local.tee $4 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $4 i32.add global.set $~lib/rt/itcms/threshold end end - local.get $3 + local.get $1 i32.const 16 i32.add - local.set $1 + local.set $4 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $1 + local.set $7 + local.get $7 + local.get $4 i32.const 1073741820 i32.gt_u if @@ -2298,13 +2434,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $4 i32.const 19 i32.add i32.const -16 @@ -2312,34 +2448,34 @@ i32.const 4 i32.sub end - local.tee $1 - call $~lib/rt/tlsf/searchBlock local.tee $4 + call $~lib/rt/tlsf/searchBlock + local.tee $5 i32.eqz if memory.size - local.tee $2 - local.get $1 + local.tee $6 + local.get $4 i32.const 536870910 i32.lt_u if (result i32) - local.get $1 i32.const 1 i32.const 27 - local.get $1 + local.get $4 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $4 i32.add else - local.get $1 + local.get $4 end i32.const 4 - local.get $5 + local.get $7 i32.load offset=1568 - local.get $2 + local.get $6 i32.const 16 i32.shl i32.const 4 @@ -2353,16 +2489,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $4 - local.get $2 - local.get $4 - i32.gt_s + local.tee $5 + local.get $5 + local.get $6 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $4 + local.get $5 memory.grow i32.const 0 i32.lt_s @@ -2370,18 +2506,18 @@ unreachable end end - local.get $5 - local.get $2 + local.get $7 + local.get $6 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $1 + local.get $7 + local.get $4 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $5 i32.eqz if i32.const 0 @@ -2392,12 +2528,12 @@ unreachable end end - local.get $1 - local.get $4 + local.get $5 i32.load i32.const -4 i32.and - i32.gt_u + local.get $4 + i32.lt_u if i32.const 0 i32.const 1904 @@ -2406,16 +2542,14 @@ call $~lib/builtins/abort unreachable end + local.get $7 local.get $5 - local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $1 - local.set $2 - local.get $4 - local.tee $1 + local.get $5 + local.tee $6 i32.load - local.set $4 - local.get $2 + local.set $5 + local.get $4 i32.const 4 i32.add i32.const 15 @@ -2428,24 +2562,24 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $4 i32.sub local.tee $8 i32.const 16 i32.ge_u if - local.get $1 - local.get $2 - local.get $4 + local.get $6 + local.get $5 i32.const 2 i32.and + local.get $4 i32.or i32.store - local.get $2 - local.get $1 + local.get $4 + local.get $6 i32.const 4 i32.add i32.add @@ -2456,26 +2590,27 @@ i32.const 1 i32.or i32.store - local.get $5 + local.get $7 local.get $4 call $~lib/rt/tlsf/insertBlock else - local.get $1 - local.get $4 + local.get $6 + local.get $5 i32.const -2 i32.and i32.store - local.get $1 + local.get $6 i32.const 4 i32.add - local.tee $4 - local.get $1 + local.get $6 i32.load i32.const -4 i32.and i32.add - local.get $4 - local.get $1 + local.get $6 + i32.const 4 + i32.add + local.get $6 i32.load i32.const -4 i32.and @@ -2485,37 +2620,38 @@ i32.and i32.store end - local.get $1 - local.get $7 + local.get $6 + local.tee $4 + local.get $3 i32.store offset=12 + local.get $4 local.get $1 - local.get $3 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $5 i32.load offset=8 - local.set $4 - local.get $1 - local.get $2 + local.set $3 + local.get $4 global.get $~lib/rt/itcms/white + local.get $5 i32.or i32.store offset=4 - local.get $1 local.get $4 + local.get $3 i32.store offset=8 - local.get $4 - local.get $1 - local.get $4 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $4 i32.or i32.store offset=4 - local.get $2 - local.get $1 + local.get $5 + local.get $4 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $1 + local.get $4 i32.load i32.const -4 i32.and @@ -2523,30 +2659,29 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $4 i32.const 20 i32.add local.tee $4 - local.get $3 + local.get $1 call $~lib/memory/memory.fill - local.get $3 - local.get $6 + local.get $1 + local.get $2 i32.load offset=16 - local.tee $1 + local.tee $2 local.get $1 - local.get $3 - i32.gt_u + local.get $2 + i32.lt_u select local.set $5 block $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.tee $1 local.get $4 - local.tee $0 + local.tee $1 + local.get $0 i32.eq br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 local.get $0 + local.get $1 i32.sub local.get $5 i32.sub @@ -2557,26 +2692,26 @@ i32.sub i32.le_u if - local.get $0 local.get $1 + local.get $0 local.get $5 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end local.get $0 local.get $1 - i32.lt_u + i32.gt_u if - local.get $1 + local.get $0 i32.const 7 i32.and - local.get $0 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $0 + local.get $1 i32.const 7 i32.and if @@ -2587,18 +2722,18 @@ i32.const 1 i32.sub local.set $5 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 local.get $1 local.tee $2 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 local.get $2 + local.get $3 i32.load8_u i32.store8 br $while-continue|0 @@ -2609,22 +2744,22 @@ i32.const 8 i32.ge_u if - local.get $0 local.get $1 + local.get $0 i64.load i64.store local.get $5 i32.const 8 i32.sub local.set $5 - local.get $0 - i32.const 8 - i32.add - local.set $0 local.get $1 i32.const 8 i32.add local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 br $while-continue|1 end end @@ -2632,18 +2767,18 @@ loop $while-continue|2 local.get $5 if - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 local.get $1 local.tee $2 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 local.get $2 + local.get $3 i32.load8_u i32.store8 local.get $5 @@ -2654,16 +2789,16 @@ end end else - local.get $1 + local.get $0 i32.const 7 i32.and - local.get $0 + local.get $1 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $0 + local.get $1 local.get $5 i32.add i32.const 7 @@ -2672,13 +2807,13 @@ local.get $5 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 + local.get $1 local.get $5 i32.const 1 i32.sub local.tee $5 i32.add - local.get $1 + local.get $0 local.get $5 i32.add i32.load8_u @@ -2691,13 +2826,13 @@ i32.const 8 i32.ge_u if - local.get $0 + local.get $1 local.get $5 i32.const 8 i32.sub local.tee $5 i32.add - local.get $1 + local.get $0 local.get $5 i32.add i64.load @@ -2709,13 +2844,13 @@ loop $while-continue|5 local.get $5 if - local.get $0 + local.get $1 local.get $5 i32.const 1 i32.sub local.tee $5 i32.add - local.get $1 + local.get $0 local.get $5 i32.add i32.load8_u @@ -2851,10 +2986,10 @@ end ) (func $~lib/array/Array#__get (param $0 i32) (result i64) - local.get $0 i32.const 1196 i32.load - i32.ge_u + local.get $0 + i32.le_u if i32.const 1472 i32.const 1536 @@ -2872,10 +3007,10 @@ i64.load ) (func $~lib/array/Array#__get (param $0 i32) (result f32) - local.get $0 i32.const 1276 i32.load - i32.ge_u + local.get $0 + i32.le_u if i32.const 1472 i32.const 1536 @@ -2893,10 +3028,10 @@ f32.load ) (func $~lib/array/Array#__get (param $0 i32) (result f64) - local.get $0 i32.const 1372 i32.load - i32.ge_u + local.get $0 + i32.le_u if i32.const 1472 i32.const 1536 @@ -2948,7 +3083,6 @@ call $start:std/static-array ) (func $start:std/static-array - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2965,10 +3099,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store i32.const 1100 diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index 6580b71cf3..e728f67218 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -158,8 +158,10 @@ unreachable end local.get $0 + i32.const 4 + i32.add local.get $1 - i32.store offset=4 + i32.store ) (func $~lib/rt/itcms/visitRoots (local $0 i32) @@ -230,8 +232,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -291,11 +293,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -309,10 +311,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 3088 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1088 i32.const 1536 @@ -349,11 +351,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -433,19 +435,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -511,22 +513,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -774,13 +778,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -817,11 +824,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -845,11 +852,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1616 @@ -1232,8 +1239,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1599,13 +1605,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1620,7 +1626,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1657,7 +1664,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1666,6 +1672,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1726,12 +1733,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1616 @@ -1744,8 +1751,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1759,7 +1767,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1768,15 +1776,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1791,22 +1799,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1816,37 +1825,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1854,7 +1864,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1866,6 +1876,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1910,17 +1922,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1945,9 +1969,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2025,27 +2053,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2057,7 +2093,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2067,8 +2105,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2076,10 +2118,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2087,10 +2133,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2098,7 +2148,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2124,19 +2174,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2148,7 +2202,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2158,8 +2214,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2167,10 +2227,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2178,10 +2242,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2189,7 +2257,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2235,7 +2303,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2245,8 +2315,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2254,10 +2328,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2265,10 +2343,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2276,7 +2358,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2303,145 +2385,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2452,73 +2566,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2529,37 +2659,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2570,19 +2708,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -3025,10 +3167,10 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.tee $4 @@ -3140,23 +3282,23 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 local.get $3 i32.const 2 i32.shl + local.get $7 i32.add i32.load local.tee $4 i32.store offset=4 local.get $4 if - local.get $0 local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u + local.get $0 i32.add local.set $0 end @@ -3168,7 +3310,6 @@ end end global.get $~lib/memory/__stack_pointer - local.get $0 local.get $6 local.get $1 i32.const 20 @@ -3178,6 +3319,7 @@ i32.shr_u local.tee $5 i32.mul + local.get $0 i32.add i32.const 1 i32.shl @@ -3193,20 +3335,20 @@ i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 local.get $3 i32.const 2 i32.shl + local.get $7 i32.add i32.load local.tee $4 i32.store offset=4 local.get $4 if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $4 local.get $4 @@ -3226,10 +3368,10 @@ end local.get $5 if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $5 @@ -3249,20 +3391,20 @@ end end global.get $~lib/memory/__stack_pointer - local.get $7 local.get $6 i32.const 2 i32.shl + local.get $7 i32.add i32.load local.tee $1 i32.store offset=4 local.get $1 if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $1 @@ -3286,10 +3428,10 @@ (local $1 i32) (local $2 i32) local.get $0 - local.get $0 i32.const 20 i32.sub i32.load offset=16 + local.get $0 i32.add local.set $1 loop $while-continue|0 @@ -3742,9 +3884,11 @@ i32.const 1 call $~lib/rt/itcms/__link local.get $2 + i32.const 4 + i32.add call $std/staticarray/Ref#constructor local.tee $1 - i32.store offset=4 + i32.store local.get $2 local.get $1 i32.const 1 @@ -3756,7 +3900,8 @@ i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3781,7 +3926,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 i32.store offset=4 local.get $2 @@ -3801,14 +3945,14 @@ unreachable end loop $for-loop|0 - local.get $0 local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - i32.lt_s + local.get $0 + i32.gt_s if local.get $2 local.get $0 @@ -3860,18 +4004,19 @@ i32.const 0 local.set $0 loop $for-loop|1 - local.get $0 local.get $2 i32.load offset=12 - i32.lt_s + local.get $0 + i32.gt_s if local.get $1 local.get $0 call $~lib/staticarray/StaticArray#__get - local.get $0 + local.set $3 local.get $2 i32.load offset=12 - i32.ge_u + local.get $0 + i32.le_u if i32.const 1088 i32.const 1776 @@ -3887,6 +4032,7 @@ i32.shl i32.add i32.load + local.get $3 i32.ne if i32.const 0 @@ -4050,14 +4196,14 @@ i32.const 0 local.set $0 loop $for-loop|2 - local.get $0 local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - i32.lt_s + local.get $0 + i32.gt_s if local.get $2 local.get $0 @@ -4535,10 +4681,10 @@ if i32.const 1 i32.const 1 - local.get $2 local.get $0 i32.const 3 i32.shl + local.get $2 i32.add f64.load local.tee $5 @@ -4559,8 +4705,7 @@ end i32.const 0 end - i32.const 1 - i32.ne + i32.eqz if i32.const 0 i32.const 1216 @@ -4603,10 +4748,10 @@ if i32.const 1 i32.const 1 - local.get $2 local.get $0 i32.const 2 i32.shl + local.get $2 i32.add f32.load local.tee $6 @@ -4627,8 +4772,7 @@ end i32.const 0 end - i32.const 1 - i32.ne + i32.eqz if i32.const 0 i32.const 1216 @@ -4671,10 +4815,10 @@ local.get $1 i32.lt_s if - local.get $2 local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 2 @@ -4723,10 +4867,10 @@ local.get $1 i32.lt_s if - local.get $2 local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 7 @@ -4778,10 +4922,10 @@ local.get $1 i32.lt_s if - local.get $2 local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 9 @@ -4841,10 +4985,10 @@ local.get $1 i32.lt_s if - local.get $2 local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 2 @@ -4904,10 +5048,10 @@ local.get $1 i32.lt_s if - local.get $2 local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 2 @@ -4947,10 +5091,9 @@ call $~lib/array/Array<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2784 i32.store offset=12 local.get $0 @@ -4973,10 +5116,9 @@ call $~lib/array/Array<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2832 i32.store offset=12 local.get $0 @@ -4999,10 +5141,9 @@ call $~lib/array/Array<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2912 i32.store offset=12 local.get $0 @@ -5025,10 +5166,9 @@ call $~lib/array/Array<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2992 i32.store offset=12 local.get $0 @@ -5051,10 +5191,9 @@ call $~lib/array/Array<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5134,11 +5273,11 @@ i32.const 0 i32.ge_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $3 i32.add i32.load i32.const 2 @@ -5200,11 +5339,11 @@ i32.const 0 i32.ge_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $3 i32.add i32.load i32.const 7 @@ -5258,10 +5397,10 @@ i32.const 0 i32.ge_s if - local.get $1 local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 2 @@ -5315,10 +5454,10 @@ i32.const 0 i32.ge_s if - local.get $1 local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 2 @@ -5365,10 +5504,10 @@ i32.const 0 i32.ge_s if - local.get $1 local.get $0 i32.const 2 i32.shl + local.get $1 i32.add i32.load i32.const 2 @@ -5415,10 +5554,10 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 2 @@ -5804,10 +5943,10 @@ call $~lib/rt/itcms/__new local.tee $2 i32.store - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.set $1 i32.const 0 @@ -5862,14 +6001,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if i32.const 1088 i32.const 1152 @@ -5879,10 +6018,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.tee $0 diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 708c6ceeb6..9dba61bc89 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -552,8 +552,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -613,11 +613,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -631,10 +631,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 21056 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -671,11 +671,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -736,19 +736,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -814,22 +814,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -1077,13 +1079,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1120,11 +1125,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -1148,11 +1153,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1424 @@ -1535,8 +1540,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1698,12 +1702,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1719,20 +1723,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1740,15 +1744,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1759,13 +1764,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1773,34 +1778,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1814,16 +1819,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1831,18 +1836,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1854,11 +1859,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1424 @@ -1867,13 +1872,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1886,54 +1892,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1943,33 +1950,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1985,18 +1993,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -2005,18 +2013,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -2025,10 +2033,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -2037,20 +2045,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -2065,10 +2073,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -2085,16 +2093,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -2117,8 +2125,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -2328,6 +2336,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2372,17 +2382,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2407,9 +2429,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2487,27 +2513,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2519,7 +2553,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2529,8 +2565,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2538,10 +2578,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2549,10 +2593,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2560,7 +2608,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2586,19 +2634,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2610,7 +2662,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2620,8 +2674,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2629,10 +2687,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2640,10 +2702,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2651,7 +2717,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2697,7 +2763,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2707,8 +2775,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2716,10 +2788,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2727,10 +2803,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2738,7 +2818,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2765,145 +2845,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2914,73 +3026,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2991,37 +3119,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -3032,19 +3168,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -3684,13 +3824,13 @@ i64.const 100000000 i64.ge_u if - local.get $1 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $1 i32.add local.get $0 local.get $0 @@ -3724,13 +3864,13 @@ i64.shl i64.or i64.store - local.get $1 local.get $2 i32.const 4 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $1 i32.add local.get $3 i32.const 10000 @@ -3951,10 +4091,10 @@ local.get $8 i32.lt_u if - local.get $0 local.get $7 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u local.tee $2 @@ -3962,11 +4102,11 @@ i32.shr_u if block $for-continue|0 - local.get $7 local.get $8 i32.const 1 i32.sub - i32.lt_u + local.get $7 + i32.gt_u i32.const 0 local.get $2 i32.const 55295 @@ -3975,10 +4115,10 @@ i32.lt_u select if - local.get $0 local.get $7 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u offset=2 local.tee $4 @@ -4007,15 +4147,15 @@ i32.const 131072 i32.ge_u if - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add - local.get $1 local.get $4 i32.const 16 i32.shl + local.get $1 i32.or i32.store local.get $5 @@ -4032,10 +4172,10 @@ i32.const 25 i32.le_u if - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add local.get $2 i32.const 26 @@ -4112,10 +4252,10 @@ local.tee $2 i32.load16_u offset=6 local.set $1 - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add local.tee $4 local.get $2 @@ -4124,12 +4264,12 @@ local.get $4 local.get $1 i32.store16 offset=4 - local.get $5 local.get $1 i32.const 0 i32.ne i32.const 1 i32.add + local.get $5 i32.add local.set $5 else @@ -4142,18 +4282,18 @@ i32.const 65536 i32.lt_u if - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add local.get $1 i32.store16 else - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add local.get $1 i32.const 65536 @@ -4181,10 +4321,10 @@ end end else - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add local.get $2 i32.const 2316 @@ -4291,10 +4431,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 local.get $9 @@ -4316,10 +4455,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 local.get $9 @@ -4341,10 +4479,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 local.get $9 @@ -4366,10 +4503,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 11952 i32.store offset=4 local.get $9 @@ -4391,10 +4527,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12096 i32.store offset=4 local.get $9 @@ -4416,10 +4551,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12192 i32.store offset=4 local.get $9 @@ -4441,10 +4575,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12352 i32.store offset=4 local.get $9 @@ -4466,10 +4599,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12416 i32.store offset=4 local.get $9 @@ -4491,10 +4623,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12576 i32.store offset=4 local.get $9 @@ -4516,10 +4647,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12672 i32.store offset=4 local.get $9 @@ -4541,10 +4671,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12864 i32.store offset=4 local.get $9 @@ -4566,10 +4695,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 12960 i32.store offset=4 local.get $9 @@ -4591,10 +4719,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 13136 i32.store offset=4 local.get $9 @@ -4616,10 +4743,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 13296 i32.store offset=4 local.get $9 @@ -4641,10 +4767,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 13440 i32.store offset=4 local.get $9 @@ -4666,10 +4791,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 13584 i32.store offset=4 local.get $9 @@ -4691,10 +4815,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 13744 i32.store offset=4 local.get $9 @@ -4716,10 +4839,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 13888 i32.store offset=4 local.get $9 @@ -4741,10 +4863,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 14032 i32.store offset=4 local.get $9 @@ -4766,10 +4887,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 14192 i32.store offset=4 local.get $9 @@ -4791,10 +4911,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 14432 i32.store offset=4 local.get $9 @@ -4816,10 +4935,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 14592 i32.store offset=4 local.get $9 @@ -4841,10 +4959,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 14784 i32.store offset=4 local.get $9 @@ -4866,10 +4983,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 14848 i32.store offset=4 local.get $9 @@ -4891,10 +5007,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15088 i32.store offset=4 local.get $9 @@ -4922,10 +5037,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15296 i32.store offset=4 local.get $9 @@ -4953,10 +5067,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15360 i32.store offset=4 local.get $9 @@ -4984,10 +5097,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15392 i32.store offset=4 local.get $9 @@ -5012,10 +5124,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15648 i32.store offset=4 local.get $9 @@ -5040,10 +5151,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15648 i32.store offset=4 local.get $9 @@ -5065,10 +5175,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15712 i32.store offset=4 local.get $9 @@ -5090,10 +5199,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15776 i32.store offset=4 local.get $9 @@ -5115,10 +5223,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15840 i32.store offset=4 local.get $9 @@ -5140,10 +5247,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15904 i32.store offset=4 local.get $9 @@ -5165,10 +5271,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 15968 i32.store offset=4 local.get $9 @@ -5190,10 +5295,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16032 i32.store offset=4 local.get $9 @@ -5215,10 +5319,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16096 i32.store offset=4 local.get $9 @@ -5240,10 +5343,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16160 i32.store offset=4 local.get $9 @@ -5265,10 +5367,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16224 i32.store offset=4 local.get $9 @@ -5290,10 +5391,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16288 i32.store offset=4 local.get $9 @@ -5315,10 +5415,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16352 i32.store offset=4 local.get $9 @@ -5340,10 +5439,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16416 i32.store offset=4 local.get $9 @@ -5365,10 +5463,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16480 i32.store offset=4 local.get $9 @@ -5390,10 +5487,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16544 i32.store offset=4 local.get $9 @@ -5415,10 +5511,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16608 i32.store offset=4 local.get $9 @@ -5440,10 +5535,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16672 i32.store offset=4 local.get $9 @@ -5465,10 +5559,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16736 i32.store offset=4 local.get $9 @@ -5490,10 +5583,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16800 i32.store offset=4 local.get $9 @@ -5515,10 +5607,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16864 i32.store offset=4 local.get $9 @@ -5540,10 +5631,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16928 i32.store offset=4 local.get $9 @@ -5565,10 +5655,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16992 i32.store offset=4 local.get $9 @@ -5590,10 +5679,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17056 i32.store offset=4 local.get $9 @@ -5615,10 +5703,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17120 i32.store offset=4 local.get $9 @@ -5640,10 +5727,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17184 i32.store offset=4 local.get $9 @@ -5665,10 +5751,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17248 i32.store offset=4 local.get $9 @@ -5690,10 +5775,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 16352 i32.store offset=4 local.get $9 @@ -5715,10 +5799,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17344 i32.store offset=4 local.get $9 @@ -5740,10 +5823,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17408 i32.store offset=4 local.get $9 @@ -5765,10 +5847,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17472 i32.store offset=4 local.get $9 @@ -5790,10 +5871,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17536 i32.store offset=4 local.get $9 @@ -5815,10 +5895,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17600 i32.store offset=4 local.get $9 @@ -5840,10 +5919,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17664 i32.store offset=4 local.get $9 @@ -5865,10 +5943,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17728 i32.store offset=4 local.get $9 @@ -5890,10 +5967,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17792 i32.store offset=4 local.get $9 @@ -5915,10 +5991,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17856 i32.store offset=4 local.get $9 @@ -5940,10 +6015,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17920 i32.store offset=4 local.get $9 @@ -5965,10 +6039,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 17984 i32.store offset=4 local.get $9 @@ -5990,10 +6063,9 @@ call $~lib/string/String#toLowerCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18048 i32.store offset=4 local.get $9 @@ -6015,10 +6087,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18112 i32.store offset=4 local.get $9 @@ -6040,10 +6111,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18144 i32.store offset=4 local.get $9 @@ -6065,10 +6135,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18208 i32.store offset=4 local.get $9 @@ -6090,10 +6159,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18272 i32.store offset=4 local.get $9 @@ -6115,10 +6183,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18336 i32.store offset=4 local.get $9 @@ -6140,10 +6207,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18400 i32.store offset=4 local.get $9 @@ -6165,10 +6231,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18400 i32.store offset=4 local.get $9 @@ -6190,10 +6255,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18496 i32.store offset=4 local.get $9 @@ -6215,10 +6279,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18560 i32.store offset=4 local.get $9 @@ -6240,10 +6303,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18624 i32.store offset=4 local.get $9 @@ -6265,10 +6327,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18688 i32.store offset=4 local.get $9 @@ -6290,10 +6351,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18752 i32.store offset=4 local.get $9 @@ -6315,10 +6375,9 @@ call $~lib/string/String#toUpperCase local.set $9 global.get $~lib/memory/__stack_pointer - local.tee $5 local.get $9 i32.store - local.get $5 + global.get $~lib/memory/__stack_pointer i32.const 18816 i32.store offset=4 local.get $9 @@ -6420,7 +6479,9 @@ i32.const 2 i32.eq local.get $5 - i32.load16_u offset=2 + i32.const 2 + i32.add + i32.load16_u local.tee $9 i32.const 64512 i32.and @@ -6429,7 +6490,9 @@ select br_if $__inlined_func$~lib/string/String#codePointAt0 local.get $5 - i32.load16_u offset=4 + i32.const 2 + i32.add + i32.load16_u offset=2 local.tee $7 i32.const 64512 i32.and @@ -6451,10 +6514,10 @@ i64.const 0 i64.ge_s if - local.get $0 local.get $3 i64.const 16 i64.shl + local.get $0 i64.add local.set $0 end @@ -6478,7 +6541,9 @@ i32.const 3 i32.eq local.get $5 - i32.load16_u offset=4 + i32.const 4 + i32.add + i32.load16_u local.tee $9 i32.const 64512 i32.and @@ -6487,7 +6552,9 @@ select br_if $__inlined_func$~lib/string/String#codePointAt1 local.get $5 - i32.load16_u offset=6 + i32.const 4 + i32.add + i32.load16_u offset=2 local.tee $5 i32.const 64512 i32.and @@ -6509,10 +6576,10 @@ i64.const 0 i64.ge_s if - local.get $0 local.get $3 i64.const 32 i64.shl + local.get $0 i64.add local.set $0 end @@ -6584,7 +6651,9 @@ i32.const 2 i32.eq local.get $5 - i32.load16_u offset=2 + i32.const 2 + i32.add + i32.load16_u local.tee $9 i32.const 64512 i32.and @@ -6593,7 +6662,9 @@ select br_if $__inlined_func$~lib/string/String#codePointAt3 local.get $5 - i32.load16_u offset=4 + i32.const 2 + i32.add + i32.load16_u offset=2 local.tee $4 i32.const 64512 i32.and @@ -6615,10 +6686,10 @@ i64.const 0 i64.ge_s if - local.get $3 local.get $2 i64.const 16 i64.shl + local.get $3 i64.add local.set $3 end @@ -6642,7 +6713,9 @@ i32.const 3 i32.eq local.get $5 - i32.load16_u offset=4 + i32.const 4 + i32.add + i32.load16_u local.tee $9 i32.const 64512 i32.and @@ -6651,7 +6724,9 @@ select br_if $__inlined_func$~lib/string/String#codePointAt4 local.get $5 - i32.load16_u offset=6 + i32.const 4 + i32.add + i32.load16_u offset=2 local.tee $5 i32.const 64512 i32.and @@ -6673,10 +6748,10 @@ i64.const 0 i64.ge_s if - local.get $3 local.get $2 i64.const 32 i64.shl + local.get $3 i64.add local.set $3 end @@ -6693,10 +6768,10 @@ i64.const 0 i64.ge_s if - local.get $2 local.get $1 i64.const 16 i64.shl + local.get $2 i64.add local.set $2 end @@ -6708,10 +6783,10 @@ i64.const 0 i64.ge_s if - local.get $2 local.get $1 i64.const 32 i64.shl + local.get $2 i64.add local.set $2 end @@ -6728,10 +6803,10 @@ i64.const 0 i64.ge_s if - local.get $1 local.get $6 i64.const 16 i64.shl + local.get $1 i64.add local.set $1 end @@ -6743,10 +6818,10 @@ i64.const 0 i64.ge_s if - local.get $1 local.get $6 i64.const 32 i64.shl + local.get $1 i64.add local.set $1 end @@ -6950,10 +7025,10 @@ local.get $8 i32.lt_u if - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u local.tee $2 @@ -6961,11 +7036,11 @@ i32.shr_u if block $for-continue|0 - local.get $4 local.get $8 i32.const 1 i32.sub - i32.lt_u + local.get $4 + i32.gt_u i32.const 0 local.get $2 i32.const 55295 @@ -6974,10 +7049,10 @@ i32.lt_u select if - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u offset=2 local.tee $7 @@ -7006,15 +7081,15 @@ i32.const 131072 i32.ge_u if - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add - local.get $1 local.get $7 i32.const 16 i32.shl + local.get $1 i32.or i32.store local.get $5 @@ -7029,10 +7104,10 @@ i32.const 304 i32.eq if - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add i32.const 50790505 i32.store @@ -7045,10 +7120,10 @@ i32.const 931 i32.eq if - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add i32.const 962 i32.const 963 @@ -7084,12 +7159,12 @@ i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $0 local.get $1 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u local.tee $7 @@ -7107,12 +7182,12 @@ local.get $7 i32.const 1023 i32.and - local.get $0 local.get $1 i32.const 2 i32.sub i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u local.tee $10 @@ -7244,10 +7319,10 @@ local.get $3 i32.lt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u local.tee $1 @@ -7262,10 +7337,10 @@ i32.ne i32.and if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u offset=2 local.tee $7 @@ -7349,12 +7424,12 @@ i32.eqz br $~lib/util/string/isFinalSigma|inlined.0 end - local.get $2 local.get $1 i32.const 65536 i32.ge_u i32.const 1 i32.add + local.get $2 i32.add local.set $2 br $while-continue|2 @@ -7374,10 +7449,10 @@ i32.const 25 i32.le_u if - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add local.get $2 i32.const 26 @@ -7393,18 +7468,18 @@ i32.const 65536 i32.lt_u if - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add local.get $2 i32.store16 else - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add local.get $2 i32.const 65536 @@ -7433,10 +7508,10 @@ end end else - local.get $6 local.get $5 i32.const 1 i32.shl + local.get $6 i32.add local.get $2 i32.const 7084 diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 8bab4ce9a7..9559b00323 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -137,8 +137,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -198,11 +198,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -216,10 +216,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 22512 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1344 i32.const 1408 @@ -256,11 +256,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -321,19 +321,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -399,22 +399,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -662,13 +664,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -705,11 +710,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1488 @@ -733,11 +738,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1488 @@ -1120,8 +1125,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1283,12 +1287,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1304,20 +1308,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1325,15 +1329,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1344,13 +1349,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1358,34 +1363,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1399,16 +1404,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1416,18 +1421,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1439,11 +1444,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1488 @@ -1452,13 +1457,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1471,54 +1477,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1528,33 +1535,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1570,18 +1578,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1590,18 +1598,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1610,10 +1618,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1622,20 +1630,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1650,10 +1658,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1670,16 +1678,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1702,8 +1710,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1750,6 +1758,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1794,17 +1804,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1829,9 +1851,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -1909,39 +1935,49 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 - loop $while-continue|3 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 + loop $while-continue|3 local.get $2 i32.const 17 i32.ge_u if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1951,8 +1987,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -1960,10 +2000,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1971,10 +2015,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -1982,7 +2030,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2008,19 +2056,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2032,7 +2084,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2042,8 +2096,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2051,10 +2109,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2062,10 +2124,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2073,7 +2139,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2119,7 +2185,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2129,8 +2197,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2138,10 +2210,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2149,10 +2225,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2160,7 +2240,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2187,145 +2267,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2336,73 +2448,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 - local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2413,37 +2541,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2454,19 +2590,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2924,6 +3064,7 @@ (func $~start (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3197,15 +3338,216 @@ i32.const 1056 i32.store local.get $0 - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 1056 + i32.store + local.get $0 + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1052 + i32.load + local.set $2 + local.get $0 + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1552 + i32.store offset=8 + local.get $1 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $1 + i32.store + local.get $2 + i32.const 1056 + i32.store offset=8 + local.get $1 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $1 + i32.store + local.get $2 + i32.const 1584 + i32.store offset=8 + local.get $1 + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4 + i32.add + i32.const 2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $1 + i32.store + local.get $2 + i32.const 1616 + i32.store offset=8 + local.get $1 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 4 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $1 + i32.store + local.get $2 + i32.const 1648 + i32.store offset=8 + local.get $1 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 8 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $2 + local.get $1 + i32.store + local.get $2 + i32.const 1680 + i32.store offset=8 + local.get $1 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 12 + i32.add + i32.const 0 call $~lib/string/String.UTF16.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer @@ -3213,16 +3555,16 @@ local.get $0 i32.store local.get $1 - i32.const 1056 + i32.const 1552 i32.store offset=8 local.get $0 - i32.const 1056 + i32.const 1552 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1088 - i32.const 33 + i32.const 48 i32.const 3 call $~lib/builtins/abort unreachable @@ -3231,7 +3573,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF16DecodeUnsafe global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4063,226 +4404,10 @@ call $~lib/builtins/abort unreachable ) - (func $std/string-encoding/testUTF16DecodeUnsafe - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22540 - i32.lt_s - if - i32.const 38944 - i32.const 38992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 1056 - i32.store - local.get $1 - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1052 - i32.load - local.set $2 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $0 - i32.store - local.get $3 - i32.const 1552 - i32.store offset=8 - local.get $0 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - local.get $2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - i32.const 1584 - i32.store offset=8 - local.get $0 - i32.const 1584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - i32.const 2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - i32.const 1616 - i32.store offset=8 - local.get $0 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - i32.const 1648 - i32.store offset=8 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 8 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 - i32.store - local.get $2 - i32.const 1680 - i32.store offset=8 - local.get $0 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 12 - i32.add - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store - local.get $0 - i32.const 1552 - i32.store offset=8 - local.get $1 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 48 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $std/string-encoding/testUTF8DecodeUnsafe (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4329,10 +4454,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 1552 i32.store offset=8 local.get $0 @@ -4645,7 +4769,6 @@ ) (func $~lib/string/String.UTF16.encode (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4669,7 +4792,6 @@ local.get $0 i32.const 20 i32.sub - local.tee $2 i32.load offset=16 i32.const 0 call $~lib/rt/itcms/__new @@ -4677,7 +4799,9 @@ i32.store local.get $1 local.get $0 - local.get $2 + local.get $0 + i32.const 20 + i32.sub i32.load offset=16 i32.const 1 i32.shr_u @@ -4764,19 +4888,18 @@ local.tee $5 i32.store local.get $0 - local.tee $4 + local.set $4 + local.get $5 + local.set $0 + local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $3 - local.get $5 - local.set $0 - local.get $4 - local.get $3 i32.const 1 i32.shl + local.get $4 i32.add local.set $6 loop $while-continue|0 @@ -4994,9 +5117,9 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $1 local.get $0 local.tee $3 - local.get $1 i32.add local.set $5 local.get $3 @@ -5159,9 +5282,9 @@ end end else - local.get $2 local.get $4 i32.eqz + local.get $2 i32.and br_if $while-break|0 local.get $1 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 142ea233a4..f9a7059871 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -944,10 +944,10 @@ (start $~start) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.tee $1 i32.const 7 @@ -1128,8 +1128,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -1189,11 +1189,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -1207,10 +1207,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 25840 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1264 i32.const 1568 @@ -1247,11 +1247,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -1331,19 +1331,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -1409,22 +1409,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -1672,13 +1674,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1715,11 +1720,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1648 @@ -1743,11 +1748,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1648 @@ -2130,8 +2135,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -2497,13 +2501,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2518,7 +2522,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -2555,7 +2560,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -2564,6 +2568,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -2624,12 +2629,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1648 @@ -2642,8 +2647,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -2657,7 +2663,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -2666,15 +2672,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -2689,22 +2695,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -2714,37 +2721,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -2752,7 +2760,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2823,6 +2831,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2867,17 +2877,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2902,9 +2924,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2982,27 +3008,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -3014,7 +3048,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -3024,8 +3060,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -3033,10 +3073,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -3044,10 +3088,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -3055,7 +3103,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3081,19 +3129,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -3105,7 +3157,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -3115,8 +3169,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -3124,10 +3182,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -3135,10 +3197,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -3146,7 +3212,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3192,7 +3258,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -3202,8 +3270,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -3211,10 +3283,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -3222,10 +3298,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -3233,7 +3313,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -3260,145 +3340,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -3409,73 +3521,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -3486,37 +3614,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -3527,19 +3663,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -4352,8 +4492,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - i32.const 4240 - local.set $5 i32.const 4236 i32.load i32.const 1 @@ -4365,6 +4503,8 @@ return end i32.const 4240 + local.set $5 + i32.const 4240 i32.load16_u local.set $0 loop $while-continue|0 @@ -4629,8 +4769,6 @@ (local $3 i64) (local $4 i32) (local $5 i32) - i32.const 4288 - local.set $5 i32.const 4284 i32.load i32.const 1 @@ -4642,6 +4780,8 @@ return end i32.const 4288 + local.set $5 + i32.const 4288 i32.load16_u local.set $0 loop $while-continue|0 @@ -4883,9 +5023,9 @@ end local.get $0 i64.extend_i32_u - local.get $3 local.get $4 i64.extend_i32_s + local.get $3 i64.mul i64.add local.set $3 @@ -5449,11 +5589,11 @@ i64.mul i64.add else - local.get $6 local.get $2 i32.eqz i32.eqz i64.extend_i32_u + local.get $6 i64.or end local.set $6 @@ -5681,13 +5821,13 @@ i64.const 9007199254740991 i64.le_u if (result i32) + local.get $0 local.get $0 i32.const 31 i32.shr_s local.tee $5 - local.get $0 - local.get $5 i32.add + local.get $5 i32.xor i32.const 22 i32.le_s @@ -5816,10 +5956,10 @@ local.tee $8 i64.shr_u local.set $6 - local.get $8 local.get $0 local.tee $4 i64.extend_i32_s + local.get $8 i64.add global.set $~lib/util/string/__fixmulShift loop $for-loop|7 @@ -5889,10 +6029,10 @@ i64.mul local.set $8 i64.const 32 - local.get $9 local.get $6 i64.const 32 i64.shr_u + local.get $9 i64.mul local.get $8 i64.const 32 @@ -6035,13 +6175,14 @@ local.get $2 local.get $3 i32.gt_s - local.tee $1 select call $~lib/util/string/compareImpl local.tee $0 i32.const 0 i32.lt_s - local.get $1 + local.get $2 + local.get $3 + i32.gt_s local.get $0 select ) @@ -6771,9 +6912,6 @@ br $while-continue|0 end end - local.get $10 - i64.extend_i32_s - local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -6782,10 +6920,11 @@ local.get $6 i64.const 10 i64.mul - local.tee $1 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 + local.tee $1 local.get $4 i64.extend_i32_s i64.or @@ -6802,7 +6941,7 @@ i32.shl i32.const 22864 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -6815,7 +6954,7 @@ i32.sub local.set $8 local.get $3 - local.get $1 + local.get $0 local.get $12 i64.and local.tee $6 @@ -6828,7 +6967,6 @@ global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $9 i32.const 0 local.get $8 i32.sub @@ -6837,6 +6975,7 @@ i32.const 23792 i32.add i64.load32_u + local.get $9 i64.mul local.set $1 local.get $4 @@ -6902,10 +7041,10 @@ local.get $2 i32.eqz if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store @@ -6917,24 +7056,24 @@ local.get $1 local.get $2 i32.add - local.tee $4 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $4 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $4 + local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -6945,31 +7084,32 @@ br $for-loop|0 end end - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store - local.get $4 + local.get $3 i32.const 2 i32.add else - local.get $4 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add + local.tee $4 local.tee $0 i32.const 2 i32.add @@ -6980,29 +7120,29 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $4 i32.const 46 i32.store16 local.get $1 i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const -6 i32.gt_s select if (result i32) - local.get $0 i32.const 2 - local.get $4 + local.get $3 i32.sub - local.tee $5 + local.tee $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $0 local.get $1 @@ -7016,13 +7156,13 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $5 + local.get $4 i32.lt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -7034,7 +7174,7 @@ end end local.get $1 - local.get $5 + local.get $4 i32.add else local.get $1 @@ -7045,10 +7185,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $5 + local.get $3 i32.const 1 i32.sub local.tee $0 @@ -7115,12 +7255,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $5 i32.const 45 i32.const 43 local.get $2 select - i32.store16 offset=4 + i32.store16 local.get $0 i32.const 2 i32.add @@ -7148,16 +7288,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $6 + local.get $3 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -7218,12 +7358,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $6 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select - i32.store16 offset=4 + i32.store16 local.get $0 local.get $1 i32.add @@ -7236,18 +7376,24 @@ ) (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) (local $1 i64) - (local $2 i64) + (local $2 i32) (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i64) (local $7 i64) - (local $8 i32) - (local $9 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) local.get $0 f64.const 0 f64.lt - local.tee $8 + local.tee $5 if (result f64) i32.const 22864 i32.const 45 @@ -7264,66 +7410,66 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $2 + i32.const 1 + local.get $2 + select + i32.const 1075 + i32.sub + local.tee $10 + i32.const 1 + i32.sub + local.get $1 + i64.const 4503599627370495 + i64.and + local.get $2 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl - local.get $1 - i64.const 4503599627370495 - i64.and i64.add - local.tee $2 + local.tee $1 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $1 - local.get $1 + local.tee $3 i64.clz i32.wrap_i64 - local.tee $5 + local.tee $4 + i32.sub + local.set $2 + local.get $3 + local.get $4 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $9 - i32.const 1 - i32.sub - local.get $5 - i32.sub - local.set $4 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $4 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $9 - local.get $5 - i32.sub + local.get $10 local.get $4 i32.sub + local.get $2 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $2 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $4 + local.tee $10 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -7332,9 +7478,9 @@ f64.add local.tee $0 i32.trunc_f64_s - local.tee $5 + local.tee $2 local.get $0 - local.get $5 + local.get $2 f64.convert_i32_s f64.ne i32.add @@ -7342,105 +7488,125 @@ i32.shr_s i32.const 1 i32.add - local.tee $5 + local.tee $2 i32.const 3 i32.shl - local.tee $9 + local.tee $4 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $4 i32.const 22920 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $5 + local.get $2 i32.const 1 i32.shl i32.const 23616 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow + local.get $1 + local.get $1 + i64.clz + i64.shl local.tee $6 i64.const 4294967295 i64.and - local.set $1 + local.set $3 + global.get $~lib/util/number/_frc_pow + local.tee $11 + i64.const 4294967295 + i64.and + local.tee $1 + local.tee $7 local.get $6 i64.const 32 i64.shr_u - local.tee $6 + local.tee $13 + i64.mul + local.get $3 + local.get $7 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $6 global.get $~lib/util/number/_frc_plus - local.tee $3 + local.tee $8 + i64.const 4294967295 + i64.and + local.set $7 + local.get $1 + local.get $8 i64.const 32 i64.shr_u - local.tee $7 + local.tee $14 i64.mul local.get $1 local.get $7 i64.mul - local.get $1 - local.get $3 - i64.const 4294967295 - i64.and - local.tee $3 - i64.mul i64.const 32 i64.shr_u i64.add - local.tee $7 + local.set $8 + global.get $~lib/util/number/_frc_minus + local.tee $9 + i64.const 4294967295 + i64.and + local.set $12 + local.get $1 + local.get $9 i64.const 32 i64.shr_u - i64.add - local.get $3 - local.get $6 + local.tee $15 + i64.mul + local.get $1 + local.get $12 i64.mul - local.get $7 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.sub - local.set $3 - local.get $8 + local.set $9 + local.get $5 i32.const 1 i32.shl i32.const 22864 i32.add - local.get $6 - local.get $2 - local.get $2 - i64.clz - i64.shl - local.tee $2 + local.get $13 + local.get $11 i64.const 32 i64.shr_u - local.tee $7 + local.tee $1 + local.tee $11 i64.mul - local.get $1 - local.get $7 + local.get $6 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + local.get $11 i64.mul - local.get $1 - local.get $2 + local.get $6 i64.const 4294967295 i64.and - local.tee $2 - i64.mul + i64.add + i64.const 2147483647 + i64.add i64.const 32 i64.shr_u i64.add - local.tee $7 + local.get $1 + local.get $14 + i64.mul + local.get $8 i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $6 - i64.mul + local.get $1 local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -7449,40 +7615,26 @@ i64.const 32 i64.shr_u i64.add - local.get $3 - local.get $4 + i64.const 1 + i64.sub + local.tee $3 global.get $~lib/util/number/_exp_pow + local.get $10 i32.add i32.const -64 i32.sub local.get $3 - local.get $6 - global.get $~lib/util/number/_frc_minus - local.tee $2 - i64.const 32 - i64.shr_u - local.tee $3 - i64.mul local.get $1 - local.get $3 + local.get $15 i64.mul - local.get $1 - local.get $2 - i64.const 4294967295 - i64.and - local.tee $1 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $2 + local.get $9 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $6 + local.get $12 i64.mul - local.get $2 + local.get $9 i64.const 4294967295 i64.and i64.add @@ -7494,13 +7646,13 @@ i64.const 1 i64.add i64.sub - local.get $8 + local.get $5 call $~lib/util/number/genDigits - local.get $8 + local.get $5 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $8 + local.get $5 i32.add ) (func $std/string/getString (result i32) @@ -7715,17 +7867,17 @@ local.tee $2 i32.store offset=8 local.get $2 - local.get $0 local.get $5 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u i32.store16 - local.get $3 local.get $5 i32.const 2 i32.shl + local.get $3 i32.add local.get $2 i32.store @@ -7780,10 +7932,10 @@ local.tee $6 i32.store offset=16 local.get $6 - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $9 call $~lib/memory/memory.copy @@ -7837,10 +7989,10 @@ local.tee $1 i32.store offset=4 local.get $1 - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 call $~lib/memory/memory.copy @@ -7886,8 +8038,8 @@ (local $1 i32) (local $2 f64) (local $3 i32) - (local $4 f32) - (local $5 i32) + (local $4 i32) + (local $5 f32) global.get $~lib/memory/__stack_pointer i32.const 44 i32.sub @@ -8058,7 +8210,9 @@ i32.const 2 i32.eq local.get $1 - i32.load16_u offset=2 + i32.const 2 + i32.add + i32.load16_u local.tee $0 i32.const 64512 i32.and @@ -8067,7 +8221,9 @@ select br_if $__inlined_func$~lib/string/String#codePointAt local.get $1 - i32.load16_u offset=4 + i32.const 2 + i32.add + i32.load16_u offset=2 local.tee $1 i32.const 64512 i32.and @@ -8135,10 +8291,9 @@ call $~lib/string/String#at local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $1 i32.store offset=8 @@ -8168,20 +8323,20 @@ local.get $0 i32.const -1 call $~lib/string/String#at - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $1 + local.get $0 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $3 - local.get $0 + global.get $~lib/memory/__stack_pointer + global.get $std/string/str + local.tee $3 i32.store offset=12 - local.get $0 - local.get $0 + local.get $1 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -8190,12 +8345,12 @@ i32.const 1 i32.sub call $~lib/string/String#charAt - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $1 + i32.store offset=4 local.get $0 + local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8226,10 +8381,9 @@ call $~lib/string/String#at local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1744 i32.store offset=4 local.get $0 @@ -8422,10 +8576,9 @@ call $~lib/string/String.fromCharCodes local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1968 i32.store offset=4 local.get $0 @@ -8452,10 +8605,9 @@ call $~lib/string/String.fromCharCodes local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2032 i32.store offset=4 local.get $0 @@ -8482,10 +8634,9 @@ call $~lib/string/String.fromCharCodes local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2112 i32.store offset=4 local.get $0 @@ -8581,26 +8732,23 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $1 - local.get $1 - i32.const 0 - i32.gt_s - select - local.set $3 - local.get $1 + local.tee $3 local.get $3 + select + local.tee $4 i32.const 2172 i32.load i32.const 1 i32.shr_u local.tee $1 i32.add - i32.lt_s + local.get $3 + i32.gt_s if (result i32) i32.const 1 else local.get $0 - local.get $3 + local.get $4 i32.const 2176 local.get $1 call $~lib/util/string/compareImpl @@ -8631,7 +8779,7 @@ local.tee $1 local.get $1 i32.const 536870910 - i32.gt_s + i32.gt_u select i32.const 2204 i32.load @@ -8695,10 +8843,9 @@ call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $1 i32.store offset=4 @@ -8728,10 +8875,9 @@ call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $1 i32.store offset=4 @@ -8760,10 +8906,9 @@ call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2304 i32.store offset=4 local.get $0 @@ -8791,10 +8936,9 @@ call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -8822,10 +8966,9 @@ call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=4 local.get $0 @@ -8853,10 +8996,9 @@ call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2368 i32.store offset=4 local.get $0 @@ -8884,10 +9026,9 @@ call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2432 i32.store offset=4 local.get $0 @@ -8915,10 +9056,9 @@ call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2464 i32.store offset=4 local.get $0 @@ -8947,10 +9087,9 @@ call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $1 i32.store offset=4 @@ -8980,10 +9119,9 @@ call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $1 i32.store offset=4 @@ -9012,10 +9150,9 @@ call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2304 i32.store offset=4 local.get $0 @@ -9043,10 +9180,9 @@ call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -9074,10 +9210,9 @@ call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=4 local.get $0 @@ -9105,10 +9240,9 @@ call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2512 i32.store offset=4 local.get $0 @@ -9136,10 +9270,9 @@ call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2544 i32.store offset=4 local.get $0 @@ -9167,10 +9300,9 @@ call $~lib/string/String#padEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2576 i32.store offset=4 local.get $0 @@ -9446,6 +9578,7 @@ i32.const 1712 i32.const 2147483647 call $~lib/string/String#lastIndexOf + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $1 @@ -9456,6 +9589,7 @@ i32.load offset=16 i32.const 1 i32.shr_u + local.get $0 i32.ne if i32.const 0 @@ -9842,10 +9976,9 @@ call $~lib/string/String#trimStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -9867,10 +10000,9 @@ call $~lib/string/String#trimStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2880 i32.store offset=4 local.get $0 @@ -9892,10 +10024,9 @@ call $~lib/string/String#trimStart local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2960 i32.store offset=4 local.get $0 @@ -9917,10 +10048,9 @@ call $~lib/string/String#trimEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -9942,10 +10072,9 @@ call $~lib/string/String#trimEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2880 i32.store offset=4 local.get $0 @@ -9967,10 +10096,9 @@ call $~lib/string/String#trimEnd local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3008 i32.store offset=4 local.get $0 @@ -9992,10 +10120,9 @@ call $~lib/string/String#trim local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -10017,10 +10144,9 @@ call $~lib/string/String#trim local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2880 i32.store offset=4 local.get $0 @@ -10042,10 +10168,9 @@ call $~lib/string/String#trim local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 local.get $0 @@ -10642,8 +10767,8 @@ i32.const 0 call $~lib/util/string/strtol f32.demote_f64 - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 f32.eq if i32.const 0 @@ -12545,10 +12670,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=20 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9712 i32.store offset=24 local.get $0 @@ -12556,10 +12680,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 9872 i32.store offset=16 local.get $0 @@ -12567,10 +12690,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store offset=8 local.get $0 @@ -13946,10 +14068,9 @@ call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -13972,10 +14093,9 @@ call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -13998,10 +14118,9 @@ call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1808 i32.store offset=4 local.get $0 @@ -14024,10 +14143,9 @@ call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13424 i32.store offset=4 local.get $0 @@ -14050,10 +14168,9 @@ call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13696 i32.store offset=4 local.get $0 @@ -14076,10 +14193,9 @@ call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13728 i32.store offset=4 local.get $0 @@ -14102,10 +14218,9 @@ call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13776 i32.store offset=4 local.get $0 @@ -14128,10 +14243,9 @@ call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13808 i32.store offset=4 local.get $0 @@ -14154,10 +14268,9 @@ call $~lib/string/String#repeat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13840 i32.store offset=4 local.get $0 @@ -14188,10 +14301,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -14222,10 +14334,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4144 i32.store offset=4 local.get $0 @@ -14256,10 +14367,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -14290,10 +14400,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4144 i32.store offset=4 local.get $0 @@ -14324,10 +14433,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 local.get $0 @@ -14358,10 +14466,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4144 i32.store offset=4 local.get $0 @@ -14392,10 +14499,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 local.get $0 @@ -14426,10 +14532,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 local.get $0 @@ -14460,10 +14565,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13920 i32.store offset=4 local.get $0 @@ -14494,10 +14598,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13952 i32.store offset=4 local.get $0 @@ -14528,10 +14631,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13952 i32.store offset=4 local.get $0 @@ -14562,10 +14664,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14112 i32.store offset=4 local.get $0 @@ -14596,10 +14697,9 @@ call $~lib/string/String#replace local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 12976 i32.store offset=4 local.get $0 @@ -14630,10 +14730,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 local.get $0 @@ -14664,10 +14763,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 local.get $0 @@ -14698,10 +14796,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14080 i32.store offset=4 local.get $0 @@ -14732,10 +14829,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14192 i32.store offset=4 local.get $0 @@ -14766,10 +14862,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2544 i32.store offset=4 local.get $0 @@ -14800,10 +14895,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14272 i32.store offset=4 local.get $0 @@ -14834,10 +14928,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14320 i32.store offset=4 local.get $0 @@ -14868,10 +14961,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14416 i32.store offset=4 local.get $0 @@ -14902,10 +14994,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 local.get $0 @@ -14936,10 +15027,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2848 i32.store offset=4 local.get $0 @@ -14970,10 +15060,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14512 i32.store offset=4 local.get $0 @@ -15004,10 +15093,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4144 i32.store offset=4 local.get $0 @@ -15038,10 +15126,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14544 i32.store offset=4 local.get $0 @@ -15072,10 +15159,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -15106,10 +15192,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4144 i32.store offset=4 local.get $0 @@ -15140,10 +15225,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -15174,10 +15258,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4144 i32.store offset=4 local.get $0 @@ -15208,10 +15291,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4112 i32.store offset=4 local.get $0 @@ -15242,10 +15324,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 local.get $0 @@ -15276,10 +15357,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14576 i32.store offset=4 local.get $0 @@ -15310,10 +15390,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2336 i32.store offset=4 local.get $0 @@ -15344,10 +15423,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14688 i32.store offset=4 local.get $0 @@ -15378,10 +15456,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14736 i32.store offset=4 local.get $0 @@ -15412,10 +15489,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14800 i32.store offset=4 local.get $0 @@ -15446,10 +15522,9 @@ call $~lib/string/String#replaceAll local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14848 i32.store offset=4 local.get $0 @@ -15475,10 +15550,9 @@ call $~lib/string/String#slice local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14880 i32.store offset=4 local.get $0 @@ -15503,10 +15577,9 @@ call $~lib/string/String#slice local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14928 i32.store offset=4 local.get $0 @@ -15531,10 +15604,9 @@ call $~lib/string/String#slice local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14960 i32.store offset=4 local.get $0 @@ -15559,10 +15631,9 @@ call $~lib/string/String#slice local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14992 i32.store offset=4 local.get $0 @@ -15587,10 +15658,9 @@ call $~lib/string/String#slice local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 15024 i32.store offset=4 local.get $0 @@ -15615,10 +15685,9 @@ call $~lib/string/String#slice local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -15643,10 +15712,9 @@ call $~lib/string/String#slice local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 15056 i32.store offset=4 local.get $0 @@ -15671,10 +15739,9 @@ call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14880 i32.store offset=4 local.get $0 @@ -15699,10 +15766,9 @@ call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14928 i32.store offset=4 local.get $0 @@ -15727,10 +15793,9 @@ call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14960 i32.store offset=4 local.get $0 @@ -15755,10 +15820,9 @@ call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 15104 i32.store offset=4 local.get $0 @@ -15783,10 +15847,9 @@ call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -15811,10 +15874,9 @@ call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 15152 i32.store offset=4 local.get $0 @@ -15839,10 +15901,9 @@ call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -15867,10 +15928,9 @@ call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14880 i32.store offset=4 local.get $0 @@ -15895,10 +15955,9 @@ call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 15184 i32.store offset=4 local.get $0 @@ -15923,10 +15982,9 @@ call $~lib/string/String#substr local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -15951,10 +16009,9 @@ call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14880 i32.store offset=4 local.get $0 @@ -15979,10 +16036,9 @@ call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14880 i32.store offset=4 local.get $0 @@ -16007,10 +16063,9 @@ call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14880 i32.store offset=4 local.get $0 @@ -16035,10 +16090,9 @@ call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14992 i32.store offset=4 local.get $0 @@ -16063,10 +16117,9 @@ call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -16091,10 +16144,9 @@ call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 15216 i32.store offset=4 local.get $0 @@ -16119,10 +16171,9 @@ call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -16147,10 +16198,9 @@ call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 14880 i32.store offset=4 local.get $0 @@ -16175,10 +16225,9 @@ call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -16203,10 +16252,9 @@ call $~lib/string/String#substring local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 2848 i32.store offset=4 local.get $0 @@ -21629,10 +21677,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 25776 i32.store offset=4 local.get $0 @@ -21659,10 +21706,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 25824 i32.store offset=4 local.get $0 @@ -21689,10 +21735,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 25824 i32.store offset=4 local.get $0 @@ -21719,10 +21764,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=4 local.get $0 @@ -21799,14 +21843,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - i32.ge_u + local.get $1 + i32.le_u if global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21822,10 +21866,10 @@ local.tee $2 i32.store local.get $2 - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u i32.store16 @@ -21992,15 +22036,15 @@ local.get $3 i32.lt_s if - local.get $1 local.get $2 i32.const 1 i32.shl + local.get $1 i32.add - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add i32.load i32.store16 @@ -22097,6 +22141,7 @@ (local $4 i32) (local $5 i32) (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22162,25 +22207,26 @@ local.get $4 i32.gt_u if - local.get $1 - local.get $2 local.get $4 local.get $3 i32.const 2 i32.sub local.get $4 i32.div_u - local.tee $6 - call $~lib/memory/memory.repeat - local.get $4 - local.get $6 + local.tee $7 i32.mul - local.tee $4 + local.set $6 + local.get $1 + local.get $2 + local.get $4 + local.get $7 + call $~lib/memory/memory.repeat local.get $1 + local.get $6 i32.add local.get $2 local.get $3 - local.get $4 + local.get $6 i32.sub call $~lib/memory/memory.copy else @@ -22205,6 +22251,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22232,11 +22279,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $3 - local.get $1 - i32.const 1 - i32.shl - local.tee $4 + local.tee $5 local.get $0 i32.const 20 i32.sub @@ -22245,8 +22288,12 @@ i32.shr_u i32.const 1 i32.shl - local.tee $1 - i32.lt_u + local.tee $3 + local.get $1 + i32.const 1 + i32.shl + local.tee $4 + i32.gt_u select i32.eqz if @@ -22261,46 +22308,47 @@ local.get $4 i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $3 call $~lib/memory/memory.copy + local.get $5 local.get $4 - local.get $1 + local.get $3 i32.sub local.tee $0 - local.get $3 - i32.gt_u + i32.lt_u if - local.get $1 local.get $5 - i32.add - local.tee $1 - local.get $2 - local.get $3 local.get $0 i32.const 2 i32.sub - local.get $3 + local.get $5 i32.div_u - local.tee $4 + local.tee $6 + i32.mul + local.set $4 + local.get $1 + local.get $3 + i32.add + local.tee $3 + local.get $2 + local.get $5 + local.get $6 call $~lib/memory/memory.repeat local.get $3 local.get $4 - i32.mul - local.tee $3 - local.get $1 i32.add local.get $2 local.get $0 - local.get $3 + local.get $4 i32.sub call $~lib/memory/memory.copy else local.get $1 - local.get $5 + local.get $3 i32.add local.get $2 local.get $0 @@ -22310,7 +22358,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 ) (func $~lib/string/String#trimStart (param $0 i32) (result i32) (local $1 i32) @@ -22833,10 +22881,10 @@ return end i32.const 0 - local.get $2 local.get $4 i32.const 1 i32.shl + local.get $2 i32.eq local.get $3 select @@ -23140,19 +23188,19 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 local.get $1 local.get $5 i32.add i32.const 1 i32.shl + local.get $3 i32.add - local.get $0 local.get $1 local.get $4 i32.add i32.const 1 i32.shl + local.get $0 i32.add local.get $6 local.get $1 @@ -23248,12 +23296,12 @@ i32.eqz br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.get $4 local.get $3 local.get $4 i32.const 1 i32.add i32.mul + local.get $4 i32.add i32.const 1 i32.shl @@ -23274,25 +23322,25 @@ local.get $5 i32.gt_u if - local.get $11 local.get $1 i32.const 1 i32.shl + local.get $11 i32.add - local.get $0 local.get $5 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u i32.store16 - local.get $11 local.get $1 i32.const 1 i32.add local.tee $1 i32.const 1 i32.shl + local.get $11 i32.add local.get $2 local.get $3 @@ -23338,10 +23386,10 @@ i32.const -1 i32.xor if - local.get $5 local.get $4 i32.const 1 i32.shl + local.get $5 i32.add local.get $2 local.get $3 @@ -23418,27 +23466,27 @@ local.tee $11 i32.store offset=4 end - local.get $11 local.get $9 i32.const 1 i32.shl + local.get $11 i32.add - local.get $0 local.get $10 i32.const 1 i32.shl + local.get $0 i32.add local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $11 local.get $6 local.get $9 i32.add local.tee $10 i32.const 1 i32.shl + local.get $11 i32.add local.get $2 local.get $3 @@ -23481,15 +23529,15 @@ end local.get $1 if - local.get $11 local.get $9 i32.const 1 i32.shl + local.get $11 i32.add - local.get $0 local.get $10 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 1 @@ -23622,10 +23670,10 @@ local.tee $2 i32.store local.get $2 - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 call $~lib/memory/memory.copy @@ -23711,10 +23759,10 @@ local.tee $3 i32.store local.get $3 - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.get $2 call $~lib/memory/memory.copy @@ -23779,22 +23827,23 @@ local.tee $2 local.get $2 local.get $3 - i32.lt_s + i32.gt_s select i32.const 1 i32.shl - local.tee $4 + local.set $4 local.get $3 local.get $2 local.get $2 local.get $3 - i32.gt_s + i32.lt_s select i32.const 1 i32.shl - local.tee $2 - i32.sub local.tee $3 + local.get $4 + i32.sub + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -23805,12 +23854,12 @@ return end i32.const 0 - local.get $4 local.get $1 i32.const 1 i32.shl + local.get $3 i32.eq - local.get $2 + local.get $4 select if global.get $~lib/memory/__stack_pointer @@ -23821,16 +23870,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store local.get $1 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $3 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -23857,10 +23906,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 i32.load offset=12 - i32.ge_u + local.get $1 + i32.le_u if i32.const 1264 i32.const 15248 @@ -23901,7 +23950,7 @@ (local $4 i64) (local $5 i32) (local $6 i64) - (local $7 i64) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24052,13 +24101,13 @@ i32.const 2 i32.ge_u if - local.get $0 local.get $1 i32.const 2 i32.sub local.tee $1 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.wrap_i64 @@ -24096,7 +24145,6 @@ block $__inlined_func$~lib/util/number/ulog_base (result i32) local.get $2 i64.extend_i32_u - local.tee $6 local.set $3 local.get $1 i32.popcnt @@ -24119,7 +24167,7 @@ end local.get $1 i64.extend_i32_s - local.tee $7 + local.tee $6 local.set $4 i32.const 1 local.set $0 @@ -24149,7 +24197,7 @@ i64.ge_u if local.get $3 - local.get $7 + local.get $6 i64.div_u local.set $3 local.get $0 @@ -24165,7 +24213,7 @@ end local.get $5 i32.add - local.tee $2 + local.tee $7 i32.const 1 i32.shl i32.const 1 @@ -24173,8 +24221,9 @@ local.tee $0 i32.store local.get $0 - local.get $6 local.get $2 + i64.extend_i32_u + local.get $7 local.get $1 call $~lib/util/number/utoa64_any_core end @@ -24192,11 +24241,11 @@ local.get $0 ) (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) (local $4 i64) (local $5 i64) - (local $6 i64) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24298,9 +24347,9 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 local.get $1 local.get $0 call $~lib/util/number/utoa32_dec_lut @@ -24323,11 +24372,11 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store local.get $0 i64.extend_i32_u - local.set $2 + local.set $3 local.get $1 local.set $0 loop $while-continue|0 @@ -24335,15 +24384,15 @@ i32.const 2 i32.ge_u if - local.get $3 local.get $0 i32.const 2 i32.sub local.tee $0 i32.const 1 i32.shl - i32.add local.get $2 + i32.add + local.get $3 i32.wrap_i64 i32.const 255 i32.and @@ -24353,10 +24402,10 @@ i32.add i32.load i32.store - local.get $2 + local.get $3 i64.const 8 i64.shr_u - local.set $2 + local.set $3 br $while-continue|0 end end @@ -24364,8 +24413,8 @@ i32.const 1 i32.and if - local.get $3 local.get $2 + local.get $3 i32.wrap_i64 i32.const 6 i32.shl @@ -24379,15 +24428,14 @@ block $__inlined_func$~lib/util/number/ulog_base (result i32) local.get $0 i64.extend_i32_u - local.tee $5 - local.set $2 + local.set $3 local.get $1 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $2 + local.get $3 i64.clz i32.wrap_i64 i32.sub @@ -24402,60 +24450,61 @@ end local.get $1 i64.extend_i32_s - local.tee $6 + local.tee $5 local.set $4 i32.const 1 - local.set $0 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $3 local.get $4 i64.ge_u if - local.get $2 + local.get $3 local.get $4 i64.div_u - local.set $2 + local.set $3 local.get $4 local.get $4 i64.mul local.set $4 - local.get $0 + local.get $2 i32.const 1 i32.shl - local.set $0 + local.set $2 br $while-continue|00 end end loop $while-continue|1 - local.get $2 + local.get $3 i64.const 1 i64.ge_u if - local.get $2 - local.get $6 + local.get $3 + local.get $5 i64.div_u - local.set $2 - local.get $0 + local.set $3 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $while-continue|1 end end - local.get $0 + local.get $2 i32.const 1 i32.sub end - local.tee $0 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 - local.get $5 + local.get $2 local.get $0 + i64.extend_i32_u + local.get $6 local.get $1 call $~lib/util/number/utoa64_any_core end @@ -24464,7 +24513,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) (local $2 i64) @@ -24676,13 +24725,13 @@ i32.const 2 i32.ge_u if - local.get $3 local.get $1 i32.const 2 i32.sub local.tee $1 i32.const 1 i32.shl + local.get $3 i32.add local.get $0 i32.wrap_i64 @@ -25033,13 +25082,13 @@ i32.const 2 i32.ge_u if - local.get $1 local.get $2 i32.const 2 i32.sub local.tee $2 i32.const 1 i32.shl + local.get $1 i32.add local.get $0 i32.wrap_i64 diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 2f6f2466e8..695ab5a020 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -186,8 +186,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -247,11 +247,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -265,10 +265,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 2656 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1328 i32.const 1392 @@ -305,11 +305,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -389,19 +389,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -467,22 +467,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -730,13 +732,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -773,11 +778,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1472 @@ -801,11 +806,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1472 @@ -1188,8 +1193,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1555,13 +1559,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1576,7 +1580,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.set $5 + local.get $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1613,7 +1618,6 @@ i32.const 536870910 i32.lt_u if (result i32) - local.get $2 i32.const 1 i32.const 27 local.get $2 @@ -1622,6 +1626,7 @@ i32.shl i32.const 1 i32.sub + local.get $2 i32.add else local.get $2 @@ -1682,12 +1687,12 @@ unreachable end end - local.get $2 local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1472 @@ -1700,8 +1705,9 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 + local.tee $4 i32.load - local.set $4 + local.set $3 local.get $2 i32.const 4 i32.add @@ -1715,7 +1721,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.const -4 i32.and local.get $2 @@ -1724,15 +1730,15 @@ i32.const 16 i32.ge_u if - local.get $3 - local.get $2 local.get $4 + local.get $3 i32.const 2 i32.and + local.get $2 i32.or i32.store local.get $2 - local.get $3 + local.get $4 i32.const 4 i32.add i32.add @@ -1747,22 +1753,23 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $3 local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $3 + local.get $4 i32.const 4 i32.add - local.tee $2 - local.get $3 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $2 - local.get $3 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1772,37 +1779,38 @@ i32.and i32.store end - local.get $3 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $2 - local.get $3 - local.get $1 + local.set $1 + local.get $2 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $3 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1810,7 +1818,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2202,22 +2210,22 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u i32.xor @@ -2272,6 +2280,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2316,17 +2326,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2351,9 +2373,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2431,27 +2457,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2463,7 +2497,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2473,8 +2509,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2482,10 +2522,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2493,10 +2537,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2504,7 +2552,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2530,19 +2578,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2554,7 +2606,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2564,8 +2618,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2573,10 +2631,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2584,10 +2646,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2595,7 +2661,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2641,7 +2707,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2651,8 +2719,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2660,10 +2732,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2671,10 +2747,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2682,7 +2762,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2709,145 +2789,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 i32.add - local.set $1 - local.get $4 + local.tee $4 + i32.const 1 + i32.add + local.set $1 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2858,73 +2970,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2935,37 +3063,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2976,19 +3112,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -3299,38 +3439,38 @@ i32.load call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=8 - local.tee $2 - local.tee $1 - local.get $0 i32.load offset=16 i32.const 12 i32.mul + local.get $0 + i32.load offset=8 + local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $2 loop $while-continue|0 local.get $0 - local.get $1 - i32.gt_u + local.get $2 + i32.lt_u if - local.get $1 + local.get $0 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $0 i32.load call $~lib/rt/itcms/__visit end - local.get $1 + local.get $0 i32.const 12 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end - local.get $2 + local.get $1 call $~lib/rt/itcms/__visit return end @@ -3338,38 +3478,38 @@ i32.load call $~lib/rt/itcms/__visit local.get $0 - i32.load offset=8 - local.tee $2 - local.tee $1 - local.get $0 i32.load offset=16 i32.const 12 i32.mul + local.get $0 + i32.load offset=8 + local.tee $1 + local.tee $0 i32.add - local.set $0 + local.set $2 loop $while-continue|00 local.get $0 - local.get $1 - i32.gt_u + local.get $2 + i32.lt_u if - local.get $1 + local.get $0 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $0 i32.load offset=4 call $~lib/rt/itcms/__visit end - local.get $1 + local.get $0 i32.const 12 i32.add - local.set $1 + local.set $0 br $while-continue|00 end end - local.get $2 + local.get $1 call $~lib/rt/itcms/__visit return end @@ -3406,9 +3546,9 @@ i32.store local.get $0 i32.load - local.get $1 local.get $0 i32.load offset=4 + local.get $1 i32.and i32.const 2 i32.shl @@ -3763,13 +3903,13 @@ i32.load offset=4 i32.store offset=4 local.get $0 - local.get $7 local.get $8 call $~lib/util/hash/HASH<~lib/string/String> local.get $4 i32.and i32.const 2 i32.shl + local.get $7 i32.add local.tee $8 i32.load @@ -3830,10 +3970,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $0 local.get $4 i32.const 12 i32.mul + local.get $0 i32.add local.tee $0 i32.const 1056 @@ -3854,9 +3994,9 @@ local.get $0 local.get $2 i32.load - local.get $9 local.get $2 i32.load offset=4 + local.get $9 i32.and i32.const 2 i32.shl @@ -3873,11 +4013,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $~lib/symbol/idToString local.tee $2 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3900,23 +4039,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor local.tee $8 local.get $2 @@ -4058,8 +4197,6 @@ i32.load offset=4 i32.store offset=4 local.get $0 - local.get $7 - local.get $4 local.get $5 i32.const -1028477379 i32.mul @@ -4070,27 +4207,29 @@ i32.const 668265263 i32.mul local.tee $5 - local.get $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul local.tee $5 - local.get $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul local.tee $5 - local.get $5 i32.const 16 i32.shr_u + local.get $5 i32.xor + local.get $4 i32.and i32.const 2 i32.shl + local.get $7 i32.add local.tee $5 i32.load @@ -4151,10 +4290,10 @@ i32.const 1 i32.add i32.store offset=16 - local.get $0 local.get $4 i32.const 12 i32.mul + local.get $0 i32.add local.tee $0 local.get $6 @@ -4175,9 +4314,9 @@ local.get $0 local.get $2 i32.load - local.get $8 local.get $2 i32.load offset=4 + local.get $8 i32.and i32.const 2 i32.shl @@ -4248,23 +4387,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -4466,23 +4605,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -4544,10 +4683,9 @@ call $~lib/string/String.__concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $0 i32.store offset=4 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 2400 i32.store offset=8 local.get $0 diff --git a/tests/compiler/std/trace.optimized.wat b/tests/compiler/std/trace.optimized.wat index 7c02ba2beb..836b777c42 100644 --- a/tests/compiler/std/trace.optimized.wat +++ b/tests/compiler/std/trace.optimized.wat @@ -26,7 +26,6 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~start - (local $0 i32) global.get $~started if return @@ -49,10 +48,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 44be52a890..f3f03f69a5 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -746,8 +746,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -807,11 +807,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -825,10 +825,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 16000 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1360 i32.const 1424 @@ -865,11 +865,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -949,19 +949,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -1027,22 +1027,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -1290,13 +1292,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1333,11 +1338,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1504 @@ -1361,11 +1366,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1504 @@ -1753,8 +1758,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1893,19 +1897,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1916,13 +1913,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1930,32 +1927,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) - local.get $0 i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -1971,16 +1968,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1988,7 +1985,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -1996,10 +1993,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $3 i32.eqz if i32.const 0 @@ -2010,12 +2007,12 @@ unreachable end end - local.get $0 - local.get $1 + local.get $3 i32.load i32.const -4 i32.and - i32.gt_u + local.get $1 + i32.lt_u if i32.const 0 i32.const 1504 @@ -2024,13 +2021,14 @@ call $~lib/builtins/abort unreachable end + local.get $0 local.get $3 - local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $3 + local.tee $2 i32.load - local.set $2 - local.get $0 + local.set $3 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -2043,54 +2041,55 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 - local.get $0 local.get $2 + local.get $3 i32.const 2 i32.and + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $2 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 local.get $2 + local.get $3 i32.const -2 i32.and i32.store - local.get $1 + local.get $2 i32.const 4 i32.add - local.tee $0 - local.get $1 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.get $0 - local.get $1 + local.get $2 + i32.const 4 + i32.add + local.get $2 i32.load i32.const -4 i32.and @@ -2100,9 +2099,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $2 ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2259,10 +2256,10 @@ local.set $2 local.get $0 i64.extend_i32_u - local.tee $4 + local.get $0 + i64.extend_i32_u i64.const 32 i64.shl - local.get $4 i64.or local.set $4 loop $while-continue|0 @@ -2343,13 +2340,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2357,9 +2354,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -2371,19 +2374,19 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 local.get $3 @@ -2516,9 +2519,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 + local.get $0 i32.ne if i32.const 0 @@ -2528,9 +2531,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 + local.get $0 i32.ne if i32.const 0 @@ -2558,9 +2561,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 + local.get $0 i32.ne if i32.const 0 @@ -2570,9 +2573,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 + local.get $0 i32.ne if i32.const 0 @@ -2600,9 +2603,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 + local.get $0 i32.ne if i32.const 0 @@ -2612,9 +2615,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 + local.get $0 i32.ne if i32.const 0 @@ -2656,11 +2659,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 i32.const 1 i32.shr_u + local.get $0 i32.ne if i32.const 0 @@ -2702,11 +2705,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 i32.const 1 i32.shr_u + local.get $0 i32.ne if i32.const 0 @@ -2748,11 +2751,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 i32.const 2 i32.shr_u + local.get $0 i32.ne if i32.const 0 @@ -2794,11 +2797,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 i32.const 2 i32.shr_u + local.get $0 i32.ne if i32.const 0 @@ -2840,11 +2843,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 i32.const 3 i32.shr_u + local.get $0 i32.ne if i32.const 0 @@ -2886,11 +2889,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 i32.const 3 i32.shr_u + local.get $0 i32.ne if i32.const 0 @@ -2932,11 +2935,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 i32.const 2 i32.shr_u + local.get $0 i32.ne if i32.const 0 @@ -2978,11 +2981,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 i32.load offset=8 i32.const 3 i32.shr_u + local.get $0 i32.ne if i32.const 0 @@ -3098,16 +3101,19 @@ local.get $8 i32.ge_s if - local.get $0 local.get $8 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $3 f64.load offset=8 local.tee $7 local.set $6 - local.get $3 + local.get $8 + i32.const 3 + i32.shl + local.get $0 + i32.add f64.load local.set $5 i32.const 2 @@ -3231,7 +3237,6 @@ (local $4 i32) (local $5 f64) (local $6 f64) - (local $7 i32) local.get $1 local.get $2 i32.eq @@ -3267,14 +3272,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $7 f64.load offset=8 - local.get $7 + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add f64.load i32.const 2 global.set $~argumentsLength @@ -3301,28 +3309,34 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $3 f64.load local.set $5 - local.get $3 + local.get $1 + i32.const 3 + i32.shl local.get $0 + i32.add local.get $2 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $7 f64.load f64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $7 + local.get $2 + i32.const 3 + i32.shl + local.get $0 + i32.add local.get $5 f64.store local.get $2 @@ -3338,14 +3352,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $1 f64.load offset=8 - local.get $1 + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add f64.load i32.const 2 global.set $~argumentsLength @@ -3373,63 +3390,68 @@ (local $7 f64) (local $8 f64) (local $9 i32) - (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $9 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 3 i32.shl - local.tee $10 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl local.get $0 - local.get $10 i32.add f64.load f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $9 - local.get $6 + local.get $2 i32.sub i32.const 3 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $0 i32.add f64.load offset=8 f64.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -3438,14 +3460,14 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $4 i32.add f64.load local.set $7 - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $4 @@ -3469,10 +3491,10 @@ i32.add local.get $7 f64.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 3 @@ -3481,10 +3503,10 @@ i32.add local.get $8 f64.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -3504,10 +3526,11 @@ (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i32) + (local $12 f64) (local $13 i32) (local $14 f64) - (local $15 f64) + (local $15 i32) + (local $16 f64) local.get $1 i32.const 48 i32.le_s @@ -3521,11 +3544,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -3533,7 +3555,7 @@ end local.get $0 f64.load - local.set $15 + local.set $16 local.get $0 f64.load offset=8 local.set $14 @@ -3541,8 +3563,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $15 - local.get $15 + local.get $16 + local.get $16 local.get $14 local.get $2 i32.load @@ -3552,39 +3574,39 @@ local.tee $1 select f64.store - local.get $15 - local.get $14 - local.get $1 - select - local.set $15 local.get $0 f64.load offset=16 - local.set $14 + local.set $12 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $14 - local.get $15 - local.get $15 + local.get $16 local.get $14 + local.get $1 + select + local.tee $16 + local.get $12 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $1 + local.get $0 + local.get $12 + local.get $16 + local.get $1 select f64.store offset=8 local.get $0 - local.get $15 - local.get $14 + local.get $16 + local.get $12 local.get $1 select f64.store offset=16 end local.get $0 f64.load - local.set $15 + local.set $16 local.get $0 f64.load offset=8 local.set $14 @@ -3592,8 +3614,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $15 - local.get $15 + local.get $16 + local.get $16 local.get $14 local.get $2 i32.load @@ -3604,7 +3626,7 @@ select f64.store local.get $0 - local.get $15 + local.get $16 local.get $14 local.get $1 select @@ -3613,7 +3635,7 @@ end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -3625,28 +3647,38 @@ local.get $1 i32.clz i32.sub - local.tee $6 + local.tee $5 i32.const 2 i32.shl local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $12 + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 local.get $7 i32.add local.set $11 i32.const 0 local.set $7 loop $for-loop|1 - local.get $6 + local.get $5 local.get $7 i32.gt_u if local.get $7 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.const -1 i32.store @@ -3660,87 +3692,97 @@ local.get $1 i32.const 3 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $15 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $13 + local.get $15 i32.const 31 - local.get $13 + local.get $15 i32.const 31 i32.lt_s select - local.tee $5 - local.get $1 + local.tee $1 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $1 + local.get $15 i32.lt_s if local.get $0 - local.get $5 + local.get $1 i32.const 1 i32.add - local.tee $6 - local.get $13 + local.tee $7 + local.get $15 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 - local.get $6 + local.tee $5 + local.get $7 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $4 i32.const 32 i32.lt_s if local.get $0 - local.get $6 - local.get $13 - local.get $6 + local.get $7 + local.get $15 + local.get $7 i32.const 31 i32.add - local.tee $1 - local.get $1 - local.get $13 + local.tee $5 + local.get $5 + local.get $15 i32.gt_s select - local.tee $7 - local.get $8 + local.tee $5 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $15 i32.const 1 i32.add i64.extend_i32_u local.tee $9 i64.div_u - local.get $6 + local.get $5 local.get $7 i32.add i32.const 1 @@ -3753,83 +3795,81 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $4 loop $for-loop|3 - local.get $1 - local.get $8 + local.get $4 + local.get $6 i32.lt_u if - local.get $8 + local.get $6 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $6 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $5 + local.get $1 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $13 i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $6 i32.const 1 i32.sub - local.set $8 + local.set $6 br $for-loop|3 end end - local.get $12 - local.get $1 + local.get $4 i32.const 2 i32.shl - local.tee $4 + local.tee $6 + local.get $13 i32.add local.get $3 i32.store - local.get $4 + local.get $6 local.get $11 i32.add - local.get $5 + local.get $1 i32.store - local.get $6 - local.set $3 local.get $7 - local.set $5 - local.get $1 - local.set $4 + local.set $3 + local.get $5 + local.set $1 + local.get $4 + local.set $6 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $6 if - local.get $4 + local.get $6 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.load local.tee $1 @@ -3838,7 +3878,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $6 i32.const 2 i32.shl local.get $11 @@ -3846,21 +3886,21 @@ i32.load i32.const 1 i32.add - local.get $13 + local.get $15 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $6 i32.const 1 i32.sub - local.set $4 + local.set $6 br $for-loop|4 end end local.get $10 call $~lib/rt/tlsf/__free - local.get $12 + local.get $13 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) @@ -4057,6 +4097,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -4101,17 +4143,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -4136,9 +4190,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -4216,27 +4274,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -4248,7 +4314,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -4258,8 +4326,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -4267,10 +4339,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -4278,10 +4354,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -4289,7 +4369,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -4315,19 +4395,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -4339,7 +4423,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -4349,8 +4435,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -4358,10 +4448,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -4369,10 +4463,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -4380,7 +4478,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -4426,7 +4524,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -4436,8 +4536,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -4445,10 +4549,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -4456,10 +4564,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -4467,7 +4579,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -4494,145 +4606,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -4643,73 +4787,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -4720,37 +4880,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -4761,19 +4929,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -6156,10 +6328,6 @@ local.get $0 i32.reinterpret_f32 local.tee $1 - i32.const -2147483648 - i32.and - local.set $4 - local.get $1 i32.const 23 i32.shr_u i32.const 255 @@ -6191,6 +6359,10 @@ f32.mul br $__inlined_func$~lib/math/NativeMathf.mod end + local.get $1 + i32.const -2147483648 + i32.and + local.set $4 local.get $2 if (result i32) local.get $1 @@ -6245,6 +6417,7 @@ br $while-continue|0 end end + local.get $2 local.get $1 i32.const 8388608 i32.ge_u @@ -6263,17 +6436,17 @@ local.set $1 end local.get $1 - local.get $1 i32.const 8 i32.shl i32.clz local.tee $3 + i32.sub + local.set $2 + local.get $1 + local.get $3 i32.shl local.set $1 local.get $2 - local.get $3 - i32.sub - local.tee $2 i32.const 0 i32.gt_s if (result i32) @@ -6307,10 +6480,6 @@ local.get $0 i64.reinterpret_f64 local.tee $3 - i64.const 63 - i64.shr_u - local.set $6 - local.get $3 i64.const 52 i64.shr_u i64.const 2047 @@ -6342,6 +6511,10 @@ f64.mul br $__inlined_func$~lib/math/NativeMath.mod end + local.get $3 + i64.const 63 + i64.shr_u + local.set $6 local.get $4 i64.eqz if (result i64) @@ -6397,6 +6570,7 @@ br $while-continue|0 end end + local.get $4 local.get $3 i64.const 4503599627370496 i64.ge_u @@ -6415,17 +6589,17 @@ local.set $3 end local.get $3 - local.get $3 i64.const 11 i64.shl i64.clz local.tee $5 + i64.sub + local.set $4 + local.get $3 + local.get $5 i64.shl local.set $3 local.get $4 - local.get $5 - i64.sub - local.tee $4 i64.const 0 i64.gt_s if (result i64) @@ -6488,14 +6662,14 @@ i32.load local.tee $1 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -6514,7 +6688,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -6523,9 +6697,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 @@ -6533,7 +6707,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.eqz @@ -6562,7 +6736,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -6571,9 +6745,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 @@ -6581,7 +6755,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 11 @@ -6613,7 +6787,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -6622,9 +6796,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 @@ -6632,7 +6806,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 255 @@ -6664,7 +6838,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -6673,9 +6847,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 @@ -6683,7 +6857,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -6715,7 +6889,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 2 @@ -6724,9 +6898,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 @@ -6734,7 +6908,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -6766,7 +6940,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 3 @@ -6775,9 +6949,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 @@ -6785,7 +6959,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -6817,7 +6991,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 4 @@ -6826,9 +7000,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 @@ -6836,7 +7010,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -6868,7 +7042,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 10 @@ -6877,9 +7051,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 @@ -6887,7 +7061,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 1 @@ -6917,35 +7091,36 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 + local.get $2 i32.add i32.load8_u i32.const 1 @@ -6954,7 +7129,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -6974,59 +7149,59 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -7037,59 +7212,60 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -7102,59 +7278,60 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -7167,59 +7344,60 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -7233,29 +7411,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -7265,7 +7444,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -7286,29 +7465,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -7318,7 +7498,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -7339,29 +7519,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -7371,7 +7552,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -7392,29 +7573,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -7424,7 +7606,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -7445,24 +7627,25 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -7472,7 +7655,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -7493,24 +7676,25 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -7520,7 +7704,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -7539,32 +7723,32 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 4 i32.const 9 call $~lib/typedarray/Int8Array#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -7601,21 +7785,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -7650,21 +7834,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -7701,21 +7885,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -7752,21 +7936,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -7803,21 +7987,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -7854,21 +8038,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -7905,26 +8089,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 5 @@ -7992,14 +8176,14 @@ i32.load local.tee $1 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -8019,7 +8203,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -8028,9 +8212,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 @@ -8038,7 +8222,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.eqz @@ -8067,7 +8251,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -8076,9 +8260,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 @@ -8086,7 +8270,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 11 @@ -8118,7 +8302,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -8127,9 +8311,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 @@ -8137,7 +8321,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 255 @@ -8169,7 +8353,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -8178,9 +8362,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 @@ -8188,7 +8372,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -8220,7 +8404,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 2 @@ -8229,9 +8413,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 @@ -8239,7 +8423,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -8271,7 +8455,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 3 @@ -8280,9 +8464,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 @@ -8290,7 +8474,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -8322,7 +8506,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 4 @@ -8331,9 +8515,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 @@ -8341,7 +8525,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -8373,7 +8557,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 10 @@ -8382,9 +8566,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 @@ -8392,7 +8576,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 1 @@ -8422,35 +8606,36 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 + local.get $2 i32.add i32.load8_u i32.const 1 @@ -8459,7 +8644,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -8479,59 +8664,59 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -8542,59 +8727,60 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -8607,59 +8793,60 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -8672,59 +8859,60 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -8738,29 +8926,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -8770,7 +8959,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -8791,29 +8980,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -8823,7 +9013,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -8844,29 +9034,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -8876,7 +9067,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -8897,29 +9088,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -8929,7 +9121,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -8950,24 +9142,25 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -8977,7 +9170,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -8998,24 +9191,25 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -9025,7 +9219,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -9044,31 +9238,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9 call $~lib/typedarray/Uint8Array#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -9105,21 +9299,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -9154,21 +9348,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -9205,21 +9399,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -9256,21 +9450,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -9307,21 +9501,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -9358,21 +9552,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -9409,26 +9603,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 5 @@ -9496,14 +9690,14 @@ i32.load local.tee $1 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -9523,7 +9717,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -9532,9 +9726,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 @@ -9542,7 +9736,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.eqz @@ -9571,7 +9765,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -9580,9 +9774,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 @@ -9590,7 +9784,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 11 @@ -9622,7 +9816,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -9631,9 +9825,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 @@ -9641,7 +9835,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 255 @@ -9673,7 +9867,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 0 @@ -9682,9 +9876,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 @@ -9692,7 +9886,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -9724,7 +9918,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 2 @@ -9733,9 +9927,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 @@ -9743,7 +9937,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -9775,7 +9969,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 3 @@ -9784,9 +9978,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 @@ -9794,7 +9988,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -9826,7 +10020,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 4 @@ -9835,9 +10029,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 @@ -9845,7 +10039,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 3 @@ -9877,7 +10071,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 local.tee $4 i32.const 10 @@ -9886,9 +10080,9 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 @@ -9896,7 +10090,7 @@ if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 1 @@ -9926,35 +10120,36 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 + local.get $2 i32.add i32.load8_u i32.const 1 @@ -9963,7 +10158,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -9983,59 +10178,59 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -10046,59 +10241,60 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -10111,59 +10307,60 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -10176,59 +10373,60 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -10242,29 +10440,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -10274,7 +10473,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -10295,29 +10494,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -10327,7 +10527,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -10348,29 +10548,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -10380,7 +10581,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -10401,29 +10602,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 i32.le_s select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -10433,7 +10635,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -10454,24 +10656,25 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -10481,7 +10684,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -10502,24 +10705,25 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u @@ -10529,7 +10733,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -10548,31 +10752,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9 call $~lib/typedarray/Uint8ClampedArray#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -10609,21 +10813,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -10658,21 +10862,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -10709,21 +10913,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -10760,21 +10964,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -10811,21 +11015,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -10862,21 +11066,21 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -10913,26 +11117,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $3 i32.add i32.load8_u i32.const 5 @@ -11000,14 +11204,14 @@ i32.load local.tee $1 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -11026,7 +11230,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -11036,19 +11240,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.eqz @@ -11077,7 +11281,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -11087,19 +11291,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 11 @@ -11131,7 +11335,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -11141,19 +11345,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 65535 @@ -11185,7 +11389,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -11195,19 +11399,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -11239,7 +11443,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -11250,19 +11454,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -11294,7 +11498,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -11305,19 +11509,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -11349,7 +11553,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -11360,19 +11564,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -11404,7 +11608,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -11415,19 +11619,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 1 @@ -11457,39 +11661,40 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 1 @@ -11498,7 +11703,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -11518,65 +11723,65 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -11587,65 +11792,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -11658,65 +11864,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 65535 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -11729,65 +11936,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -11801,34 +12009,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -11837,7 +12046,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -11858,34 +12067,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -11894,7 +12104,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -11915,34 +12125,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -11951,7 +12162,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -11972,34 +12183,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 1 @@ -12008,7 +12220,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -12029,29 +12241,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 1 @@ -12060,7 +12273,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -12081,29 +12294,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 1 @@ -12112,7 +12326,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -12131,39 +12345,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9 call $~lib/typedarray/Int16Array#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -12195,29 +12409,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 4 @@ -12247,29 +12461,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 5 @@ -12301,29 +12515,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 9 @@ -12355,29 +12569,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 10 @@ -12409,29 +12623,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 11 @@ -12463,30 +12677,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 5 @@ -12518,30 +12732,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_u i32.const 5 @@ -12609,14 +12823,14 @@ i32.load local.tee $1 call $~lib/typedarray/Uint16Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -12636,7 +12850,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -12646,19 +12860,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.eqz @@ -12687,7 +12901,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -12697,19 +12911,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 11 @@ -12741,7 +12955,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -12751,19 +12965,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 65535 @@ -12795,7 +13009,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -12805,19 +13019,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -12849,7 +13063,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -12860,19 +13074,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -12904,7 +13118,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -12915,19 +13129,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -12959,7 +13173,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -12970,19 +13184,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -13014,7 +13228,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -13025,19 +13239,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 1 @@ -13067,39 +13281,40 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 1 @@ -13108,7 +13323,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -13128,65 +13343,65 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -13197,65 +13412,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -13268,65 +13484,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 65535 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -13339,65 +13556,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -13411,34 +13629,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -13447,7 +13666,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -13468,34 +13687,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -13504,7 +13724,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -13525,34 +13745,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -13561,7 +13782,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -13582,34 +13803,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 1 @@ -13618,7 +13840,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -13639,29 +13861,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 1 @@ -13670,7 +13893,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -13691,29 +13914,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 1 @@ -13722,7 +13946,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -13741,39 +13965,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9 call $~lib/typedarray/Uint16Array#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 @@ -13805,29 +14029,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 4 @@ -13857,29 +14081,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 5 @@ -13911,29 +14135,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 9 @@ -13965,29 +14189,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 10 @@ -14019,29 +14243,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 11 @@ -14073,30 +14297,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 5 @@ -14128,30 +14352,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_u i32.const 5 @@ -14219,14 +14443,14 @@ i32.load local.tee $1 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -14244,7 +14468,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -14254,19 +14478,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.eqz @@ -14295,7 +14519,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -14305,19 +14529,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 11 @@ -14349,7 +14573,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -14359,19 +14583,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const -1 @@ -14403,7 +14627,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -14413,19 +14637,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -14457,7 +14681,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -14468,19 +14692,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -14512,7 +14736,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -14523,19 +14747,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -14567,7 +14791,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -14578,19 +14802,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -14622,7 +14846,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -14633,19 +14857,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 1 @@ -14675,39 +14899,40 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 1 @@ -14716,7 +14941,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -14736,65 +14961,65 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -14805,65 +15030,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -14876,65 +15102,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const -1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -14947,65 +15174,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -15019,34 +15247,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -15055,7 +15284,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -15076,34 +15305,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -15112,7 +15342,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -15133,34 +15363,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -15169,7 +15400,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -15190,34 +15421,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 1 @@ -15226,7 +15458,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -15247,29 +15479,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 1 @@ -15278,7 +15511,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -15299,29 +15532,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 1 @@ -15330,7 +15564,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -15349,40 +15583,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 4 i32.const 9 call $~lib/typedarray/Int32Array#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -15414,29 +15648,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 4 @@ -15466,29 +15700,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 5 @@ -15520,29 +15754,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 9 @@ -15574,29 +15808,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 10 @@ -15628,29 +15862,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 11 @@ -15682,30 +15916,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 5 @@ -15737,30 +15971,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $3 i32.add i32.load i32.const 5 @@ -15828,14 +16062,14 @@ i32.load local.tee $1 call $~lib/typedarray/Uint32Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -15853,7 +16087,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -15863,19 +16097,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.eqz @@ -15904,7 +16138,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -15914,19 +16148,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 11 @@ -15958,7 +16192,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -15968,19 +16202,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const -1 @@ -16012,7 +16246,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -16022,19 +16256,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -16066,7 +16300,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -16077,19 +16311,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -16121,7 +16355,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -16132,19 +16366,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -16176,7 +16410,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -16187,19 +16421,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -16231,7 +16465,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -16242,19 +16476,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 1 @@ -16284,39 +16518,40 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 1 @@ -16325,7 +16560,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -16345,65 +16580,65 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -16414,65 +16649,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -16485,65 +16721,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const -1 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -16556,65 +16793,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -16628,34 +16866,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -16664,7 +16903,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -16685,34 +16924,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -16721,7 +16961,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -16742,34 +16982,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -16778,7 +17019,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -16799,34 +17040,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 1 @@ -16835,7 +17077,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -16856,29 +17098,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 1 @@ -16887,7 +17130,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -16908,29 +17151,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 1 @@ -16939,7 +17183,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -16958,39 +17202,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9 call $~lib/typedarray/Uint32Array#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 @@ -17022,29 +17266,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 4 @@ -17074,29 +17318,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 5 @@ -17128,29 +17372,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 9 @@ -17182,29 +17426,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 10 @@ -17236,29 +17480,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 11 @@ -17290,30 +17534,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 5 @@ -17345,30 +17589,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $3 i32.add i32.load i32.const 5 @@ -17436,14 +17680,14 @@ i32.load local.tee $1 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -17462,7 +17706,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -17472,19 +17716,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.eqz @@ -17513,7 +17757,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -17523,19 +17767,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 11 @@ -17567,7 +17811,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -17577,19 +17821,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const -1 @@ -17621,7 +17865,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -17631,19 +17875,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -17675,7 +17919,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -17686,19 +17930,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -17730,7 +17974,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -17741,19 +17985,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -17785,7 +18029,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -17796,19 +18040,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -17840,7 +18084,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -17851,19 +18095,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 1 @@ -17893,39 +18137,40 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 1 @@ -17934,7 +18179,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -17954,65 +18199,65 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -18023,65 +18268,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -18094,65 +18340,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -18165,65 +18412,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -18237,34 +18485,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -18273,7 +18522,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -18294,34 +18543,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -18330,7 +18580,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -18351,34 +18601,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -18387,7 +18638,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -18408,34 +18659,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 1 @@ -18444,7 +18696,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -18465,29 +18717,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 1 @@ -18496,7 +18749,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -18517,29 +18770,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 1 @@ -18548,7 +18802,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -18567,39 +18821,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9 call $~lib/typedarray/Int64Array#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -18631,29 +18885,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 4 @@ -18683,29 +18937,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 5 @@ -18737,29 +18991,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 9 @@ -18791,29 +19045,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 10 @@ -18845,29 +19099,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 11 @@ -18899,30 +19153,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 5 @@ -18954,30 +19208,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $3 i32.add i64.load i64.const 5 @@ -19045,14 +19299,14 @@ i32.load local.tee $1 call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -19071,7 +19325,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -19081,19 +19335,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.eqz @@ -19122,7 +19376,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -19132,19 +19386,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 11 @@ -19176,7 +19430,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -19186,19 +19440,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const -1 @@ -19230,7 +19484,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -19240,19 +19494,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -19284,7 +19538,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -19295,19 +19549,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -19339,7 +19593,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -19350,19 +19604,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -19394,7 +19648,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -19405,19 +19659,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -19449,7 +19703,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -19460,19 +19714,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 1 @@ -19502,39 +19756,40 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 1 @@ -19543,7 +19798,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -19563,65 +19818,65 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -19632,65 +19887,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -19703,65 +19959,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -19774,65 +20031,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -19846,34 +20104,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -19882,7 +20141,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -19903,34 +20162,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -19939,7 +20199,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -19960,34 +20220,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -19996,7 +20257,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -20017,34 +20278,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 1 @@ -20053,7 +20315,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -20074,29 +20336,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 1 @@ -20105,7 +20368,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -20126,29 +20389,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 1 @@ -20157,7 +20421,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -20176,39 +20440,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9 call $~lib/typedarray/Uint64Array#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 3 @@ -20240,29 +20504,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 4 @@ -20292,29 +20556,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 5 @@ -20346,29 +20610,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 9 @@ -20400,29 +20664,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 10 @@ -20454,29 +20718,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 11 @@ -20508,30 +20772,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i64.const 5 @@ -20563,30 +20827,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $3 i32.add i64.load i64.const 5 @@ -20654,14 +20918,14 @@ i32.load local.tee $1 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -20680,7 +20944,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -20690,19 +20954,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 0 @@ -20732,7 +20996,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -20742,19 +21006,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 11 @@ -20786,7 +21050,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -20796,19 +21060,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const -1 @@ -20840,7 +21104,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -20850,19 +21114,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 3 @@ -20894,7 +21158,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -20905,19 +21169,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 3 @@ -20949,7 +21213,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -20960,19 +21224,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 3 @@ -21004,7 +21268,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -21015,19 +21279,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 3 @@ -21059,7 +21323,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -21070,19 +21334,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 1 @@ -21112,39 +21376,40 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 1 @@ -21153,7 +21418,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -21173,66 +21438,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 0 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -21243,65 +21508,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 11 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -21314,65 +21580,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const -1 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -21385,65 +21652,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -21457,34 +21725,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 3 @@ -21493,7 +21762,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -21514,34 +21783,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 3 @@ -21550,7 +21820,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -21571,34 +21841,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 3 @@ -21607,7 +21878,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -21628,34 +21899,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 1 @@ -21664,7 +21936,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -21685,29 +21957,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 1 @@ -21716,7 +21989,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -21737,29 +22010,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 1 @@ -21768,7 +22042,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -21787,39 +22061,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 9 call $~lib/typedarray/Float32Array#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 3 @@ -21851,29 +22125,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 4 @@ -21903,29 +22177,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 5 @@ -21957,29 +22231,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 9 @@ -22011,29 +22285,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 10 @@ -22065,29 +22339,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 11 @@ -22119,30 +22393,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const 5 @@ -22174,30 +22448,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $3 i32.add f32.load f32.const 5 @@ -22265,14 +22539,14 @@ i32.load local.tee $1 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $3 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 7728 local.get $0 @@ -22291,7 +22565,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -22301,19 +22575,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|0 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 0 @@ -22343,7 +22617,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -22353,19 +22627,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|02 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 11 @@ -22397,7 +22671,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -22407,19 +22681,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|05 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const -1 @@ -22451,7 +22725,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -22461,19 +22735,19 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|08 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 3 @@ -22505,7 +22779,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -22516,19 +22790,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|011 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 3 @@ -22560,7 +22834,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -22571,19 +22845,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|014 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 3 @@ -22615,7 +22889,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -22626,19 +22900,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|017 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 3 @@ -22670,7 +22944,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -22681,19 +22955,19 @@ local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|020 local.get $0 local.get $4 i32.lt_s if - local.get $3 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 1 @@ -22723,39 +22997,40 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 - local.get $2 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $2 - i32.load offset=4 local.set $0 + local.get $3 + i32.load offset=4 + local.set $2 loop $while-continue|023 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if local.get $0 - local.get $1 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 1 @@ -22764,7 +23039,7 @@ local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end @@ -22784,66 +23059,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - local.tee $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|00 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 0 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|00 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -22854,65 +23129,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|06 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 11 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|06 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -22925,65 +23201,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|012 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const -1 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|012 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -22996,65 +23273,66 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $3 + local.get $0 + local.get $0 + local.get $2 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 - local.set $1 + local.set $2 loop $while-continue|018 - local.get $2 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.get $2 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $0 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -23068,34 +23346,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $2 + local.get $0 i32.const 4 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 3 @@ -23104,7 +23383,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -23125,34 +23404,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $2 + local.get $0 i32.const 3 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|027 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 3 @@ -23161,7 +23441,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|027 end end @@ -23182,34 +23462,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $2 + local.get $0 i32.const 2 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|030 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 3 @@ -23218,7 +23499,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|030 end end @@ -23239,34 +23520,35 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 - local.get $2 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $2 + local.get $0 i32.const 100 - i32.le_s + i32.le_u select - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|033 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 1 @@ -23275,7 +23557,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|033 end end @@ -23296,29 +23578,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $2 + local.get $0 i32.const 10 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|036 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 1 @@ -23327,7 +23610,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|036 end end @@ -23348,29 +23631,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 - local.get $2 + local.get $0 i32.const 11 i32.sub - local.set $1 - local.get $0 + local.set $0 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|039 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 1 @@ -23379,7 +23663,7 @@ local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|039 end end @@ -23398,40 +23682,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 4 i32.const 9 call $~lib/typedarray/Float64Array#subarray - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|042 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 3 @@ -23463,29 +23747,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|045 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 4 @@ -23515,29 +23799,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|048 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 5 @@ -23569,29 +23853,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|051 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 9 @@ -23623,29 +23907,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|054 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 10 @@ -23677,29 +23961,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|057 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 11 @@ -23731,30 +24015,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 loop $while-continue|060 local.get $0 - local.get $3 + local.get $4 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const 5 @@ -23786,30 +24070,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $2 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 - local.get $4 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|063 local.get $0 - local.get $3 + local.get $2 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $3 i32.add f64.load f64.const 5 @@ -23947,7 +24231,6 @@ ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) local.get $1 i32.extend8_s i32.const 0 @@ -23967,10 +24250,10 @@ i32.const 10 i32.lt_u if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.extend8_s @@ -23982,59 +24265,56 @@ i32.add return end + local.get $0 local.get $1 i32.extend8_s - local.tee $3 - local.tee $1 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - local.get $0 - local.get $3 - local.get $1 local.get $2 i32.add local.tee $0 @@ -24053,6 +24333,8 @@ local.set $3 local.get $0 i32.load offset=8 + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24073,7 +24355,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -24115,7 +24397,7 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 @@ -24123,34 +24405,34 @@ i32.gt_s if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add local.get $3 local.get $5 i32.add i32.load8_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -24161,22 +24443,22 @@ end local.get $6 local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add local.get $2 local.get $3 i32.add i32.load8_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -24185,6 +24467,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -24311,7 +24595,6 @@ i32.eqz ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 i32.const 255 i32.and @@ -24328,62 +24611,60 @@ i32.const 1 return end + local.get $0 local.get $1 i32.const 255 i32.and - local.tee $2 - local.tee $1 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - local.get $0 - local.get $2 - local.get $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result i32) (local $1 i32) @@ -24397,6 +24678,8 @@ local.set $3 local.get $0 i32.load offset=8 + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24417,7 +24700,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -24459,7 +24742,7 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 @@ -24467,34 +24750,34 @@ i32.gt_s if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add local.get $3 local.get $5 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -24505,22 +24788,22 @@ end local.get $6 local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add local.get $2 local.get $3 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -24529,6 +24812,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -24540,7 +24825,6 @@ ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) local.get $1 i32.extend16_s i32.const 0 @@ -24560,10 +24844,10 @@ i32.const 10 i32.lt_u if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.extend16_s @@ -24575,59 +24859,56 @@ i32.add return end + local.get $0 local.get $1 i32.extend16_s - local.tee $3 - local.tee $1 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - local.get $0 - local.get $3 - local.get $1 local.get $2 i32.add local.tee $0 @@ -24648,6 +24929,8 @@ i32.load offset=8 i32.const 1 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24668,7 +24951,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -24710,7 +24993,7 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 @@ -24718,36 +25001,36 @@ i32.gt_s if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $5 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -24758,24 +25041,24 @@ end local.get $6 local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $2 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_s call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -24784,6 +25067,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -24794,7 +25079,6 @@ local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) local.get $1 i32.const 65535 i32.and @@ -24811,62 +25095,60 @@ i32.const 1 return end + local.get $0 local.get $1 i32.const 65535 i32.and - local.tee $2 - local.tee $1 + local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - local.get $0 - local.get $2 - local.get $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result i32) (local $1 i32) @@ -24882,6 +25164,8 @@ i32.load offset=8 i32.const 1 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24902,7 +25186,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -24944,7 +25228,7 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 @@ -24952,36 +25236,36 @@ i32.gt_s if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $5 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -24992,24 +25276,24 @@ end local.get $6 local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $2 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -25018,6 +25302,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -25046,10 +25332,10 @@ i32.const 10 i32.lt_u if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i32.const 48 @@ -25129,6 +25415,8 @@ i32.load offset=8 i32.const 2 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25149,7 +25437,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -25191,7 +25479,7 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 @@ -25199,36 +25487,36 @@ i32.gt_s if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $5 i32.const 2 i32.shl + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -25239,24 +25527,24 @@ end local.get $6 local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $2 i32.const 2 i32.shl + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -25265,6 +25553,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -25354,6 +25644,8 @@ i32.load offset=8 i32.const 2 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25374,7 +25666,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -25416,7 +25708,7 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 @@ -25424,36 +25716,36 @@ i32.gt_s if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $5 i32.const 2 i32.shl + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -25464,24 +25756,24 @@ end local.get $6 local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $2 i32.const 2 i32.shl + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -25490,6 +25782,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -25609,10 +25903,10 @@ i64.const 10 i64.lt_u if - local.get $0 local.get $3 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 i64.const 48 @@ -25744,6 +26038,349 @@ end local.get $0 ) + (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7776 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + block $folding-inner0 + local.get $4 + i32.eqz + if + local.get $5 + i64.load + i64.extend32_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa64 + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + local.set $0 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $2 + i64.sub + local.get $2 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $3 + select + local.tee $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $6 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $3 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $6 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $3 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $7 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $7 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $4 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + return + end + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) @@ -25891,21 +26528,23 @@ i32.load offset=8 i32.const 3 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $3 @@ -25920,264 +26559,265 @@ local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $3 - i32.eqz - if - local.get $4 - i64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64 - local.get $2 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - local.set $0 - br $__inlined_func$~lib/util/number/utoa64 - end - local.get $2 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer + block $folding-inner0 + local.get $3 + i32.eqz + if + local.get $4 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 local.get $2 - i32.wrap_i64 - local.tee $3 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8000 + local.set $0 + br $__inlined_func$~lib/util/number/utoa64 + end + local.get $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $3 + local.tee $0 + i32.const 100000 i32.lt_u if (result i32) local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end else local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end end - else + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $3 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $2 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $2 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $2 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $2 - i64.const 10000000000000 - i64.ge_u - i32.add - end + local.get $3 + local.get $1 + call $~lib/util/number/utoa32_dec_lut else + global.get $~lib/memory/__stack_pointer local.get $2 - i64.const 100000000000000000 + i64.const 1000000000000000 i64.lt_u if (result i32) local.get $2 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end else local.get $2 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $2 - i64.const 1000000000000000000 - i64.ge_u - i32.add + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end end + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa64_dec_lut end - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa64_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + br $folding-inner0 end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 20 - i32.add - i32.mul - i32.const 20 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - loop $for-loop|0 local.get $3 - local.get $6 - i32.gt_s - if - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 20 + i32.add + i32.mul + i32.const 20 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $5 + i32.gt_s if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - i32.const 9584 - local.get $5 - i32.const 1 + local.get $6 + i32.const 3 i32.shl - call $~lib/memory/memory.copy - local.get $1 + local.get $4 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 local.get $5 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9584 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $5 + i32.add + local.set $0 + end + local.get $6 + i32.const 1 i32.add - local.set $1 + local.set $6 + br $for-loop|0 end - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 end - end - local.get $7 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $1 - i32.gt_s - if + local.get $7 local.get $0 + i32.const 1 + i32.shl local.get $1 - call $~lib/string/String#substring - local.set $0 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $4 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -26406,10 +27046,10 @@ i32.const 1 i32.add local.set $5 - local.get $0 local.get $8 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 65535 @@ -26447,12 +27087,12 @@ i64.extend_i32_s i64.shl local.set $2 - local.get $0 local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.tee $6 i32.load16_u @@ -26508,9 +27148,6 @@ br $while-continue|0 end end - local.get $11 - i64.extend_i32_s - local.set $1 loop $while-continue|4 local.get $4 i64.const 10 @@ -26519,10 +27156,11 @@ local.get $7 i64.const 10 i64.mul - local.tee $2 - local.get $1 + local.tee $1 + local.get $11 + i64.extend_i32_s i64.shr_u - local.tee $7 + local.tee $2 local.get $5 i64.extend_i32_s i64.or @@ -26534,12 +27172,12 @@ i32.const 1 i32.add local.set $5 - local.get $0 local.get $3 i32.const 1 i32.shl + local.get $0 i32.add - local.get $7 + local.get $2 i32.wrap_i64 i32.const 65535 i32.and @@ -26552,7 +27190,7 @@ i32.sub local.set $9 local.get $4 - local.get $2 + local.get $1 local.get $13 i64.and local.tee $7 @@ -26565,7 +27203,6 @@ global.set $~lib/util/number/_K local.get $7 local.set $1 - local.get $10 i32.const 0 local.get $9 i32.sub @@ -26574,14 +27211,15 @@ i32.const 10736 i32.add i64.load32_u + local.get $10 i64.mul local.set $2 - local.get $0 local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.tee $6 i32.load16_u @@ -26641,10 +27279,10 @@ local.get $2 i32.eqz if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store @@ -26656,24 +27294,24 @@ local.get $1 local.get $2 i32.add - local.tee $4 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $4 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $4 + local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -26684,31 +27322,32 @@ br $for-loop|0 end end - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store - local.get $4 + local.get $3 i32.const 2 i32.add else - local.get $4 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add + local.tee $4 local.tee $0 i32.const 2 i32.add @@ -26719,29 +27358,29 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $4 i32.const 46 i32.store16 local.get $1 i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const -6 i32.gt_s select if (result i32) - local.get $0 i32.const 2 - local.get $4 + local.get $3 i32.sub - local.tee $5 + local.tee $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $0 local.get $1 @@ -26755,13 +27394,13 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $5 + local.get $4 i32.lt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -26773,7 +27412,7 @@ end end local.get $1 - local.get $5 + local.get $4 i32.add else local.get $1 @@ -26784,10 +27423,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $5 + local.get $3 i32.const 1 i32.sub local.tee $0 @@ -26854,12 +27493,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $5 i32.const 45 i32.const 43 local.get $2 select - i32.store16 offset=4 + i32.store16 local.get $0 i32.const 2 i32.add @@ -26887,16 +27526,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $6 + local.get $3 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -26957,12 +27596,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $6 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select - i32.store16 offset=4 + i32.store16 local.get $0 local.get $1 i32.add @@ -26975,21 +27614,21 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) (local $6 i64) (local $7 i64) (local $8 i64) (local $9 i32) (local $10 i32) (local $11 i64) - (local $12 i64) + (local $12 i32) (local $13 i64) local.get $1 f64.const 0 f64.lt - local.tee $9 + local.tee $10 if (result f64) local.get $0 i32.const 45 @@ -27006,11 +27645,11 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.set $5 + local.set $3 local.get $2 i64.const 4503599627370495 i64.and - local.get $5 + local.get $3 i32.const 0 i32.ne i64.extend_i32_u @@ -27018,13 +27657,13 @@ i64.shl i64.add local.set $2 - local.get $5 + local.get $3 i32.const 1 - local.get $5 + local.get $3 select i32.const 1075 i32.sub - local.tee $5 + local.tee $3 i32.const 1 i32.sub local.get $2 @@ -27032,14 +27671,14 @@ i64.shl i64.const 1 i64.add - local.tee $3 + local.tee $4 i64.clz i32.wrap_i64 - local.tee $4 + local.tee $9 i32.sub - local.set $10 - local.get $3 + local.set $12 local.get $4 + local.get $9 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -27049,25 +27688,25 @@ i64.eq i32.const 1 i32.add - local.tee $4 + local.tee $9 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $5 - local.get $4 + local.get $3 + local.get $9 i32.sub - local.get $10 + local.get $12 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $10 + local.get $12 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $5 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -27076,9 +27715,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $4 + local.tee $3 local.get $1 - local.get $4 + local.get $3 f64.convert_i32_s f64.ne i32.add @@ -27086,18 +27725,19 @@ i32.shr_s i32.const 1 i32.add - local.tee $4 + local.tee $3 i32.const 3 i32.shl - local.tee $10 i32.sub global.set $~lib/util/number/_K - local.get $10 + local.get $3 + i32.const 3 + i32.shl i32.const 9864 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $4 + local.get $3 i32.const 1 i32.shl i32.const 10560 @@ -27108,29 +27748,23 @@ local.get $2 i64.clz i64.shl - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $12 + local.set $13 global.get $~lib/util/number/_frc_pow - local.tee $11 + local.tee $2 i64.const 4294967295 i64.and - local.set $2 - local.get $3 + local.tee $11 + local.get $4 i64.const 32 i64.shr_u - local.set $13 + local.tee $4 + i64.mul local.get $11 - i64.const 32 - i64.shr_u - local.set $3 - local.get $2 local.get $13 i64.mul - local.get $2 - local.get $12 - i64.mul i64.const 32 i64.shr_u i64.add @@ -27141,29 +27775,35 @@ i64.and local.set $7 local.get $2 + i64.const 4294967295 + i64.and + local.tee $5 local.get $6 i64.const 32 i64.shr_u local.tee $6 i64.mul - local.get $2 + local.get $5 local.get $7 i64.mul i64.const 32 i64.shr_u i64.add - local.set $8 - local.get $3 + local.set $5 local.get $6 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $8 i64.mul - local.get $8 + local.get $5 i64.const 32 i64.shr_u i64.add - local.get $3 local.get $7 - i64.mul local.get $8 + i64.mul + local.get $5 i64.const 4294967295 i64.and i64.add @@ -27179,35 +27819,41 @@ local.tee $7 i64.const 4294967295 i64.and - local.set $8 + local.set $5 local.get $2 + i64.const 4294967295 + i64.and + local.tee $8 local.get $7 i64.const 32 i64.shr_u local.tee $7 i64.mul - local.get $2 + local.get $5 local.get $8 i64.mul i64.const 32 i64.shr_u i64.add - local.set $2 - local.get $9 + local.set $8 + local.get $10 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $3 - local.get $13 + local.get $4 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $4 i64.mul local.get $11 i64.const 32 i64.shr_u i64.add - local.get $3 - local.get $12 + local.get $4 + local.get $13 i64.mul local.get $11 i64.const 4294967295 @@ -27219,23 +27865,26 @@ i64.shr_u i64.add local.get $6 - local.get $5 global.get $~lib/util/number/_exp_pow + local.get $9 i32.add i32.const -64 i32.sub local.get $6 - local.get $3 local.get $7 - i64.mul local.get $2 i64.const 32 i64.shr_u - i64.add - local.get $3 - local.get $8 + local.tee $2 i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add local.get $2 + local.get $5 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -27247,13 +27896,13 @@ i64.const 1 i64.add i64.sub - local.get $9 + local.get $10 call $~lib/util/number/genDigits - local.get $9 + local.get $10 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $10 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -27340,6 +27989,8 @@ i32.load offset=8 i32.const 2 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27360,7 +28011,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinFloatArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -27403,7 +28054,7 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 @@ -27411,37 +28062,37 @@ i32.gt_s if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $5 i32.const 2 i32.shl + local.get $3 i32.add f32.load f64.promote_f32 call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -27452,25 +28103,25 @@ end local.get $6 local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $2 i32.const 2 i32.shl + local.get $3 i32.add f32.load f64.promote_f32 call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -27479,6 +28130,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer @@ -27502,6 +28155,8 @@ i32.load offset=8 i32.const 3 i32.shr_u + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27522,7 +28177,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/string/joinFloatArray - local.get $0 + local.get $1 i32.const 1 i32.sub local.tee $2 @@ -27564,7 +28219,7 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 local.get $2 @@ -27572,36 +28227,36 @@ i32.gt_s if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $5 i32.const 3 i32.shl + local.get $3 i32.add f64.load call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 + local.set $0 local.get $4 if local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add i32.const 9584 local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 + local.get $0 local.get $4 i32.add - local.set $1 + local.set $0 end local.get $5 i32.const 1 @@ -27612,24 +28267,24 @@ end local.get $6 local.get $0 - local.get $1 i32.const 1 i32.shl + local.get $1 i32.add - local.get $3 local.get $2 i32.const 3 i32.shl + local.get $3 i32.add f64.load call $~lib/util/number/dtoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/string/String#substring local.set $0 br $folding-inner0 @@ -27638,6 +28293,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer @@ -27795,10 +28452,10 @@ local.get $0 local.get $1 i32.add - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.store8 @@ -27851,10 +28508,10 @@ local.get $0 local.get $2 i32.add - local.get $3 local.get $2 i32.const 3 i32.shl + local.get $3 i32.add i64.load i64.store8 @@ -27929,10 +28586,10 @@ local.get $0 local.get $2 i32.add - local.get $3 local.get $2 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_s i32.store8 @@ -27972,8 +28629,7 @@ ) (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i64) + (local $4 i64) local.get $2 i32.const 0 i32.lt_s @@ -28006,10 +28662,10 @@ local.get $0 i32.load offset=4 i32.add - local.set $2 + local.set $0 local.get $1 i32.load offset=4 - local.set $4 + local.set $2 local.get $1 i32.load offset=8 i32.const 3 @@ -28020,26 +28676,26 @@ local.get $3 i32.gt_s if - local.get $2 + local.get $0 local.get $3 i32.add local.get $3 i32.const 3 i32.shl - local.get $4 + local.get $2 i32.add i64.load - local.tee $5 + local.tee $4 i32.wrap_i64 - local.tee $0 i32.const 31 i32.shr_s i32.const -1 i32.xor i64.extend_i32_s - local.get $5 + local.get $4 i32.const 255 - local.get $0 + local.get $4 + i32.wrap_i64 i32.sub i32.const 31 i32.shr_s @@ -28168,15 +28824,15 @@ local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.store16 @@ -28228,15 +28884,15 @@ local.get $2 i32.gt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add - local.get $3 local.get $2 i32.const 3 i32.shl + local.get $3 i32.add i64.load i64.store16 @@ -28280,10 +28936,10 @@ local.get $2 i32.gt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add local.get $2 local.get $3 @@ -28365,10 +29021,10 @@ local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.get $1 local.get $2 @@ -28464,15 +29120,15 @@ local.get $2 i32.gt_s if - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add - local.get $3 local.get $2 i32.const 3 i32.shl + local.get $3 i32.add i64.load i64.store32 @@ -28516,10 +29172,10 @@ local.get $2 i32.gt_s if - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add local.get $2 local.get $3 @@ -28574,15 +29230,15 @@ local.get $2 i32.gt_s if - local.get $0 local.get $2 i32.const 2 i32.shl + local.get $0 i32.add - local.get $3 local.get $2 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_s i32.store @@ -28631,10 +29287,10 @@ local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add local.get $1 local.get $2 @@ -28682,15 +29338,15 @@ local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i64.load32_s i64.store @@ -28764,10 +29420,10 @@ local.get $2 i32.gt_s if - local.get $0 local.get $2 i32.const 3 i32.shl + local.get $0 i32.add local.get $2 local.get $3 @@ -28822,15 +29478,15 @@ local.get $2 i32.gt_s if - local.get $0 local.get $2 i32.const 3 i32.shl + local.get $0 i32.add - local.get $3 local.get $2 i32.const 1 i32.shl + local.get $3 i32.add i64.load16_s i64.store @@ -28879,10 +29535,10 @@ local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add local.get $1 local.get $2 @@ -28930,11 +29586,12 @@ local.get $0 local.get $7 i32.add - local.tee $3 i32.load8_s offset=1 local.tee $6 local.set $5 - local.get $3 + local.get $0 + local.get $7 + i32.add i32.load8_s local.set $3 i32.const 2 @@ -29080,9 +29737,10 @@ local.get $0 local.get $4 i32.add - local.tee $5 i32.load8_s offset=1 - local.get $5 + local.get $0 + local.get $4 + i32.add i32.load8_s i32.const 2 global.set $~argumentsLength @@ -29112,22 +29770,24 @@ local.get $0 local.get $1 i32.add - local.tee $3 i32.load8_s - local.set $6 - local.get $3 + local.set $3 + local.get $0 + local.get $1 + i32.add local.get $0 local.get $2 i32.add - local.tee $5 i32.load8_s i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $5 - local.get $6 + local.get $0 + local.get $2 + i32.add + local.get $3 i32.store8 local.get $2 i32.const 1 @@ -29145,9 +29805,10 @@ local.get $0 local.get $4 i32.add - local.tee $1 i32.load8_s offset=1 - local.get $1 + local.get $0 + local.get $4 + i32.add i32.load8_s i32.const 2 global.set $~argumentsLength @@ -29178,51 +29839,56 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub local.get $0 - local.get $2 i32.add i32.load8_s i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $7 - local.get $6 + local.get $2 i32.sub local.get $4 i32.add local.get $0 - local.get $6 + local.get $2 i32.add i32.load8_s offset=1 i32.store8 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -29231,20 +29897,20 @@ local.get $3 i32.le_s if + local.get $2 local.get $4 - local.get $6 i32.add i32.load8_s - local.set $8 - local.get $2 + local.set $7 local.get $4 + local.get $6 i32.add i32.load8_s - local.set $7 + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $7 + local.get $8 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -29254,22 +29920,22 @@ local.get $0 local.get $1 i32.add - local.get $8 + local.get $7 i32.store8 - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $0 local.get $1 i32.add - local.get $7 + local.get $8 i32.store8 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -29304,11 +29970,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -29316,87 +29981,87 @@ end local.get $0 i32.load8_s - local.set $3 + local.set $1 local.get $0 i32.load8_s offset=1 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $4 select i32.store8 - local.get $3 - local.get $4 - local.get $1 - select - local.set $3 local.get $0 i32.load8_s offset=2 - local.set $4 + local.set $5 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 + local.get $1 local.get $3 local.get $4 + select + local.tee $1 + local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $3 + local.get $0 + local.get $5 + local.get $1 + local.get $3 select i32.store8 offset=1 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $5 + local.get $3 select i32.store8 offset=2 end local.get $0 i32.load8_s - local.set $3 + local.set $1 local.get $0 i32.load8_s offset=1 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $2 select i32.store8 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $3 + local.get $2 select i32.store8 offset=1 return end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -29411,37 +30076,55 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $10 - local.get $5 + local.get $4 i32.add local.set $11 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -29451,10 +30134,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if @@ -29466,51 +30149,51 @@ i32.const 31 i32.lt_s select - local.tee $7 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $1 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 + local.get $4 local.get $9 - local.get $6 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 + local.tee $6 + local.get $6 local.get $9 i32.gt_s select - local.tee $5 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 @@ -29521,7 +30204,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -29534,36 +30217,34 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $7 + local.get $1 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -29572,42 +30253,42 @@ i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $10 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $10 i32.add local.get $3 i32.store - local.get $4 + local.get $5 local.get $11 i32.add - local.get $7 + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 - local.get $5 - local.set $7 - local.get $1 - local.set $4 + local.get $6 + local.set $1 + local.get $7 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 @@ -29619,7 +30300,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $11 @@ -29632,10 +30313,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end @@ -29654,14 +30335,14 @@ (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $1 i32.extend8_s - local.tee $1 local.get $0 i32.extend8_s - local.tee $0 i32.gt_s - local.get $0 local.get $1 - i32.gt_s + i32.extend8_s + local.get $0 + i32.extend8_s + i32.lt_s i32.sub ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) @@ -29697,11 +30378,12 @@ local.get $0 local.get $7 i32.add - local.tee $3 i32.load8_u offset=1 local.tee $6 local.set $5 - local.get $3 + local.get $0 + local.get $7 + i32.add i32.load8_u local.set $3 i32.const 2 @@ -29847,9 +30529,10 @@ local.get $0 local.get $4 i32.add - local.tee $5 i32.load8_u offset=1 - local.get $5 + local.get $0 + local.get $4 + i32.add i32.load8_u i32.const 2 global.set $~argumentsLength @@ -29879,22 +30562,24 @@ local.get $0 local.get $1 i32.add - local.tee $3 i32.load8_u - local.set $6 - local.get $3 + local.set $3 + local.get $0 + local.get $1 + i32.add local.get $0 local.get $2 i32.add - local.tee $5 i32.load8_u i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $5 - local.get $6 + local.get $0 + local.get $2 + i32.add + local.get $3 i32.store8 local.get $2 i32.const 1 @@ -29912,9 +30597,10 @@ local.get $0 local.get $4 i32.add - local.tee $1 i32.load8_u offset=1 - local.get $1 + local.get $0 + local.get $4 + i32.add i32.load8_u i32.const 2 global.set $~argumentsLength @@ -29945,51 +30631,56 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub local.get $0 - local.get $2 i32.add i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $7 - local.get $6 + local.get $2 i32.sub local.get $4 i32.add local.get $0 - local.get $6 + local.get $2 i32.add i32.load8_u offset=1 i32.store8 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -29998,20 +30689,20 @@ local.get $3 i32.le_s if + local.get $2 local.get $4 - local.get $6 i32.add i32.load8_u - local.set $8 - local.get $2 + local.set $7 local.get $4 + local.get $6 i32.add i32.load8_u - local.set $7 + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $7 + local.get $8 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -30021,22 +30712,22 @@ local.get $0 local.get $1 i32.add - local.get $8 + local.get $7 i32.store8 - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $0 local.get $1 i32.add - local.get $7 + local.get $8 i32.store8 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -30071,11 +30762,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -30083,87 +30773,87 @@ end local.get $0 i32.load8_u - local.set $3 + local.set $1 local.get $0 i32.load8_u offset=1 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $4 select i32.store8 - local.get $3 - local.get $4 - local.get $1 - select - local.set $3 local.get $0 i32.load8_u offset=2 - local.set $4 + local.set $5 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 + local.get $1 local.get $3 local.get $4 + select + local.tee $1 + local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $3 + local.get $0 + local.get $5 + local.get $1 + local.get $3 select i32.store8 offset=1 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $5 + local.get $3 select i32.store8 offset=2 end local.get $0 i32.load8_u - local.set $3 + local.set $1 local.get $0 i32.load8_u offset=1 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $2 select i32.store8 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $3 + local.get $2 select i32.store8 offset=1 return end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -30178,37 +30868,55 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $10 - local.get $5 + local.get $4 i32.add local.set $11 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $1 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -30218,10 +30926,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if @@ -30233,51 +30941,51 @@ i32.const 31 i32.lt_s select - local.tee $7 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $1 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 + local.get $4 local.get $9 - local.get $6 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 + local.tee $6 + local.get $6 local.get $9 i32.gt_s select - local.tee $5 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 @@ -30288,7 +30996,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -30301,36 +31009,34 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $7 + local.get $1 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -30339,42 +31045,42 @@ i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $10 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $10 i32.add local.get $3 i32.store - local.get $4 + local.get $5 local.get $11 i32.add - local.get $7 + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 - local.get $5 - local.set $7 - local.get $1 - local.set $4 + local.get $6 + local.set $1 + local.get $7 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 @@ -30386,7 +31092,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $11 @@ -30399,10 +31105,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end @@ -30415,14 +31121,16 @@ local.get $0 i32.const 255 i32.and - local.tee $0 local.get $1 i32.const 255 i32.and - local.tee $1 i32.gt_u local.get $0 + i32.const 255 + i32.and local.get $1 + i32.const 255 + i32.and i32.lt_u i32.sub ) @@ -30430,15 +31138,17 @@ local.get $1 i32.const 255 i32.and - local.tee $1 local.get $0 i32.const 255 i32.and - local.tee $0 i32.gt_u - local.get $0 local.get $1 - i32.gt_u + i32.const 255 + i32.and + local.get $0 + i32.const 255 + i32.and + i32.lt_u i32.sub ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) @@ -30471,16 +31181,19 @@ local.get $7 i32.ge_s if - local.get $0 local.get $7 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $3 i32.load16_s offset=2 local.tee $6 local.set $5 - local.get $3 + local.get $7 + i32.const 1 + i32.shl + local.get $0 + i32.add i32.load16_s local.set $3 i32.const 2 @@ -30639,14 +31352,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $5 i32.load16_s offset=2 - local.get $5 + local.get $4 + i32.const 1 + i32.shl + local.get $0 + i32.add i32.load16_s i32.const 2 global.set $~argumentsLength @@ -30673,29 +31389,35 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $3 i32.load16_s - local.set $6 - local.get $3 + local.set $3 + local.get $1 + i32.const 1 + i32.shl local.get $0 + i32.add local.get $2 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $5 i32.load16_s i32.store16 local.get $1 i32.const 1 i32.add local.set $1 - local.get $5 - local.get $6 + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 i32.store16 local.get $2 i32.const 1 @@ -30710,14 +31432,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $1 i32.load16_s offset=2 - local.get $1 + local.get $4 + i32.const 1 + i32.shl + local.get $0 + i32.add i32.load16_s i32.const 2 global.set $~argumentsLength @@ -30748,58 +31473,64 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 1 i32.shl - local.tee $8 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl local.get $0 - local.get $8 i32.add i32.load16_s i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $7 - local.get $6 + local.get $2 i32.sub i32.const 1 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.load16_s offset=2 i32.store16 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -30808,24 +31539,24 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 1 i32.shl local.get $4 i32.add i32.load16_s - local.set $8 - local.get $2 + local.set $7 + local.get $6 i32.const 1 i32.shl local.get $4 i32.add i32.load16_s - local.set $7 + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $7 + local.get $8 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -30837,24 +31568,24 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store16 - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 1 i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store16 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -30889,11 +31620,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -30901,87 +31631,87 @@ end local.get $0 i32.load16_s - local.set $3 + local.set $1 local.get $0 i32.load16_s offset=2 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $4 select i32.store16 - local.get $3 - local.get $4 - local.get $1 - select - local.set $3 local.get $0 i32.load16_s offset=4 - local.set $4 + local.set $5 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 + local.get $1 local.get $3 local.get $4 + select + local.tee $1 + local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $3 + local.get $0 + local.get $5 + local.get $1 + local.get $3 select i32.store16 offset=2 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $5 + local.get $3 select i32.store16 offset=4 end local.get $0 i32.load16_s - local.set $3 + local.set $1 local.get $0 i32.load16_s offset=2 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $2 select i32.store16 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $3 + local.get $2 select i32.store16 offset=2 return end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -30996,39 +31726,59 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $10 - local.get $5 + local.get $4 i32.add local.set $11 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end local.get $1 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -31038,10 +31788,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if @@ -31053,51 +31803,51 @@ i32.const 31 i32.lt_s select - local.tee $7 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $1 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 + local.get $4 local.get $9 - local.get $6 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 + local.tee $6 + local.get $6 local.get $9 i32.gt_s select - local.tee $5 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 @@ -31108,7 +31858,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -31121,36 +31871,34 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $7 + local.get $1 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -31159,42 +31907,42 @@ i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $10 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $10 i32.add local.get $3 i32.store - local.get $4 + local.get $5 local.get $11 i32.add - local.get $7 + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 - local.get $5 - local.set $7 - local.get $1 - local.set $4 + local.get $6 + local.set $1 + local.get $7 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 @@ -31206,7 +31954,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $11 @@ -31219,10 +31967,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end @@ -31241,14 +31989,14 @@ (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $1 i32.extend16_s - local.tee $1 local.get $0 i32.extend16_s - local.tee $0 i32.gt_s - local.get $0 local.get $1 - i32.gt_s + i32.extend16_s + local.get $0 + i32.extend16_s + i32.lt_s i32.sub ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) @@ -31281,16 +32029,19 @@ local.get $7 i32.ge_s if - local.get $0 local.get $7 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $3 i32.load16_u offset=2 local.tee $6 local.set $5 - local.get $3 + local.get $7 + i32.const 1 + i32.shl + local.get $0 + i32.add i32.load16_u local.set $3 i32.const 2 @@ -31449,14 +32200,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $5 i32.load16_u offset=2 - local.get $5 + local.get $4 + i32.const 1 + i32.shl + local.get $0 + i32.add i32.load16_u i32.const 2 global.set $~argumentsLength @@ -31483,29 +32237,35 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $3 i32.load16_u - local.set $6 - local.get $3 + local.set $3 + local.get $1 + i32.const 1 + i32.shl local.get $0 + i32.add local.get $2 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $5 i32.load16_u i32.store16 local.get $1 i32.const 1 i32.add local.set $1 - local.get $5 - local.get $6 + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 i32.store16 local.get $2 i32.const 1 @@ -31520,14 +32280,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add - local.tee $1 i32.load16_u offset=2 - local.get $1 + local.get $4 + i32.const 1 + i32.shl + local.get $0 + i32.add i32.load16_u i32.const 2 global.set $~argumentsLength @@ -31558,58 +32321,64 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 1 i32.shl - local.tee $8 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl local.get $0 - local.get $8 i32.add i32.load16_u i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $7 - local.get $6 + local.get $2 i32.sub i32.const 1 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.load16_u offset=2 i32.store16 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -31618,24 +32387,24 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 1 i32.shl local.get $4 i32.add i32.load16_u - local.set $8 - local.get $2 + local.set $7 + local.get $6 i32.const 1 i32.shl local.get $4 i32.add i32.load16_u - local.set $7 + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $7 + local.get $8 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -31647,24 +32416,24 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store16 - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 1 i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store16 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -31699,11 +32468,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -31711,87 +32479,87 @@ end local.get $0 i32.load16_u - local.set $3 + local.set $1 local.get $0 i32.load16_u offset=2 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $4 select i32.store16 - local.get $3 - local.get $4 - local.get $1 - select - local.set $3 local.get $0 i32.load16_u offset=4 - local.set $4 + local.set $5 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 + local.get $1 local.get $3 local.get $4 + select + local.tee $1 + local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $3 + local.get $0 + local.get $5 + local.get $1 + local.get $3 select i32.store16 offset=2 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $5 + local.get $3 select i32.store16 offset=4 end local.get $0 i32.load16_u - local.set $3 + local.set $1 local.get $0 i32.load16_u offset=2 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $2 select i32.store16 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $3 + local.get $2 select i32.store16 offset=2 return end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -31806,39 +32574,59 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $10 - local.get $5 + local.get $4 i32.add local.set $11 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end local.get $1 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -31848,10 +32636,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if @@ -31863,51 +32651,51 @@ i32.const 31 i32.lt_s select - local.tee $7 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $1 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 + local.get $4 local.get $9 - local.get $6 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 + local.tee $6 + local.get $6 local.get $9 i32.gt_s select - local.tee $5 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 @@ -31918,7 +32706,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -31931,36 +32719,34 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $7 + local.get $1 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -31969,42 +32755,42 @@ i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $10 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $10 i32.add local.get $3 i32.store - local.get $4 + local.get $5 local.get $11 i32.add - local.get $7 + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 - local.get $5 - local.set $7 - local.get $1 - local.set $4 + local.get $6 + local.set $1 + local.get $7 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 @@ -32016,7 +32802,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $11 @@ -32029,10 +32815,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end @@ -32045,14 +32831,16 @@ local.get $0 i32.const 65535 i32.and - local.tee $0 local.get $1 i32.const 65535 i32.and - local.tee $1 i32.gt_u local.get $0 + i32.const 65535 + i32.and local.get $1 + i32.const 65535 + i32.and i32.lt_u i32.sub ) @@ -32060,15 +32848,17 @@ local.get $1 i32.const 65535 i32.and - local.tee $1 local.get $0 i32.const 65535 i32.and - local.tee $0 i32.gt_u - local.get $0 local.get $1 - i32.gt_u + i32.const 65535 + i32.and + local.get $0 + i32.const 65535 + i32.and + i32.lt_u i32.sub ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) @@ -32101,16 +32891,19 @@ local.get $7 i32.ge_s if - local.get $0 local.get $7 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 i32.load offset=4 local.tee $6 local.set $5 - local.get $3 + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load local.set $3 i32.const 2 @@ -32269,14 +33062,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $5 i32.load offset=4 - local.get $5 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load i32.const 2 global.set $~argumentsLength @@ -32303,29 +33099,35 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $1 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $2 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $5 - local.get $6 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 i32.store local.get $2 i32.const 1 @@ -32340,14 +33142,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 - local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load i32.const 2 global.set $~argumentsLength @@ -32378,58 +33183,64 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 2 i32.shl - local.tee $8 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl local.get $0 - local.get $8 i32.add i32.load i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $7 - local.get $6 + local.get $2 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -32438,24 +33249,24 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 - local.get $2 + local.set $7 + local.get $6 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $7 + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $7 + local.get $8 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -32467,24 +33278,24 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 2 i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -32519,11 +33330,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -32531,87 +33341,87 @@ end local.get $0 i32.load - local.set $3 + local.set $1 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $4 select i32.store - local.get $3 - local.get $4 - local.get $1 - select - local.set $3 local.get $0 i32.load offset=8 - local.set $4 + local.set $5 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 + local.get $1 local.get $3 local.get $4 + select + local.tee $1 + local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $3 + local.get $0 + local.get $5 + local.get $1 + local.get $3 select i32.store offset=4 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $5 + local.get $3 select i32.store offset=8 end local.get $0 i32.load - local.set $3 + local.set $1 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $2 select i32.store local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $3 + local.get $2 select i32.store offset=4 return end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -32626,39 +33436,59 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $10 - local.get $5 + local.get $4 i32.add local.set $11 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -32668,10 +33498,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if @@ -32683,51 +33513,51 @@ i32.const 31 i32.lt_s select - local.tee $7 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $1 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 + local.get $4 local.get $9 - local.get $6 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 + local.tee $6 + local.get $6 local.get $9 i32.gt_s select - local.tee $5 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 @@ -32738,7 +33568,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -32751,36 +33581,34 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $7 + local.get $1 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -32789,42 +33617,42 @@ i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $10 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $10 i32.add local.get $3 i32.store - local.get $4 + local.get $5 local.get $11 i32.add - local.get $7 + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 - local.get $5 - local.set $7 - local.get $1 - local.set $4 + local.get $6 + local.set $1 + local.get $7 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 @@ -32836,7 +33664,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $11 @@ -32849,10 +33677,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end @@ -32905,16 +33733,19 @@ local.get $7 i32.ge_s if - local.get $0 local.get $7 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 i32.load offset=4 local.tee $6 local.set $5 - local.get $3 + local.get $7 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load local.set $3 i32.const 2 @@ -33073,14 +33904,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $5 i32.load offset=4 - local.get $5 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load i32.const 2 global.set $~argumentsLength @@ -33107,29 +33941,35 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 i32.load - local.set $6 - local.get $3 + local.set $3 + local.get $1 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $2 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $5 - local.get $6 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add + local.get $3 i32.store local.get $2 i32.const 1 @@ -33144,14 +33984,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 - local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add i32.load i32.const 2 global.set $~argumentsLength @@ -33182,58 +34025,64 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 2 i32.shl - local.tee $8 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl local.get $0 - local.get $8 i32.add i32.load i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $7 - local.get $6 + local.get $2 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -33242,24 +34091,24 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 - local.get $2 + local.set $7 + local.get $6 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $7 + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $7 + local.get $8 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -33271,24 +34120,24 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 2 i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -33323,11 +34172,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -33335,87 +34183,87 @@ end local.get $0 i32.load - local.set $3 + local.set $1 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $4 select i32.store - local.get $3 - local.get $4 - local.get $1 - select - local.set $3 local.get $0 i32.load offset=8 - local.set $4 + local.set $5 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $3 + local.get $1 local.get $3 local.get $4 + select + local.tee $1 + local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $3 + local.get $0 + local.get $5 + local.get $1 + local.get $3 select i32.store offset=4 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $5 + local.get $3 select i32.store offset=8 end local.get $0 i32.load - local.set $3 + local.set $1 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $4 local.get $3 + local.get $1 + local.get $1 local.get $3 - local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $2 select i32.store local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $3 + local.get $2 select i32.store offset=4 return end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -33430,39 +34278,59 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $10 - local.get $5 + local.get $4 i32.add local.set $11 i32.const 0 - local.set $5 + local.set $4 loop $for-loop|1 - local.get $5 + local.get $4 local.get $6 i32.lt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -33472,10 +34340,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if @@ -33487,51 +34355,51 @@ i32.const 31 i32.lt_s select - local.tee $7 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $1 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $1 i32.const 1 i32.add - local.tee $6 + local.tee $4 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 + local.get $4 local.get $9 - local.get $6 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 + local.tee $6 + local.get $6 local.get $9 i32.gt_s select - local.tee $5 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 @@ -33542,7 +34410,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $5 + local.get $4 local.get $6 i32.add i32.const 1 @@ -33555,36 +34423,34 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $7 + local.get $1 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -33593,42 +34459,42 @@ i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $10 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $10 i32.add local.get $3 i32.store - local.get $4 + local.get $5 local.get $11 i32.add - local.get $7 + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 - local.get $5 - local.set $7 - local.get $1 - local.set $4 + local.get $6 + local.set $1 + local.get $7 + local.set $5 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 @@ -33640,7 +34506,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $11 @@ -33653,10 +34519,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end @@ -33713,16 +34579,19 @@ local.get $8 i32.ge_s if - local.get $0 local.get $8 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $3 i64.load offset=8 local.tee $7 local.set $6 - local.get $3 + local.get $8 + i32.const 3 + i32.shl + local.get $0 + i32.add i64.load local.set $5 i32.const 2 @@ -33846,7 +34715,6 @@ (local $4 i32) (local $5 i64) (local $6 i64) - (local $7 i32) local.get $1 local.get $2 i32.eq @@ -33882,14 +34750,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $7 i64.load offset=8 - local.get $7 + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add i64.load i32.const 2 global.set $~argumentsLength @@ -33916,28 +34787,34 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $3 i64.load local.set $5 - local.get $3 + local.get $1 + i32.const 3 + i32.shl local.get $0 + i32.add local.get $2 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $7 i64.load i64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $7 + local.get $2 + i32.const 3 + i32.shl + local.get $0 + i32.add local.get $5 i64.store local.get $2 @@ -33953,14 +34830,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $1 i64.load offset=8 - local.get $1 + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add i64.load i32.const 2 global.set $~argumentsLength @@ -33988,63 +34868,68 @@ (local $7 i64) (local $8 i64) (local $9 i32) - (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $9 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 3 i32.shl - local.tee $10 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl local.get $0 - local.get $10 i32.add i64.load i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $9 - local.get $6 + local.get $2 i32.sub i32.const 3 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $0 i32.add i64.load offset=8 i64.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -34053,14 +34938,14 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $4 i32.add i64.load local.set $7 - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $4 @@ -34084,10 +34969,10 @@ i32.add local.get $7 i64.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 3 @@ -34096,10 +34981,10 @@ i32.add local.get $8 i64.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -34116,12 +35001,13 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) - (local $11 i32) + (local $11 i64) (local $12 i32) (local $13 i64) - (local $14 i64) + (local $14 i32) + (local $15 i32) local.get $1 i32.const 48 i32.le_s @@ -34135,11 +35021,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -34147,17 +35032,17 @@ end local.get $0 i64.load - local.set $13 + local.set $9 local.get $0 i64.load offset=8 - local.set $14 + local.set $11 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $13 - local.get $13 - local.get $14 + local.get $11 + local.get $9 + local.get $9 + local.get $11 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -34166,49 +35051,49 @@ local.tee $1 select i64.store - local.get $13 - local.get $14 - local.get $1 - select - local.set $13 local.get $0 i64.load offset=16 - local.set $14 + local.set $13 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $14 - local.get $13 + local.get $9 + local.get $11 + local.get $1 + select + local.tee $9 local.get $13 - local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $1 + local.get $0 + local.get $13 + local.get $9 + local.get $1 select i64.store offset=8 local.get $0 + local.get $9 local.get $13 - local.get $14 local.get $1 select i64.store offset=16 end local.get $0 i64.load - local.set $13 + local.set $9 local.get $0 i64.load offset=8 - local.set $14 + local.set $11 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $13 - local.get $13 - local.get $14 + local.get $11 + local.get $9 + local.get $9 + local.get $11 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -34218,8 +35103,8 @@ select i64.store local.get $0 - local.get $13 - local.get $14 + local.get $9 + local.get $11 local.get $1 select i64.store offset=8 @@ -34227,7 +35112,7 @@ end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -34242,208 +35127,226 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $11 + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 i32.add - local.set $10 + local.tee $12 + local.get $4 + i32.add + local.set $14 i32.const 0 - local.set $7 + local.set $4 loop $for-loop|1 + local.get $4 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $4 i32.const 2 i32.shl - local.get $11 + local.get $12 i32.add i32.const -1 i32.store - local.get $7 + local.get $4 i32.const 1 i32.add - local.set $7 + local.set $4 br $for-loop|1 end end local.get $1 i32.const 3 i32.shl - call $~lib/rt/tlsf/__alloc - local.set $9 + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $15 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $12 + local.tee $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $12 + local.get $10 i32.const 31 - local.get $12 + local.get $10 i32.const 31 i32.lt_s select - local.tee $5 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $12 + local.get $1 + local.get $10 i32.lt_s if local.get $0 - local.get $5 + local.get $1 i32.const 1 i32.add - local.tee $6 - local.get $12 + local.tee $4 + local.get $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 - local.get $12 - local.get $6 + local.get $4 + local.get $10 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 - local.get $12 + local.tee $6 + local.get $6 + local.get $10 i32.gt_s select - local.tee $7 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $10 i32.const 1 i32.add i64.extend_i32_u - local.tee $14 + local.tee $9 i64.div_u + local.get $4 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $14 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl - local.get $11 + local.get $12 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $10 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $14 i32.add i32.load i32.const 1 i32.add - local.get $5 - local.get $9 + local.get $1 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $11 + local.get $12 i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $11 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $12 i32.add local.get $3 i32.store - local.get $4 - local.get $10 - i32.add local.get $5 + local.get $14 + i32.add + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 + local.get $6 + local.set $1 local.get $7 local.set $5 - local.get $1 - local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl - local.get $11 + local.get $12 i32.add i32.load local.tee $1 @@ -34452,29 +35355,29 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl - local.get $10 + local.get $14 i32.add i32.load i32.const 1 i32.add - local.get $12 - local.get $9 + local.get $10 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end - local.get $9 + local.get $15 call $~lib/rt/tlsf/__free - local.get $11 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) @@ -34525,16 +35428,19 @@ local.get $8 i32.ge_s if - local.get $0 local.get $8 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $3 i64.load offset=8 local.tee $7 local.set $6 - local.get $3 + local.get $8 + i32.const 3 + i32.shl + local.get $0 + i32.add i64.load local.set $5 i32.const 2 @@ -34658,7 +35564,6 @@ (local $4 i32) (local $5 i64) (local $6 i64) - (local $7 i32) local.get $1 local.get $2 i32.eq @@ -34694,14 +35599,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $7 i64.load offset=8 - local.get $7 + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add i64.load i32.const 2 global.set $~argumentsLength @@ -34728,28 +35636,34 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $3 i64.load local.set $5 - local.get $3 + local.get $1 + i32.const 3 + i32.shl local.get $0 + i32.add local.get $2 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $7 i64.load i64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $7 + local.get $2 + i32.const 3 + i32.shl + local.get $0 + i32.add local.get $5 i64.store local.get $2 @@ -34765,14 +35679,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 3 i32.shl + local.get $0 i32.add - local.tee $1 i64.load offset=8 - local.get $1 + local.get $4 + i32.const 3 + i32.shl + local.get $0 + i32.add i64.load i32.const 2 global.set $~argumentsLength @@ -34800,63 +35717,68 @@ (local $7 i64) (local $8 i64) (local $9 i32) - (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $9 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 3 i32.shl - local.tee $10 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl local.get $0 - local.get $10 i32.add i64.load i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $9 - local.get $6 + local.get $2 i32.sub i32.const 3 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $0 i32.add i64.load offset=8 i64.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -34865,14 +35787,14 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $4 i32.add i64.load local.set $7 - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $4 @@ -34896,10 +35818,10 @@ i32.add local.get $7 i64.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 3 @@ -34908,10 +35830,10 @@ i32.add local.get $8 i64.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -34928,12 +35850,13 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) - (local $11 i32) + (local $11 i64) (local $12 i32) (local $13 i64) - (local $14 i64) + (local $14 i32) + (local $15 i32) local.get $1 i32.const 48 i32.le_s @@ -34947,11 +35870,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -34959,17 +35881,17 @@ end local.get $0 i64.load - local.set $13 + local.set $9 local.get $0 i64.load offset=8 - local.set $14 + local.set $11 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $13 - local.get $13 - local.get $14 + local.get $11 + local.get $9 + local.get $9 + local.get $11 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -34978,49 +35900,49 @@ local.tee $1 select i64.store - local.get $13 - local.get $14 - local.get $1 - select - local.set $13 local.get $0 i64.load offset=16 - local.set $14 + local.set $13 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $14 - local.get $13 + local.get $9 + local.get $11 + local.get $1 + select + local.tee $9 local.get $13 - local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $1 + local.get $0 + local.get $13 + local.get $9 + local.get $1 select i64.store offset=8 local.get $0 + local.get $9 local.get $13 - local.get $14 local.get $1 select i64.store offset=16 end local.get $0 i64.load - local.set $13 + local.set $9 local.get $0 i64.load offset=8 - local.set $14 + local.set $11 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $14 - local.get $13 - local.get $13 - local.get $14 + local.get $11 + local.get $9 + local.get $9 + local.get $11 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -35030,8 +35952,8 @@ select i64.store local.get $0 - local.get $13 - local.get $14 + local.get $9 + local.get $11 local.get $1 select i64.store offset=8 @@ -35039,7 +35961,7 @@ end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -35054,208 +35976,226 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $4 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $11 + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 i32.add - local.set $10 + local.tee $12 + local.get $4 + i32.add + local.set $14 i32.const 0 - local.set $7 + local.set $4 loop $for-loop|1 + local.get $4 local.get $6 - local.get $7 - i32.gt_u + i32.lt_u if - local.get $7 + local.get $4 i32.const 2 i32.shl - local.get $11 + local.get $12 i32.add i32.const -1 i32.store - local.get $7 + local.get $4 i32.const 1 i32.add - local.set $7 + local.set $4 br $for-loop|1 end end local.get $1 i32.const 3 i32.shl - call $~lib/rt/tlsf/__alloc - local.set $9 + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $15 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $12 + local.tee $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $4 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $12 + local.get $10 i32.const 31 - local.get $12 + local.get $10 i32.const 31 i32.lt_s select - local.tee $5 - local.get $1 + local.tee $1 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $12 + local.get $1 + local.get $10 i32.lt_s if local.get $0 - local.get $5 + local.get $1 i32.const 1 i32.add - local.tee $6 - local.get $12 + local.tee $4 + local.get $10 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 - local.get $6 + local.tee $6 + local.get $4 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $6 - local.get $12 - local.get $6 + local.get $4 + local.get $10 + local.get $4 i32.const 31 i32.add - local.tee $1 - local.get $1 - local.get $12 + local.tee $6 + local.get $6 + local.get $10 i32.gt_s select - local.tee $7 - local.get $8 + local.tee $6 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $4 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $10 i32.const 1 i32.add i64.extend_i32_u - local.tee $14 + local.tee $9 i64.div_u + local.get $4 local.get $6 - local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $14 + local.get $9 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $5 + local.get $7 + i32.gt_u if - local.get $8 + local.get $5 i32.const 2 i32.shl - local.get $11 + local.get $12 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $10 local.get $8 + local.get $5 i32.const 2 i32.shl local.tee $3 + local.get $14 i32.add i32.load i32.const 1 i32.add - local.get $5 - local.get $9 + local.get $1 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $11 + local.get $12 i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $5 i32.const 1 i32.sub - local.set $8 + local.set $5 br $for-loop|3 end end - local.get $11 - local.get $1 + local.get $7 i32.const 2 i32.shl - local.tee $4 + local.tee $5 + local.get $12 i32.add local.get $3 i32.store - local.get $4 - local.get $10 - i32.add local.get $5 + local.get $14 + i32.add + local.get $1 i32.store - local.get $6 + local.get $4 local.set $3 + local.get $6 + local.set $1 local.get $7 local.set $5 - local.get $1 - local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 i32.const 2 i32.shl - local.get $11 + local.get $12 i32.add i32.load local.tee $1 @@ -35264,29 +36204,29 @@ if local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 2 i32.shl - local.get $10 + local.get $14 i32.add i32.load i32.const 1 i32.add - local.get $12 - local.get $9 + local.get $10 + local.get $15 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $for-loop|4 end end - local.get $9 + local.get $15 call $~lib/rt/tlsf/__free - local.get $11 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) @@ -35337,16 +36277,19 @@ local.get $8 i32.ge_s if - local.get $0 local.get $8 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 f32.load offset=4 local.tee $7 local.set $6 - local.get $3 + local.get $8 + i32.const 2 + i32.shl + local.get $0 + i32.add f32.load local.set $5 i32.const 2 @@ -35470,7 +36413,6 @@ (local $4 i32) (local $5 f32) (local $6 f32) - (local $7 i32) local.get $1 local.get $2 i32.eq @@ -35506,14 +36448,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $7 f32.load offset=4 - local.get $7 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add f32.load i32.const 2 global.set $~argumentsLength @@ -35540,28 +36485,34 @@ local.get $2 i32.lt_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $3 f32.load local.set $5 - local.get $3 + local.get $1 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $2 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $7 f32.load f32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $7 + local.get $2 + i32.const 2 + i32.shl + local.get $0 + i32.add local.get $5 f32.store local.get $2 @@ -35577,14 +36528,17 @@ local.get $4 i32.gt_s if (result i32) - local.get $0 local.get $4 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 f32.load offset=4 - local.get $1 + local.get $4 + i32.const 2 + i32.shl + local.get $0 + i32.add f32.load i32.const 2 global.set $~argumentsLength @@ -35612,63 +36566,68 @@ (local $7 f32) (local $8 f32) (local $9 i32) - (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.add local.set $9 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $2 + local.set $6 loop $for-loop|0 local.get $1 - local.get $2 + local.get $6 i32.lt_s if - local.get $4 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.tee $2 i32.const 2 i32.shl - local.tee $10 + local.get $4 i32.add + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl local.get $0 - local.get $10 i32.add f32.load f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 br $for-loop|0 end end loop $for-loop|1 + local.get $2 local.get $3 - local.get $6 - i32.gt_s + i32.lt_s if local.get $9 - local.get $6 + local.get $2 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $0 i32.add f32.load offset=4 f32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 br $for-loop|1 end end @@ -35677,14 +36636,14 @@ local.get $3 i32.le_s if - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 i32.add f32.load local.set $7 - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 @@ -35708,10 +36667,10 @@ i32.add local.get $7 f32.store - local.get $6 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 else local.get $1 i32.const 2 @@ -35720,10 +36679,10 @@ i32.add local.get $8 f32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 end local.get $1 i32.const 1 @@ -35743,10 +36702,11 @@ (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 i32) + (local $12 f32) (local $13 i32) (local $14 f32) - (local $15 f32) + (local $15 i32) + (local $16 f32) local.get $1 i32.const 48 i32.le_s @@ -35760,11 +36720,10 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 @@ -35772,7 +36731,7 @@ end local.get $0 f32.load - local.set $15 + local.set $16 local.get $0 f32.load offset=4 local.set $14 @@ -35780,8 +36739,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $15 - local.get $15 + local.get $16 + local.get $16 local.get $14 local.get $2 i32.load @@ -35791,39 +36750,39 @@ local.tee $1 select f32.store - local.get $15 - local.get $14 - local.get $1 - select - local.set $15 local.get $0 f32.load offset=8 - local.set $14 + local.set $12 i32.const 2 global.set $~argumentsLength - local.get $0 - local.get $14 - local.get $15 - local.get $15 + local.get $16 local.get $14 + local.get $1 + select + local.tee $16 + local.get $12 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.set $1 + local.get $0 + local.get $12 + local.get $16 + local.get $1 select f32.store offset=4 local.get $0 - local.get $15 - local.get $14 + local.get $16 + local.get $12 local.get $1 select f32.store offset=8 end local.get $0 f32.load - local.set $15 + local.set $16 local.get $0 f32.load offset=4 local.set $14 @@ -35831,8 +36790,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $15 - local.get $15 + local.get $16 + local.get $16 local.get $14 local.get $2 i32.load @@ -35843,7 +36802,7 @@ select f32.store local.get $0 - local.get $15 + local.get $16 local.get $14 local.get $1 select @@ -35852,7 +36811,7 @@ end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -35864,28 +36823,38 @@ local.get $1 i32.clz i32.sub - local.tee $6 + local.tee $5 i32.const 2 i32.shl local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $12 + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 local.get $7 i32.add local.set $11 i32.const 0 local.set $7 loop $for-loop|1 - local.get $6 + local.get $5 local.get $7 i32.gt_u if local.get $7 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.const -1 i32.store @@ -35899,87 +36868,97 @@ local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $13 + local.tee $15 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $13 + local.get $15 i32.const 31 - local.get $13 + local.get $15 i32.const 31 i32.lt_s select - local.tee $5 - local.get $1 + local.tee $1 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 - local.get $13 + local.get $1 + local.get $15 i32.lt_s if local.get $0 - local.get $5 + local.get $1 i32.const 1 i32.add - local.tee $6 - local.get $13 + local.tee $7 + local.get $15 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 - local.get $6 + local.tee $5 + local.get $7 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $4 i32.const 32 i32.lt_s if local.get $0 - local.get $6 - local.get $13 - local.get $6 + local.get $7 + local.get $15 + local.get $7 i32.const 31 i32.add - local.tee $1 - local.get $1 - local.get $13 + local.tee $5 + local.get $5 + local.get $15 i32.gt_s select - local.tee $7 - local.get $8 + local.tee $5 + local.get $4 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $15 i32.const 1 i32.add i64.extend_i32_u local.tee $9 i64.div_u - local.get $6 + local.get $5 local.get $7 i32.add i32.const 1 @@ -35992,83 +36971,81 @@ i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $4 loop $for-loop|3 - local.get $1 - local.get $8 + local.get $4 + local.get $6 i32.lt_u if - local.get $8 + local.get $6 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.load - local.tee $4 + local.tee $8 i32.const -1 i32.ne if local.get $0 - local.get $4 - local.get $11 local.get $8 + local.get $6 i32.const 2 i32.shl local.tee $3 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $5 + local.get $1 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $13 i32.add i32.const -1 i32.store - local.get $4 + local.get $8 local.set $3 end - local.get $8 + local.get $6 i32.const 1 i32.sub - local.set $8 + local.set $6 br $for-loop|3 end end - local.get $12 - local.get $1 + local.get $4 i32.const 2 i32.shl - local.tee $4 + local.tee $6 + local.get $13 i32.add local.get $3 i32.store - local.get $4 + local.get $6 local.get $11 i32.add - local.get $5 + local.get $1 i32.store - local.get $6 - local.set $3 local.get $7 - local.set $5 - local.get $1 - local.set $4 + local.set $3 + local.get $5 + local.set $1 + local.get $4 + local.set $6 br $while-continue|2 end end loop $for-loop|4 - local.get $4 + local.get $6 if - local.get $4 + local.get $6 i32.const 2 i32.shl - local.get $12 + local.get $13 i32.add i32.load local.tee $1 @@ -36077,7 +37054,7 @@ if local.get $0 local.get $1 - local.get $4 + local.get $6 i32.const 2 i32.shl local.get $11 @@ -36085,21 +37062,21 @@ i32.load i32.const 1 i32.add - local.get $13 + local.get $15 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $4 + local.get $6 i32.const 1 i32.sub - local.set $4 + local.set $6 br $for-loop|4 end end local.get $10 call $~lib/rt/tlsf/__free - local.get $12 + local.get $13 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) @@ -36199,6 +37176,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -36209,42 +37187,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 3952 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36256,9 +37234,9 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 - local.set $6 + local.set $5 local.get $1 i32.const 12 i32.const 3 @@ -36266,76 +37244,76 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $3 + local.set $9 loop $for-loop|0 - local.get $6 - local.get $8 - i32.gt_s + local.get $4 + local.get $5 + i32.lt_s if - local.get $3 - local.get $8 + local.get $4 + local.get $9 i32.add i32.load8_s - local.set $4 + local.set $7 i32.const 3 global.set $~argumentsLength + local.get $7 local.get $4 - local.get $8 - local.get $2 + local.get $0 i32.const 3952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $0 - local.get $5 - i32.add - local.get $4 - i32.store8 - local.get $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $2 + local.get $3 + local.get $6 + i32.add + local.get $7 + i32.store8 end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $5 - local.get $0 + local.get $6 + local.get $2 call $~lib/rt/itcms/__renew - local.tee $2 + local.tee $0 i32.store local.get $1 - local.get $2 + local.get $0 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -36346,7 +37324,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.ne @@ -36358,7 +37336,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -36371,7 +37349,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -36384,7 +37362,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 5 @@ -36420,6 +37398,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -36430,42 +37409,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 3984 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36477,9 +37456,9 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 - local.set $6 + local.set $5 local.get $1 i32.const 12 i32.const 4 @@ -36487,76 +37466,76 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $3 + local.set $9 loop $for-loop|0 - local.get $6 - local.get $8 - i32.gt_s + local.get $4 + local.get $5 + i32.lt_s if - local.get $3 - local.get $8 + local.get $4 + local.get $9 i32.add i32.load8_u - local.set $4 + local.set $7 i32.const 3 global.set $~argumentsLength + local.get $7 local.get $4 - local.get $8 - local.get $2 + local.get $0 i32.const 3984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $0 - local.get $5 - i32.add - local.get $4 - i32.store8 - local.get $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $2 + local.get $3 + local.get $6 + i32.add + local.get $7 + i32.store8 end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $5 - local.get $0 + local.get $6 + local.get $2 call $~lib/rt/itcms/__renew - local.tee $2 + local.tee $0 i32.store local.get $1 - local.get $2 + local.get $0 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -36567,7 +37546,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.ne @@ -36579,7 +37558,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 3 @@ -36592,7 +37571,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 @@ -36605,7 +37584,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 5 @@ -36641,6 +37620,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -36651,42 +37631,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.tee $7 i32.const 4016 i32.store offset=4 - local.get $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36698,9 +37678,9 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 - local.set $6 + local.set $5 local.get $1 i32.const 12 i32.const 5 @@ -36708,76 +37688,76 @@ local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $3 + local.set $9 loop $for-loop|0 - local.get $6 - local.get $8 - i32.gt_s + local.get $4 + local.get $5 + i32.lt_s if - local.get $3 - local.get $8 + local.get $4 + local.get $9 i32.add i32.load8_u - local.set $4 + local.set $7 i32.const 3 global.set $~argumentsLength + local.get $7 local.get $4 - local.get $8 - local.get $2 + local.get $0 i32.const 4016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $0 - local.get $5 - i32.add - local.get $4 - i32.store8 - local.get $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $2 + local.get $3 + local.get $6 + i32.add + local.get $7 + i32.store8 end - local.get $8 + local.get $4 i32.const 1 i32.add - local.set $8 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $5 - local.get $0 + local.get $6 + local.get $2 call $~lib/rt/itcms/__renew - local.tee $2 + local.tee $0 i32.store local.get $1 - local.get $2 + local.get $0 call $~lib/rt/itcms/__link local.get $1 - local.get $0 + local.get $2 i32.store offset=8 local.get $1 - local.get $2 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -36788,7 +37768,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.ne @@ -36800,7 +37780,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 @@ -36813,7 +37793,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 @@ -36826,7 +37806,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 5 @@ -36862,6 +37842,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -36872,42 +37853,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 4048 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -36919,7 +37900,7 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u @@ -36936,80 +37917,80 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 + local.get $4 local.get $5 - local.get $7 - i32.gt_s + i32.lt_s if - local.get $8 - local.get $7 + local.get $4 i32.const 1 i32.shl + local.get $9 i32.add i32.load16_s - local.set $3 + local.set $7 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 4048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $4 - local.get $0 + local.get $2 + local.tee $3 i32.const 1 - i32.shl i32.add + local.set $2 local.get $3 - i32.store16 - local.get $0 i32.const 1 + i32.shl + local.get $6 i32.add - local.set $0 + local.get $7 + i32.store16 end - local.get $7 + local.get $4 i32.const 1 i32.add - local.set $7 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $4 - local.get $0 + local.get $6 + local.get $2 i32.const 1 i32.shl local.tee $2 call $~lib/rt/itcms/__renew - local.tee $8 + local.tee $0 i32.store local.get $1 - local.get $8 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -37020,7 +38001,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u @@ -37034,7 +38015,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 3 @@ -37047,7 +38028,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 @@ -37060,7 +38041,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 5 @@ -37096,6 +38077,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37106,42 +38088,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Uint16Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 4080 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37153,7 +38135,7 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u @@ -37170,80 +38152,80 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 + local.get $4 local.get $5 - local.get $7 - i32.gt_s + i32.lt_s if - local.get $8 - local.get $7 + local.get $4 i32.const 1 i32.shl + local.get $9 i32.add i32.load16_u - local.set $3 + local.set $7 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 4080 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $4 - local.get $0 + local.get $2 + local.tee $3 i32.const 1 - i32.shl i32.add + local.set $2 local.get $3 - i32.store16 - local.get $0 i32.const 1 + i32.shl + local.get $6 i32.add - local.set $0 + local.get $7 + i32.store16 end - local.get $7 + local.get $4 i32.const 1 i32.add - local.set $7 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $4 - local.get $0 + local.get $6 + local.get $2 i32.const 1 i32.shl local.tee $2 call $~lib/rt/itcms/__renew - local.tee $8 + local.tee $0 i32.store local.get $1 - local.get $8 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -37254,7 +38236,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u @@ -37268,7 +38250,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 3 @@ -37281,7 +38263,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 @@ -37294,7 +38276,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 5 @@ -37330,6 +38312,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37340,42 +38323,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 4112 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37387,7 +38370,7 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -37404,80 +38387,80 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 + local.get $4 local.get $5 - local.get $7 - i32.gt_s + i32.lt_s if - local.get $8 - local.get $7 + local.get $4 i32.const 2 i32.shl + local.get $9 i32.add i32.load - local.set $3 + local.set $7 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 4112 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $4 - local.get $0 + local.get $2 + local.tee $3 + i32.const 1 + i32.add + local.set $2 + local.get $3 i32.const 2 i32.shl + local.get $6 i32.add - local.get $3 + local.get $7 i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $7 + local.get $4 i32.const 1 i32.add - local.set $7 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $4 - local.get $0 + local.get $6 + local.get $2 i32.const 2 i32.shl local.tee $2 call $~lib/rt/itcms/__renew - local.tee $8 + local.tee $0 i32.store local.get $1 - local.get $8 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -37488,7 +38471,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -37502,7 +38485,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -37515,7 +38498,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 @@ -37528,7 +38511,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 5 @@ -37564,6 +38547,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37574,42 +38558,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Uint32Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 4144 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37621,7 +38605,7 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -37638,80 +38622,80 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 + local.get $4 local.get $5 - local.get $7 - i32.gt_s + i32.lt_s if - local.get $8 - local.get $7 + local.get $4 i32.const 2 i32.shl + local.get $9 i32.add i32.load - local.set $3 + local.set $7 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 4144 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $4 - local.get $0 + local.get $2 + local.tee $3 + i32.const 1 + i32.add + local.set $2 + local.get $3 i32.const 2 i32.shl + local.get $6 i32.add - local.get $3 + local.get $7 i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $7 + local.get $4 i32.const 1 i32.add - local.set $7 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $4 - local.get $0 + local.get $6 + local.get $2 i32.const 2 i32.shl local.tee $2 call $~lib/rt/itcms/__renew - local.tee $8 + local.tee $0 i32.store local.get $1 - local.get $8 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -37722,7 +38706,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -37736,7 +38720,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 3 @@ -37749,7 +38733,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 @@ -37762,7 +38746,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 5 @@ -37792,12 +38776,13 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 i64) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -37808,42 +38793,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $0 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $0 i32.const 5 i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 4176 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -37855,7 +38840,7 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -37872,80 +38857,80 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 + local.get $4 local.get $5 - local.get $7 - i32.gt_s + i32.lt_s if - local.get $8 - local.get $7 + local.get $4 i32.const 3 i32.shl + local.get $9 i32.add i64.load - local.set $3 + local.set $7 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 4176 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if - local.get $4 - local.get $0 + local.get $2 + local.tee $3 + i32.const 1 + i32.add + local.set $2 + local.get $3 i32.const 3 i32.shl + local.get $6 i32.add - local.get $3 + local.get $7 i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $7 + local.get $4 i32.const 1 i32.add - local.set $7 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $4 - local.get $0 + local.get $6 + local.get $2 i32.const 3 i32.shl local.tee $2 call $~lib/rt/itcms/__renew - local.tee $8 + local.tee $0 i32.store local.get $1 - local.get $8 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -37956,7 +38941,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -37970,7 +38955,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 @@ -37983,7 +38968,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 @@ -37996,7 +38981,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 5 @@ -38026,12 +39011,13 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 i64) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -38042,42 +39028,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $0 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $0 i32.const 5 i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 4208 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38089,7 +39075,7 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -38106,80 +39092,80 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 + local.get $4 local.get $5 - local.get $7 - i32.gt_s + i32.lt_s if - local.get $8 - local.get $7 + local.get $4 i32.const 3 i32.shl + local.get $9 i32.add i64.load - local.set $3 + local.set $7 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 4208 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if - local.get $4 - local.get $0 + local.get $2 + local.tee $3 + i32.const 1 + i32.add + local.set $2 + local.get $3 i32.const 3 i32.shl + local.get $6 i32.add - local.get $3 + local.get $7 i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $7 + local.get $4 i32.const 1 i32.add - local.set $7 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $4 - local.get $0 + local.get $6 + local.get $2 i32.const 3 i32.shl local.tee $2 call $~lib/rt/itcms/__renew - local.tee $8 + local.tee $0 i32.store local.get $1 - local.get $8 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -38190,7 +39176,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -38204,7 +39190,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 3 @@ -38217,7 +39203,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 @@ -38230,7 +39216,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 5 @@ -38260,12 +39246,13 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 f32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -38276,42 +39263,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $0 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $0 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $0 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $0 i32.const 5 f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 4240 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38323,7 +39310,7 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -38340,80 +39327,80 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 + local.get $4 local.get $5 - local.get $7 - i32.gt_s + i32.lt_s if - local.get $8 - local.get $7 + local.get $4 i32.const 2 i32.shl + local.get $9 i32.add f32.load - local.set $3 + local.set $7 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 4240 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) if - local.get $4 - local.get $0 + local.get $2 + local.tee $3 + i32.const 1 + i32.add + local.set $2 + local.get $3 i32.const 2 i32.shl + local.get $6 i32.add - local.get $3 + local.get $7 f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $7 + local.get $4 i32.const 1 i32.add - local.set $7 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $4 - local.get $0 + local.get $6 + local.get $2 i32.const 2 i32.shl local.tee $2 call $~lib/rt/itcms/__renew - local.tee $8 + local.tee $0 i32.store local.get $1 - local.get $8 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -38424,7 +39411,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -38438,7 +39425,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 @@ -38451,7 +39438,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 @@ -38464,7 +39451,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 5 @@ -38494,12 +39481,13 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) + (local $7 f64) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -38510,42 +39498,42 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 6 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $0 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $0 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $0 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $0 i32.const 5 f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 4272 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -38557,7 +39545,7 @@ local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -38574,80 +39562,80 @@ i32.shl i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 + local.get $4 local.get $5 - local.get $7 - i32.gt_s + i32.lt_s if - local.get $8 - local.get $7 + local.get $4 i32.const 3 i32.shl + local.get $9 i32.add f64.load - local.set $3 + local.set $7 i32.const 3 global.set $~argumentsLength - local.get $3 local.get $7 - local.get $2 + local.get $4 + local.get $0 i32.const 4272 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) if - local.get $4 - local.get $0 + local.get $2 + local.tee $3 + i32.const 1 + i32.add + local.set $2 + local.get $3 i32.const 3 i32.shl + local.get $6 i32.add - local.get $3 + local.get $7 f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 end - local.get $7 + local.get $4 i32.const 1 i32.add - local.set $7 + local.set $4 br $for-loop|0 end end local.get $1 - local.get $4 - local.get $0 + local.get $6 + local.get $2 i32.const 3 i32.shl local.tee $2 call $~lib/rt/itcms/__renew - local.tee $8 + local.tee $0 i32.store local.get $1 - local.get $8 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $8 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub if @@ -38658,7 +39646,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -38672,7 +39660,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 3 @@ -38685,7 +39673,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 4 @@ -38698,7 +39686,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -38776,8 +39764,8 @@ call $~lib/builtins/abort unreachable end - local.get $2 global.get $std/typedarray/forEachSelf + local.get $2 i32.ne if i32.const 0 @@ -38848,8 +39836,8 @@ call $~lib/builtins/abort unreachable end - local.get $2 global.get $std/typedarray/forEachSelf + local.get $2 i32.ne if i32.const 0 @@ -38916,8 +39904,8 @@ call $~lib/builtins/abort unreachable end - local.get $2 global.get $std/typedarray/forEachSelf + local.get $2 i32.ne if i32.const 0 @@ -38985,8 +39973,8 @@ call $~lib/builtins/abort unreachable end - local.get $2 global.get $std/typedarray/forEachSelf + local.get $2 i32.ne if i32.const 0 @@ -39054,8 +40042,8 @@ call $~lib/builtins/abort unreachable end - local.get $2 global.get $std/typedarray/forEachSelf + local.get $2 i32.ne if i32.const 0 @@ -39123,8 +40111,8 @@ call $~lib/builtins/abort unreachable end - local.get $2 global.get $std/typedarray/forEachSelf + local.get $2 i32.ne if i32.const 0 @@ -40022,19 +41010,19 @@ local.get $3 i32.lt_u if - local.get $4 local.get $0 i32.const 1 i32.shl + local.get $4 i32.add local.tee $6 i32.load16_s local.set $7 local.get $6 - local.get $4 local.get $3 i32.const 1 i32.shl + local.get $4 i32.add local.tee $6 i32.load16_s @@ -40112,19 +41100,19 @@ local.get $3 i32.lt_u if - local.get $5 local.get $2 i32.const 1 i32.shl + local.get $5 i32.add local.tee $4 i32.load16_s local.set $6 local.get $4 - local.get $5 local.get $3 i32.const 1 i32.shl + local.get $5 i32.add local.tee $4 i32.load16_s @@ -40296,19 +41284,19 @@ local.get $3 i32.lt_u if - local.get $4 local.get $0 i32.const 1 i32.shl + local.get $4 i32.add local.tee $6 i32.load16_u local.set $7 local.get $6 - local.get $4 local.get $3 i32.const 1 i32.shl + local.get $4 i32.add local.tee $6 i32.load16_u @@ -40387,19 +41375,19 @@ local.get $3 i32.lt_u if - local.get $5 local.get $2 i32.const 1 i32.shl + local.get $5 i32.add local.tee $4 i32.load16_u local.set $6 local.get $4 - local.get $5 local.get $3 i32.const 1 i32.shl + local.get $5 i32.add local.tee $4 i32.load16_u @@ -40567,19 +41555,19 @@ local.get $3 i32.lt_u if - local.get $4 local.get $0 i32.const 2 i32.shl + local.get $4 i32.add local.tee $6 i32.load local.set $7 local.get $6 - local.get $4 local.get $3 i32.const 2 i32.shl + local.get $4 i32.add local.tee $6 i32.load @@ -40657,19 +41645,19 @@ local.get $3 i32.lt_u if - local.get $5 local.get $2 i32.const 2 i32.shl + local.get $5 i32.add local.tee $4 i32.load local.set $6 local.get $4 - local.get $5 local.get $3 i32.const 2 i32.shl + local.get $5 i32.add local.tee $4 i32.load @@ -40837,19 +41825,19 @@ local.get $3 i32.lt_u if - local.get $4 local.get $0 i32.const 2 i32.shl + local.get $4 i32.add local.tee $6 i32.load local.set $7 local.get $6 - local.get $4 local.get $3 i32.const 2 i32.shl + local.get $4 i32.add local.tee $6 i32.load @@ -40926,19 +41914,19 @@ local.get $3 i32.lt_u if - local.get $5 local.get $2 i32.const 2 i32.shl + local.get $5 i32.add local.tee $4 i32.load local.set $6 local.get $4 - local.get $5 local.get $3 i32.const 2 i32.shl + local.get $5 i32.add local.tee $4 i32.load @@ -41108,19 +42096,19 @@ local.get $3 i32.lt_u if - local.get $4 local.get $0 i32.const 3 i32.shl + local.get $4 i32.add local.tee $6 i64.load local.set $7 local.get $6 - local.get $4 local.get $3 i32.const 3 i32.shl + local.get $4 i32.add local.tee $6 i64.load @@ -41198,19 +42186,19 @@ local.get $3 i32.lt_u if - local.get $5 local.get $2 i32.const 3 i32.shl + local.get $5 i32.add local.tee $4 i64.load local.set $7 local.get $4 - local.get $5 local.get $3 i32.const 3 i32.shl + local.get $5 i32.add local.tee $4 i64.load @@ -41380,19 +42368,19 @@ local.get $3 i32.lt_u if - local.get $4 local.get $0 i32.const 3 i32.shl + local.get $4 i32.add local.tee $6 i64.load local.set $7 local.get $6 - local.get $4 local.get $3 i32.const 3 i32.shl + local.get $4 i32.add local.tee $6 i64.load @@ -41470,19 +42458,19 @@ local.get $3 i32.lt_u if - local.get $5 local.get $2 i32.const 3 i32.shl + local.get $5 i32.add local.tee $4 i64.load local.set $7 local.get $4 - local.get $5 local.get $3 i32.const 3 i32.shl + local.get $5 i32.add local.tee $4 i64.load @@ -41652,19 +42640,19 @@ local.get $3 i32.lt_u if - local.get $4 local.get $0 i32.const 2 i32.shl + local.get $4 i32.add local.tee $6 f32.load local.set $7 local.get $6 - local.get $4 local.get $3 i32.const 2 i32.shl + local.get $4 i32.add local.tee $6 f32.load @@ -41742,19 +42730,19 @@ local.get $3 i32.lt_u if - local.get $5 local.get $2 i32.const 2 i32.shl + local.get $5 i32.add local.tee $4 f32.load local.set $7 local.get $4 - local.get $5 local.get $3 i32.const 2 i32.shl + local.get $5 i32.add local.tee $4 f32.load @@ -41924,19 +42912,19 @@ local.get $3 i32.lt_u if - local.get $4 local.get $0 i32.const 3 i32.shl + local.get $4 i32.add local.tee $6 f64.load local.set $7 local.get $6 - local.get $4 local.get $3 i32.const 3 i32.shl + local.get $4 i32.add local.tee $6 f64.load @@ -42015,19 +43003,19 @@ local.get $3 i32.lt_u if - local.get $5 local.get $2 i32.const 3 i32.shl + local.get $5 i32.add local.tee $4 f64.load local.set $7 local.get $4 - local.get $5 local.get $3 i32.const 3 i32.shl + local.get $5 i32.add local.tee $4 f64.load @@ -42236,7 +43224,6 @@ (local $7 i32) (local $8 f32) (local $9 f64) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42282,21 +43269,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -42320,7 +43307,6 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int8Array#constructor - local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -42333,12 +43319,12 @@ i32.const 15 i32.const 11312 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 local.get $0 - local.get $3 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -42362,19 +43348,19 @@ local.set $7 i32.const 11100 i32.load - local.set $3 + local.set $4 loop $for-loop|0 - local.get $2 local.get $3 + local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $6 i32.add - local.get $7 - local.get $2 + local.get $3 i32.const 2 i32.shl + local.get $7 i32.add f32.load local.tee $8 @@ -42389,10 +43375,10 @@ i32.const 0 end i32.store8 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end @@ -42401,12 +43387,12 @@ i32.const 15 i32.const 11392 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $0 local.get $1 @@ -42440,7 +43426,7 @@ i32.load offset=4 i32.const 2 i32.add - local.set $3 + local.set $4 i32.const 11188 i32.load local.set $6 @@ -42453,12 +43439,12 @@ i32.lt_s if local.get $1 - local.get $3 + local.get $4 i32.add - local.get $6 local.get $1 i32.const 3 i32.shl + local.get $6 i32.add f64.load local.tee $9 @@ -42493,7 +43479,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -42508,12 +43494,12 @@ i32.const 15 i32.const 11488 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 - local.get $10 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -42628,7 +43614,6 @@ (local $7 i32) (local $8 f32) (local $9 f64) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -42674,21 +43659,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -42712,7 +43697,6 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8Array#constructor - local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -42725,12 +43709,12 @@ i32.const 63 i32.const 11520 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 local.get $0 - local.get $3 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -42754,19 +43738,19 @@ local.set $7 i32.const 11100 i32.load - local.set $3 + local.set $4 loop $for-loop|0 - local.get $2 local.get $3 + local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $6 i32.add - local.get $7 - local.get $2 + local.get $3 i32.const 2 i32.shl + local.get $7 i32.add f32.load local.tee $8 @@ -42781,10 +43765,10 @@ i32.const 0 end i32.store8 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end @@ -42793,12 +43777,12 @@ i32.const 63 i32.const 11600 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $0 local.get $1 @@ -42832,7 +43816,7 @@ i32.load offset=4 i32.const 2 i32.add - local.set $3 + local.set $4 i32.const 11188 i32.load local.set $6 @@ -42845,12 +43829,12 @@ i32.lt_s if local.get $1 - local.get $3 + local.get $4 i32.add - local.get $6 local.get $1 i32.const 3 i32.shl + local.get $6 i32.add f64.load local.tee $9 @@ -42885,7 +43869,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -42900,12 +43884,12 @@ i32.const 63 i32.const 11696 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 - local.get $10 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43021,7 +44005,6 @@ (local $8 i32) (local $9 f32) (local $10 f64) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43105,7 +44088,6 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $11 local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -43120,10 +44102,10 @@ br_if $folding-inner0 local.get $1 i32.load offset=4 - local.set $5 + local.set $6 i32.const 11012 i32.load - local.set $6 + local.set $7 i32.const 11020 i32.load local.set $8 @@ -43133,26 +44115,26 @@ i32.lt_s if local.get $0 - local.get $5 - i32.add local.get $6 + i32.add + i32.const 255 local.get $0 i32.const 2 i32.shl + local.get $7 i32.add i32.load - local.tee $7 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $7 - i32.const 255 - local.get $7 + local.tee $5 i32.sub i32.const 31 i32.shr_s + local.get $5 i32.or + local.get $5 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor i32.and i32.store8 local.get $0 @@ -43191,10 +44173,10 @@ i32.load offset=4 i32.const 3 i32.add - local.set $5 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load local.set $8 @@ -43204,12 +44186,12 @@ i32.lt_s if local.get $0 - local.get $5 - i32.add local.get $6 + i32.add local.get $0 i32.const 2 i32.shl + local.get $7 i32.add f32.load local.tee $9 @@ -43280,25 +44262,25 @@ i32.load offset=4 i32.const 2 i32.add - local.set $7 + local.set $5 i32.const 11188 i32.load - local.set $5 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $7 loop $for-loop|08 local.get $0 - local.get $6 + local.get $7 i32.lt_s if local.get $0 - local.get $7 - i32.add local.get $5 + i32.add local.get $0 i32.const 3 i32.shl + local.get $6 i32.add f64.load local.tee $10 @@ -43360,37 +44342,37 @@ i32.load offset=4 i32.const 7 i32.add - local.set $2 + local.set $3 i32.const 11268 i32.load - local.set $3 + local.set $4 i32.const 11276 i32.load - local.set $4 + local.set $5 loop $for-loop|012 local.get $0 - local.get $4 + local.get $5 i32.lt_s if local.get $0 - local.get $2 + local.get $3 i32.add + i32.const 255 local.get $0 - local.get $3 + local.get $4 i32.add i32.load8_s - local.tee $1 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $1 - i32.const 255 - local.get $1 + local.tee $2 i32.sub i32.const 31 i32.shr_s + local.get $2 i32.or + local.get $2 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor i32.and i32.store8 local.get $0 @@ -43405,12 +44387,12 @@ i32.const 63 i32.const 11920 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $11 local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43530,7 +44512,6 @@ (local $7 i32) (local $8 f32) (local $9 f64) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43576,21 +44557,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -43614,7 +44595,6 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int16Array#constructor - local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -43627,12 +44607,12 @@ i32.const 64 i32.const 11952 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 local.get $0 - local.get $3 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -43658,21 +44638,21 @@ local.set $7 i32.const 11100 i32.load - local.set $3 + local.set $4 loop $for-loop|0 - local.get $2 local.get $3 + local.get $4 i32.lt_s if - local.get $6 - local.get $2 + local.get $3 i32.const 1 i32.shl + local.get $6 i32.add - local.get $7 - local.get $2 + local.get $3 i32.const 2 i32.shl + local.get $7 i32.add f32.load local.tee $8 @@ -43687,10 +44667,10 @@ i32.const 0 end i32.store16 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end @@ -43699,12 +44679,12 @@ i32.const 64 i32.const 12048 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $0 local.get $1 @@ -43740,7 +44720,7 @@ i32.load offset=4 i32.const 4 i32.add - local.set $3 + local.set $4 i32.const 11188 i32.load local.set $6 @@ -43752,15 +44732,15 @@ local.get $7 i32.lt_s if - local.get $3 local.get $1 i32.const 1 i32.shl + local.get $4 i32.add - local.get $6 local.get $1 i32.const 3 i32.shl + local.get $6 i32.add f64.load local.tee $9 @@ -43795,7 +44775,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -43810,12 +44790,12 @@ i32.const 64 i32.const 12192 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 - local.get $10 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43935,7 +44915,6 @@ (local $7 i32) (local $8 f32) (local $9 f64) - (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -43981,21 +44960,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -44019,7 +44998,6 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint16Array#constructor - local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -44032,12 +45010,12 @@ i32.const 65 i32.const 12240 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 local.get $0 - local.get $3 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -44063,21 +45041,21 @@ local.set $7 i32.const 11100 i32.load - local.set $3 + local.set $4 loop $for-loop|0 - local.get $2 local.get $3 + local.get $4 i32.lt_s if - local.get $6 - local.get $2 + local.get $3 i32.const 1 i32.shl + local.get $6 i32.add - local.get $7 - local.get $2 + local.get $3 i32.const 2 i32.shl + local.get $7 i32.add f32.load local.tee $8 @@ -44092,10 +45070,10 @@ i32.const 0 end i32.store16 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end @@ -44104,12 +45082,12 @@ i32.const 65 i32.const 12336 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $0 local.get $1 @@ -44145,7 +45123,7 @@ i32.load offset=4 i32.const 4 i32.add - local.set $3 + local.set $4 i32.const 11188 i32.load local.set $6 @@ -44157,15 +45135,15 @@ local.get $7 i32.lt_s if - local.get $3 local.get $1 i32.const 1 i32.shl + local.get $4 i32.add - local.get $6 local.get $1 i32.const 3 i32.shl + local.get $6 i32.add f64.load local.tee $9 @@ -44200,7 +45178,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -44215,12 +45193,12 @@ i32.const 65 i32.const 12480 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 - local.get $10 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44341,7 +45319,6 @@ (local $8 f32) (local $9 f64) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -44387,21 +45364,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -44425,7 +45402,6 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int32Array#constructor - local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -44440,12 +45416,12 @@ i32.const 16 i32.const 12528 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -44471,23 +45447,24 @@ local.set $7 i32.const 11100 i32.load - local.set $11 + local.set $10 loop $for-loop|0 - local.get $3 - local.get $11 + local.get $4 + local.get $10 i32.lt_s if - local.get $6 - local.get $3 + local.get $7 + local.get $4 i32.const 2 i32.shl - local.tee $2 - i32.add - local.get $2 - local.get $7 + local.tee $3 i32.add f32.load - local.tee $8 + local.set $8 + local.get $3 + local.get $6 + i32.add + local.get $8 local.get $8 f32.sub f32.const 0 @@ -44499,10 +45476,10 @@ i32.const 0 end i32.store - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end @@ -44511,12 +45488,12 @@ i32.const 16 i32.const 12640 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 local.get $0 - local.get $3 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 local.get $1 @@ -44552,7 +45529,7 @@ i32.load offset=4 i32.const 8 i32.add - local.set $2 + local.set $3 i32.const 11188 i32.load local.set $6 @@ -44564,15 +45541,15 @@ local.get $7 i32.lt_s if - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $3 i32.add - local.get $6 local.get $1 i32.const 3 i32.shl + local.get $6 i32.add f64.load local.tee $9 @@ -44607,7 +45584,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -44622,12 +45599,12 @@ i32.const 16 i32.const 12832 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 - local.get $10 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44748,7 +45725,6 @@ (local $8 f32) (local $9 f64) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -44794,21 +45770,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $2 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -44832,7 +45808,6 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint32Array#constructor - local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -44847,12 +45822,12 @@ i32.const 66 i32.const 12896 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=16 local.get $0 - local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -44878,23 +45853,24 @@ local.set $7 i32.const 11100 i32.load - local.set $11 + local.set $10 loop $for-loop|0 - local.get $3 - local.get $11 + local.get $4 + local.get $10 i32.lt_s if - local.get $6 - local.get $3 + local.get $7 + local.get $4 i32.const 2 i32.shl - local.tee $2 - i32.add - local.get $2 - local.get $7 + local.tee $3 i32.add f32.load - local.tee $8 + local.set $8 + local.get $3 + local.get $6 + i32.add + local.get $8 local.get $8 f32.sub f32.const 0 @@ -44906,10 +45882,10 @@ i32.const 0 end i32.store - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end @@ -44918,12 +45894,12 @@ i32.const 66 i32.const 13008 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 local.get $0 - local.get $3 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 local.get $1 @@ -44959,7 +45935,7 @@ i32.load offset=4 i32.const 8 i32.add - local.set $2 + local.set $3 i32.const 11188 i32.load local.set $6 @@ -44971,15 +45947,15 @@ local.get $7 i32.lt_s if - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $3 i32.add - local.get $6 local.get $1 i32.const 3 i32.shl + local.get $6 i32.add f64.load local.tee $9 @@ -45014,7 +45990,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -45029,12 +46005,12 @@ i32.const 66 i32.const 13200 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 - local.get $10 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -45153,9 +46129,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) - (local $9 f64) - (local $10 i32) + (local $8 f64) + (local $9 f32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -45201,21 +46176,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -45239,7 +46214,6 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Int64Array#constructor - local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -45252,12 +46226,12 @@ i32.const 67 i32.const 13264 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 local.get $0 - local.get $3 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -45277,7 +46251,7 @@ i32.load offset=4 i32.const 24 i32.add - local.set $3 + local.set $4 i32.const 11092 i32.load local.set $6 @@ -45289,24 +46263,24 @@ local.get $7 i32.lt_s if - local.get $3 local.get $2 i32.const 3 i32.shl + local.get $4 i32.add - local.get $6 local.get $2 i32.const 2 i32.shl + local.get $6 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f32.sub f32.const 0 f32.eq if (result i64) - local.get $8 + local.get $9 i64.trunc_f32_s else i64.const 0 @@ -45368,7 +46342,7 @@ local.set $2 i32.const 11188 i32.load - local.set $3 + local.set $4 i32.const 11196 i32.load local.set $6 @@ -45377,23 +46351,24 @@ local.get $6 i32.lt_s if - local.get $2 + local.get $4 local.get $1 i32.const 3 i32.shl local.tee $7 i32.add - local.get $3 + f64.load + local.set $8 + local.get $2 local.get $7 i32.add - f64.load - local.tee $9 - local.get $9 + local.get $8 + local.get $8 f64.sub f64.const 0 f64.eq if (result i64) - local.get $9 + local.get $8 i64.trunc_f64_s else i64.const 0 @@ -45419,7 +46394,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $0 - local.get $4 + local.get $3 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -45434,12 +46409,12 @@ i32.const 67 i32.const 13760 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=16 - local.get $10 local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -45558,9 +46533,8 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) - (local $9 f64) - (local $10 i32) + (local $8 f64) + (local $9 f32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -45606,21 +46580,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -45644,7 +46618,6 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint64Array#constructor - local.tee $10 local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -45657,12 +46630,12 @@ i32.const 68 i32.const 13872 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=16 local.get $0 - local.get $3 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 @@ -45682,7 +46655,7 @@ i32.load offset=4 i32.const 24 i32.add - local.set $3 + local.set $4 i32.const 11092 i32.load local.set $6 @@ -45694,24 +46667,24 @@ local.get $7 i32.lt_s if - local.get $3 local.get $2 i32.const 3 i32.shl + local.get $4 i32.add - local.get $6 local.get $2 i32.const 2 i32.shl + local.get $6 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f32.sub f32.const 0 f32.eq if (result i64) - local.get $8 + local.get $9 i64.trunc_f32_u else i64.const 0 @@ -45773,7 +46746,7 @@ local.set $2 i32.const 11188 i32.load - local.set $3 + local.set $4 i32.const 11196 i32.load local.set $6 @@ -45782,23 +46755,24 @@ local.get $6 i32.lt_s if - local.get $2 + local.get $4 local.get $1 i32.const 3 i32.shl local.tee $7 i32.add - local.get $3 + f64.load + local.set $8 + local.get $2 local.get $7 i32.add - f64.load - local.tee $9 - local.get $9 + local.get $8 + local.get $8 f64.sub f64.const 0 f64.eq if (result i64) - local.get $9 + local.get $8 i64.trunc_f64_u else i64.const 0 @@ -45824,7 +46798,7 @@ local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $0 - local.get $4 + local.get $3 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -45839,12 +46813,12 @@ i32.const 68 i32.const 14368 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=16 - local.get $10 local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -45964,7 +46938,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -45981,16 +46954,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i64.const 0 i64.store offset=8 - local.get $0 + local.get $2 i32.const 0 i32.store offset=16 - local.get $0 + local.get $2 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $3 @@ -46010,21 +46983,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -46048,8 +47021,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Float32Array#constructor - local.tee $7 - local.tee $0 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -46057,13 +47029,13 @@ block $folding-inner0 i32.const 11020 i32.load - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $2 i32.load offset=4 local.set $5 i32.const 11012 @@ -46071,28 +47043,28 @@ local.set $6 i32.const 11020 i32.load - local.set $8 + local.set $7 loop $for-loop|0 - local.get $1 - local.get $8 + local.get $0 + local.get $7 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.tee $9 + local.tee $8 local.get $5 i32.add local.get $6 - local.get $9 + local.get $8 i32.add i32.load f32.convert_i32_s f32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -46101,17 +47073,17 @@ i32.const 61 i32.const 14480 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 + local.get $2 local.get $0 - local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - local.get $0 + local.get $2 i32.const 11088 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -46120,28 +47092,28 @@ i32.const 61 i32.const 14592 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 + local.get $2 local.get $0 - local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $1 + local.set $0 local.get $3 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $2 i32.load offset=4 i32.const 24 i32.add @@ -46155,27 +47127,27 @@ i32.shr_u local.set $3 loop $for-loop|01 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $5 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $5 i32.add - local.get $6 - local.get $1 + local.get $0 i32.const 3 i32.shl + local.get $6 i32.add i64.load f32.convert_i64_s f32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|01 end end @@ -46188,100 +47160,100 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=16 - local.get $0 + local.get $2 local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $1 - local.get $2 + local.set $0 + local.get $1 i32.load offset=8 - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $2 i32.load offset=4 local.set $3 - local.get $2 + local.get $1 i32.load offset=4 local.set $5 - local.get $2 + local.get $1 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|03 + local.get $0 local.get $1 - local.get $2 i32.lt_s if - local.get $3 - local.get $1 + local.get $0 i32.const 2 i32.shl + local.get $3 i32.add - local.get $1 + local.get $0 local.get $5 i32.add i32.load8_u f32.convert_i32_u f32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|03 end end i32.const 0 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $2 i32.load offset=4 i32.const 16 i32.add local.set $3 local.get $4 i32.load offset=4 - local.set $1 + local.set $0 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $4 loop $for-loop|05 - local.get $2 + local.get $1 local.get $4 i32.lt_s if - local.get $3 - local.get $2 + local.get $1 i32.const 2 i32.shl + local.get $3 i32.add local.get $1 - local.get $2 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_s f32.convert_i32_s f32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|05 end end @@ -46289,48 +47261,48 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $2 + local.set $1 i32.const 11276 i32.load i32.const 7 i32.add - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $2 i32.load offset=4 i32.const 28 i32.add - local.set $0 + local.set $3 i32.const 11268 i32.load - local.set $3 + local.set $4 i32.const 11276 i32.load - local.set $4 + local.set $0 loop $for-loop|09 - local.get $2 - local.get $4 - i32.lt_s + local.get $0 + local.get $1 + i32.gt_s if - local.get $0 - local.get $2 + local.get $1 i32.const 2 i32.shl - i32.add - local.get $2 local.get $3 i32.add + local.get $1 + local.get $4 + i32.add i32.load8_s f32.convert_i32_s f32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|09 end end @@ -46339,12 +47311,12 @@ i32.const 61 i32.const 14720 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $7 - local.get $0 + local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -46461,7 +47433,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -46478,16 +47449,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $3 @@ -46507,21 +47478,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.const 100 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 102 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 103 call $~lib/typedarray/Uint8Array#__set @@ -46545,8 +47516,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Float64Array#constructor - local.tee $8 - local.tee $1 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 11008 @@ -46554,13 +47524,13 @@ block $folding-inner0 i32.const 11020 i32.load - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $2 i32.load offset=4 local.set $5 i32.const 11012 @@ -46574,15 +47544,15 @@ local.get $7 i32.lt_s if - local.get $5 local.get $0 i32.const 3 i32.shl + local.get $5 i32.add - local.get $6 local.get $0 i32.const 2 i32.shl + local.get $6 i32.add i32.load f64.convert_i32_s @@ -46603,7 +47573,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer @@ -46615,13 +47585,13 @@ i32.load i32.const 3 i32.add - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 24 i32.add @@ -46637,15 +47607,15 @@ local.get $7 i32.lt_s if - local.get $5 local.get $0 i32.const 3 i32.shl + local.get $5 i32.add - local.get $6 local.get $0 i32.const 2 i32.shl + local.get $6 i32.add f32.load f64.promote_f32 @@ -46666,7 +47636,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 - local.get $1 + local.get $2 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 @@ -46677,13 +47647,13 @@ i32.shr_u i32.const 6 i32.add - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 48 i32.add @@ -46729,37 +47699,37 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=16 - local.get $1 + local.get $2 local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 local.set $0 - local.get $2 - i32.load offset=8 local.get $1 i32.load offset=8 + local.get $2 + i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $2 i32.load offset=4 local.set $3 - local.get $2 + local.get $1 i32.load offset=4 local.set $5 - local.get $2 + local.get $1 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|08 local.get $0 - local.get $2 + local.get $1 i32.lt_s if - local.get $3 local.get $0 i32.const 3 i32.shl + local.get $3 i32.add local.get $0 local.get $5 @@ -46775,20 +47745,20 @@ end end i32.const 0 - local.set $2 + local.set $1 local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 32 i32.add @@ -46802,27 +47772,27 @@ i32.shr_u local.set $4 loop $for-loop|010 - local.get $2 + local.get $1 local.get $4 i32.lt_s if - local.get $3 - local.get $2 + local.get $1 i32.const 3 i32.shl + local.get $3 i32.add - local.get $0 - local.get $2 + local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_s f64.convert_i32_s f64.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|010 end end @@ -46830,48 +47800,48 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $2 + local.set $1 i32.const 11276 i32.load i32.const 7 i32.add - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 56 i32.add - local.set $1 + local.set $3 i32.const 11268 i32.load - local.set $3 + local.set $4 i32.const 11276 i32.load - local.set $4 + local.set $0 loop $for-loop|014 - local.get $2 - local.get $4 - i32.lt_s + local.get $0 + local.get $1 + i32.gt_s if local.get $1 - local.get $2 i32.const 3 i32.shl - i32.add - local.get $2 local.get $3 i32.add + local.get $1 + local.get $4 + i32.add i32.load8_s f64.convert_i32_s f64.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|014 end end @@ -46884,7 +47854,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 - local.get $8 + local.get $2 local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer @@ -47598,65 +48568,65 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $5 + local.tee $4 i32.store offset=8 - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.load offset=4 local.set $2 i32.const 1 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 1 - i32.gt_s + i32.gt_u select - local.set $0 + local.set $1 i32.const 3 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 3 - i32.gt_s + i32.gt_u select - local.set $1 + local.set $0 loop $for-loop|0 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i32.const 1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -47669,7 +48639,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $5 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47681,18 +48651,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=4 local.set $2 i32.const 0 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.tee $1 local.get $1 - i32.const 0 - i32.gt_s select local.set $0 loop $for-loop|01 @@ -47700,10 +48668,10 @@ local.get $1 i32.lt_s if - local.get $2 local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.const 0 i32.store @@ -47723,7 +48691,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $5 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47735,46 +48703,44 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=4 local.set $2 i32.const 0 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 - local.get $1 - i32.const 0 - i32.gt_s + local.tee $0 + local.get $0 select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 3 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 + local.set $0 loop $for-loop|03 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i32.const 1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|03 end end @@ -47787,7 +48753,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $5 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47799,10 +48765,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -47821,10 +48787,10 @@ local.get $1 i32.lt_s if - local.get $2 local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.const 2 i32.store @@ -47844,7 +48810,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $5 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47856,43 +48822,41 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.load offset=4 local.set $2 i32.const 1 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 1 - i32.gt_s + i32.gt_u select - local.set $0 - i32.const 0 - local.get $1 - local.get $1 + local.set $1 i32.const 0 - i32.gt_s + local.get $0 + local.get $0 select - local.set $1 + local.set $0 loop $for-loop|07 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|07 end end @@ -47905,7 +48869,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $5 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47918,24 +48882,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $4 + local.tee $3 i32.store offset=12 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 i32.const 0 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.tee $1 local.get $1 - i32.const 0 - i32.gt_s select local.set $0 loop $for-loop|09 @@ -47943,10 +48905,10 @@ local.get $1 i32.lt_s if - local.get $2 local.get $0 i32.const 2 i32.shl + local.get $2 i32.add i32.const 0 i32.store @@ -47957,7 +48919,7 @@ br $for-loop|09 end end - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -47971,9 +48933,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.load offset=4 - local.get $4 + local.get $3 i32.load i32.sub i32.const 4 @@ -47986,7 +48948,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.load offset=8 i32.const 12 i32.ne @@ -48007,7 +48969,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -48028,7 +48990,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $5 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -49001,36 +49963,36 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 2896 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 loop $for-loop|011 local.get $1 - local.get $3 + local.get $5 i32.gt_s if local.get $2 - local.get $3 + local.get $5 i32.add i32.load8_s local.set $0 @@ -49038,16 +50000,16 @@ global.set $~argumentsLength local.get $6 local.get $0 + local.get $5 local.get $3 - local.get $4 i32.const 2896 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $6 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|011 end end @@ -49076,17 +50038,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -49094,22 +50056,22 @@ i32.const 2928 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $6 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 loop $for-loop|010 local.get $1 - local.get $3 + local.get $5 i32.gt_s if local.get $2 - local.get $3 + local.get $5 i32.add i32.load8_u local.set $0 @@ -49117,16 +50079,16 @@ global.set $~argumentsLength local.get $6 local.get $0 + local.get $5 local.get $3 - local.get $4 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $6 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|010 end end @@ -49155,17 +50117,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -49173,22 +50135,22 @@ i32.const 2960 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $6 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 loop $for-loop|013 local.get $1 - local.get $3 + local.get $5 i32.gt_s if local.get $2 - local.get $3 + local.get $5 i32.add i32.load8_u local.set $0 @@ -49196,16 +50158,16 @@ global.set $~argumentsLength local.get $6 local.get $0 + local.get $5 local.get $3 - local.get $4 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $6 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|013 end end @@ -49234,17 +50196,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -49252,26 +50214,26 @@ i32.const 2992 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $6 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|014 local.get $1 - local.get $3 + local.get $5 i32.gt_s if - local.get $2 - local.get $3 + local.get $5 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_s local.set $0 @@ -49279,16 +50241,16 @@ global.set $~argumentsLength local.get $6 local.get $0 + local.get $5 local.get $3 - local.get $4 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $6 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|014 end end @@ -49317,17 +50279,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -49335,26 +50297,26 @@ i32.const 3024 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $6 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|016 local.get $1 - local.get $3 + local.get $5 i32.gt_s if - local.get $2 - local.get $3 + local.get $5 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u local.set $0 @@ -49362,16 +50324,16 @@ global.set $~argumentsLength local.get $6 local.get $0 + local.get $5 local.get $3 - local.get $4 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $6 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|016 end end @@ -49400,17 +50362,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -49418,26 +50380,26 @@ i32.const 3056 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $6 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|018 local.get $1 - local.get $3 + local.get $5 i32.gt_s if - local.get $2 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.set $0 @@ -49445,16 +50407,16 @@ global.set $~argumentsLength local.get $6 local.get $0 + local.get $5 local.get $3 - local.get $4 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $6 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|018 end end @@ -49481,17 +50443,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -49499,26 +50461,26 @@ i32.const 3088 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $6 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|021 local.get $1 - local.get $3 + local.get $5 i32.gt_s if - local.get $2 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.set $0 @@ -49526,16 +50488,16 @@ global.set $~argumentsLength local.get $6 local.get $0 + local.get $5 local.get $3 - local.get $4 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $6 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|021 end end @@ -49580,7 +50542,7 @@ i32.const 3120 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -49591,13 +50553,13 @@ local.set $0 loop $for-loop|023 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load local.set $9 @@ -49605,16 +50567,16 @@ global.set $~argumentsLength local.get $13 local.get $9 - local.get $3 + local.get $5 local.get $2 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $13 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|023 end end @@ -49659,7 +50621,7 @@ i32.const 3152 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i64.const 0 local.set $13 local.get $2 @@ -49672,13 +50634,13 @@ local.set $0 loop $for-loop|025 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load local.set $9 @@ -49686,16 +50648,16 @@ global.set $~argumentsLength local.get $13 local.get $9 - local.get $3 + local.get $5 local.get $2 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $13 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|025 end end @@ -49740,7 +50702,7 @@ i32.const 3184 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -49751,13 +50713,13 @@ local.set $0 loop $for-loop|027 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $1 i32.add f32.load local.set $11 @@ -49765,16 +50727,16 @@ global.set $~argumentsLength local.get $14 local.get $11 - local.get $3 + local.get $5 local.get $2 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) local.set $14 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|027 end end @@ -49819,7 +50781,7 @@ i32.const 3216 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -49830,13 +50792,13 @@ local.set $0 loop $for-loop|029 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add f64.load local.set $12 @@ -49844,16 +50806,16 @@ global.set $~argumentsLength local.get $15 local.get $12 - local.get $3 + local.get $5 local.get $2 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) local.set $15 - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|029 end end @@ -50459,7 +51421,7 @@ i32.const 3248 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -50467,35 +51429,35 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|031 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_s local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 - local.get $4 + local.get $3 local.get $2 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|031 end end - local.get $3 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -50538,7 +51500,7 @@ i32.const 3280 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -50546,35 +51508,35 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|033 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 - local.get $4 + local.get $3 local.get $2 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|033 end end - local.get $3 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -50617,7 +51579,7 @@ i32.const 3312 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -50625,35 +51587,35 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|036 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 - local.get $4 + local.get $3 local.get $2 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|036 end end - local.get $3 + local.get $5 i32.const 255 i32.and i32.const 6 @@ -50696,7 +51658,7 @@ i32.const 3344 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -50706,37 +51668,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|038 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if - local.get $1 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $1 i32.add i32.load16_s local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 - local.get $4 + local.get $3 local.get $2 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|038 end end - local.get $3 + local.get $5 i32.const 65535 i32.and i32.const 6 @@ -50779,7 +51741,7 @@ i32.const 3376 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -50789,37 +51751,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|040 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if - local.get $1 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $1 i32.add i32.load16_u local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 - local.get $4 + local.get $3 local.get $2 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|040 end end - local.get $3 + local.get $5 i32.const 65535 i32.and i32.const 6 @@ -50862,7 +51824,7 @@ i32.const 3408 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -50872,37 +51834,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|042 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if - local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.shl + local.get $1 i32.add i32.load local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 - local.get $4 + local.get $3 local.get $2 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|042 end end - local.get $3 + local.get $5 i32.const 6 i32.ne br_if $folding-inner5 @@ -50943,7 +51905,7 @@ i32.const 3440 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -50953,37 +51915,37 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|044 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if - local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.shl + local.get $1 i32.add i32.load local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 - local.get $4 + local.get $3 local.get $2 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|044 end end - local.get $3 + local.get $5 i32.const 6 i32.ne br_if $folding-inner5 @@ -51034,16 +51996,16 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|046 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if - local.get $0 - local.get $4 + local.get $3 i32.const 3 i32.shl + local.get $0 i32.add i64.load local.set $9 @@ -51051,16 +52013,16 @@ global.set $~argumentsLength local.get $13 local.get $9 - local.get $4 + local.get $3 local.get $1 i32.const 3472 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $13 - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|046 end end @@ -51115,16 +52077,16 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|048 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if - local.get $0 - local.get $4 + local.get $3 i32.const 3 i32.shl + local.get $0 i32.add i64.load local.set $9 @@ -51132,16 +52094,16 @@ global.set $~argumentsLength local.get $13 local.get $9 - local.get $4 + local.get $3 local.get $1 i32.const 3504 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $13 - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|048 end end @@ -51196,16 +52158,16 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|050 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if - local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.shl + local.get $0 i32.add f32.load local.set $11 @@ -51213,16 +52175,16 @@ global.set $~argumentsLength local.get $14 local.get $11 - local.get $4 + local.get $3 local.get $1 i32.const 3536 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) local.set $14 - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|050 end end @@ -51277,16 +52239,16 @@ i32.shr_u i32.const 1 i32.sub - local.set $4 + local.set $3 loop $for-loop|052 - local.get $4 + local.get $3 i32.const 0 i32.ge_s if - local.get $0 - local.get $4 + local.get $3 i32.const 3 i32.shl + local.get $0 i32.add f64.load local.set $12 @@ -51294,16 +52256,16 @@ global.set $~argumentsLength local.get $15 local.get $12 - local.get $4 + local.get $3 local.get $1 i32.const 3568 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) local.set $15 - local.get $4 + local.get $3 i32.const 1 i32.sub - local.set $4 + local.set $3 br $for-loop|052 end end @@ -51315,6 +52277,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51333,25 +52297,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 3600 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -51360,88 +52324,87 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 - i32.load offset=4 - local.set $2 - local.get $3 + local.get $0 i32.load offset=8 - local.set $5 + local.set $4 local.get $0 + i32.load offset=4 + local.set $2 + local.get $1 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 loop $for-loop|02 + local.get $4 local.get $5 - local.get $7 i32.gt_s if local.get $2 - local.get $7 + local.get $5 i32.add i32.load8_s local.set $1 i32.const 3 global.set $~argumentsLength + local.get $5 local.get $6 - local.get $7 i32.add local.get $1 - local.get $7 - local.get $3 + local.get $5 + local.get $0 i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|02 end end - local.get $0 + local.get $7 local.get $6 i32.store - local.get $0 + local.get $7 local.get $6 call $~lib/rt/itcms/__link - local.get $0 + local.get $7 local.get $6 i32.store offset=4 - local.get $0 - local.get $5 + local.get $7 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $0 + local.get $7 i32.store offset=8 - local.get $0 + local.get $7 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne br_if $folding-inner20 - local.get $0 + local.get $7 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne br_if $folding-inner21 - local.get $0 + local.get $7 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 9 @@ -51452,7 +52415,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51471,25 +52434,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 3632 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -51498,88 +52461,87 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 - i32.load offset=4 - local.set $2 - local.get $3 + local.get $0 i32.load offset=8 - local.set $5 + local.set $4 local.get $0 + i32.load offset=4 + local.set $2 + local.get $1 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 loop $for-loop|04 + local.get $4 local.get $5 - local.get $7 i32.gt_s if local.get $2 - local.get $7 + local.get $5 i32.add i32.load8_u local.set $1 i32.const 3 global.set $~argumentsLength + local.get $5 local.get $6 - local.get $7 i32.add local.get $1 - local.get $7 - local.get $3 + local.get $5 + local.get $0 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|04 end end - local.get $0 + local.get $7 local.get $6 i32.store - local.get $0 + local.get $7 local.get $6 call $~lib/rt/itcms/__link - local.get $0 + local.get $7 local.get $6 i32.store offset=4 - local.get $0 - local.get $5 + local.get $7 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $0 + local.get $7 i32.store offset=8 - local.get $0 + local.get $7 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne br_if $folding-inner20 - local.get $0 + local.get $7 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne br_if $folding-inner21 - local.get $0 + local.get $7 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 9 @@ -51590,7 +52552,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51609,25 +52571,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.tee $4 i32.const 3664 i32.store offset=4 - local.get $4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -51636,88 +52598,87 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 - i32.load offset=4 - local.set $2 - local.get $3 + local.get $0 i32.load offset=8 - local.set $5 + local.set $4 local.get $0 + i32.load offset=4 + local.set $2 + local.get $1 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 0 call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 loop $for-loop|06 + local.get $4 local.get $5 - local.get $7 i32.gt_s if local.get $2 - local.get $7 + local.get $5 i32.add i32.load8_u local.set $1 i32.const 3 global.set $~argumentsLength + local.get $5 local.get $6 - local.get $7 i32.add local.get $1 - local.get $7 - local.get $3 + local.get $5 + local.get $0 i32.const 3664 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|06 end end - local.get $0 + local.get $7 local.get $6 i32.store - local.get $0 + local.get $7 local.get $6 call $~lib/rt/itcms/__link - local.get $0 + local.get $7 local.get $6 i32.store offset=4 - local.get $0 - local.get $5 + local.get $7 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $0 + local.get $7 i32.store offset=8 - local.get $0 + local.get $7 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne br_if $folding-inner20 - local.get $0 + local.get $7 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne br_if $folding-inner21 - local.get $0 + local.get $7 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 @@ -51727,8 +52688,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51747,25 +52706,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $8 + local.tee $0 i32.store - local.get $8 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $8 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $8 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 3696 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -51774,18 +52733,18 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $8 - i32.load offset=4 - local.set $4 - local.get $8 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u local.set $5 local.get $0 + i32.load offset=4 + local.set $4 + local.get $1 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new @@ -51795,60 +52754,59 @@ local.get $5 i32.const 1 i32.shl - local.tee $2 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store offset=4 loop $for-loop|08 local.get $5 - local.get $7 + local.get $8 i32.gt_s if local.get $4 - local.get $7 + local.get $8 i32.const 1 i32.shl - local.tee $1 + local.tee $2 i32.add i32.load16_s - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $3 - i32.add - local.get $0 + local.get $2 local.get $7 + i32.add + local.get $1 local.get $8 + local.get $0 i32.const 3696 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $7 + local.get $8 i32.const 1 i32.add - local.set $7 + local.set $8 br $for-loop|08 end end local.get $10 - local.get $3 + local.get $7 i32.store local.get $10 - local.get $3 + local.get $7 call $~lib/rt/itcms/__link local.get $10 - local.get $3 + local.get $7 i32.store offset=4 local.get $10 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $10 i32.store offset=8 local.get $10 @@ -51874,7 +52832,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51893,25 +52851,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $8 + local.tee $0 i32.store - local.get $8 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $8 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $8 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 3728 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -51920,18 +52878,18 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $8 - i32.load offset=4 - local.set $4 - local.get $8 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u local.set $5 local.get $0 + i32.load offset=4 + local.set $4 + local.get $1 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new @@ -51941,60 +52899,59 @@ local.get $5 i32.const 1 i32.shl - local.tee $2 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store offset=4 loop $for-loop|012 local.get $5 - local.get $7 + local.get $8 i32.gt_s if local.get $4 - local.get $7 + local.get $8 i32.const 1 i32.shl - local.tee $1 + local.tee $2 i32.add i32.load16_u - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $3 - i32.add - local.get $0 + local.get $2 local.get $7 + i32.add + local.get $1 local.get $8 + local.get $0 i32.const 3728 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $7 + local.get $8 i32.const 1 i32.add - local.set $7 + local.set $8 br $for-loop|012 end end local.get $10 - local.get $3 + local.get $7 i32.store local.get $10 - local.get $3 + local.get $7 call $~lib/rt/itcms/__link local.get $10 - local.get $3 + local.get $7 i32.store offset=4 local.get $10 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $10 i32.store offset=8 local.get $10 @@ -52020,7 +52977,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52039,25 +52996,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $8 + local.tee $0 i32.store - local.get $8 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $8 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $8 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 3760 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52066,18 +53023,18 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $8 - i32.load offset=4 - local.set $4 - local.get $8 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.set $5 local.get $0 + i32.load offset=4 + local.set $4 + local.get $1 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new @@ -52087,60 +53044,59 @@ local.get $5 i32.const 2 i32.shl - local.tee $2 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store offset=4 loop $for-loop|015 local.get $5 - local.get $7 + local.get $8 i32.gt_s if local.get $4 - local.get $7 + local.get $8 i32.const 2 i32.shl - local.tee $1 + local.tee $2 i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $3 - i32.add - local.get $0 + local.get $2 local.get $7 + i32.add + local.get $1 local.get $8 + local.get $0 i32.const 3760 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $7 + local.get $8 i32.const 1 i32.add - local.set $7 + local.set $8 br $for-loop|015 end end local.get $10 - local.get $3 + local.get $7 i32.store local.get $10 - local.get $3 + local.get $7 call $~lib/rt/itcms/__link local.get $10 - local.get $3 + local.get $7 i32.store offset=4 local.get $10 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $10 i32.store offset=8 local.get $10 @@ -52166,7 +53122,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52185,25 +53141,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $8 + local.tee $0 i32.store - local.get $8 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $8 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $8 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $6 i32.const 3792 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52212,18 +53168,18 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $8 - i32.load offset=4 - local.set $4 - local.get $8 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.set $5 local.get $0 + i32.load offset=4 + local.set $4 + local.get $1 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new @@ -52233,60 +53189,59 @@ local.get $5 i32.const 2 i32.shl - local.tee $2 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store offset=4 loop $for-loop|017 local.get $5 - local.get $7 + local.get $8 i32.gt_s if local.get $4 - local.get $7 + local.get $8 i32.const 2 i32.shl - local.tee $1 + local.tee $2 i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $3 - i32.add - local.get $0 + local.get $2 local.get $7 + i32.add + local.get $1 local.get $8 + local.get $0 i32.const 3792 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $7 + local.get $8 i32.const 1 i32.add - local.set $7 + local.set $8 br $for-loop|017 end end local.get $10 - local.get $3 + local.get $7 i32.store local.get $10 - local.get $3 + local.get $7 call $~lib/rt/itcms/__link local.get $10 - local.get $3 + local.get $7 i32.store offset=4 local.get $10 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $10 i32.store offset=8 local.get $10 @@ -52312,7 +53267,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $3 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52331,25 +53286,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $0 i32.store - local.get $7 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 3824 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52358,81 +53313,80 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $7 - i32.load offset=4 - local.set $2 - local.get $7 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 + local.set $6 local.get $0 + i32.load offset=4 + local.set $3 + local.get $1 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 3 i32.shl - local.tee $1 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 loop $for-loop|019 - local.get $3 - local.get $4 - i32.lt_s + local.get $6 + local.get $7 + i32.gt_s if - local.get $2 local.get $3 + local.get $7 i32.const 3 i32.shl - local.tee $0 + local.tee $1 i32.add i64.load local.set $9 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $6 + local.get $1 + local.get $5 i32.add local.get $9 - local.get $3 local.get $7 + local.get $0 i32.const 3824 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|019 end end local.get $8 - local.get $6 + local.get $5 i32.store local.get $8 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $8 - local.get $6 + local.get $5 i32.store offset=4 local.get $8 - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -52458,7 +53412,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $3 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52477,25 +53431,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $7 + local.tee $0 i32.store - local.get $7 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $7 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $7 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 3856 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52504,81 +53458,80 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $7 - i32.load offset=4 - local.set $2 - local.get $7 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 + local.set $6 local.get $0 + i32.load offset=4 + local.set $3 + local.get $1 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 3 i32.shl - local.tee $1 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 loop $for-loop|022 - local.get $3 - local.get $4 - i32.lt_s + local.get $6 + local.get $7 + i32.gt_s if - local.get $2 local.get $3 + local.get $7 i32.const 3 i32.shl - local.tee $0 + local.tee $1 i32.add i64.load local.set $9 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $6 + local.get $1 + local.get $5 i32.add local.get $9 - local.get $3 local.get $7 + local.get $0 i32.const 3856 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|022 end end local.get $8 - local.get $6 + local.get $5 i32.store local.get $8 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $8 - local.get $6 + local.get $5 i32.store offset=4 local.get $8 - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -52604,7 +53557,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $3 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52623,25 +53576,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $7 + local.tee $0 i32.store - local.get $7 + local.get $0 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $7 + local.get $0 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $7 + local.get $0 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 3888 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52650,81 +53603,80 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $7 - i32.load offset=4 - local.set $2 - local.get $7 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 + local.set $6 local.get $0 + i32.load offset=4 + local.set $3 + local.get $1 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 2 i32.shl - local.tee $1 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 loop $for-loop|024 - local.get $3 - local.get $4 - i32.lt_s + local.get $6 + local.get $7 + i32.gt_s if - local.get $2 local.get $3 + local.get $7 i32.const 2 i32.shl - local.tee $0 + local.tee $1 i32.add f32.load local.set $11 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $6 + local.get $1 + local.get $5 i32.add local.get $11 - local.get $3 local.get $7 + local.get $0 i32.const 3888 i32.load call_indirect $0 (type $f32_i32_i32_=>_f32) f32.store - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|024 end end local.get $8 - local.get $6 + local.get $5 i32.store local.get $8 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $8 - local.get $6 + local.get $5 i32.store offset=4 local.get $8 - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -52750,7 +53702,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $3 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52769,25 +53721,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $7 + local.tee $0 i32.store - local.get $7 + local.get $0 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $7 + local.get $0 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $7 + local.get $0 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.tee $5 i32.const 3920 i32.store offset=4 - local.get $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -52796,81 +53748,80 @@ i32.lt_s br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $7 - i32.load offset=4 - local.set $2 - local.get $7 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 + local.set $6 local.get $0 + i32.load offset=4 + local.set $3 + local.get $1 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 3 i32.shl - local.tee $1 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 loop $for-loop|026 - local.get $3 - local.get $4 - i32.lt_s + local.get $6 + local.get $7 + i32.gt_s if - local.get $2 local.get $3 + local.get $7 i32.const 3 i32.shl - local.tee $0 + local.tee $1 i32.add f64.load local.set $12 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $6 + local.get $1 + local.get $5 i32.add local.get $12 - local.get $3 local.get $7 + local.get $0 i32.const 3920 i32.load call_indirect $0 (type $f64_i32_i32_=>_f64) f64.store - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|026 end end local.get $8 - local.get $6 + local.get $5 i32.store local.get $8 - local.get $6 + local.get $5 call $~lib/rt/itcms/__link local.get $8 - local.get $6 + local.get $5 i32.store offset=4 local.get $8 - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $8 i32.store offset=8 local.get $8 @@ -52921,17 +53872,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int8Array#__set @@ -52939,21 +53890,21 @@ i32.const 4304 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|045 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_s local.set $0 @@ -52961,17 +53912,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|045 end end @@ -52983,21 +53934,21 @@ i32.const 4336 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|049 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_s local.set $0 @@ -53005,17 +53956,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4336 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|049 end end @@ -53041,17 +53992,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8Array#__set @@ -53059,21 +54010,21 @@ i32.const 4368 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|051 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_u local.set $0 @@ -53081,17 +54032,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4368 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|051 end end @@ -53103,21 +54054,21 @@ i32.const 4400 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|054 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_u local.set $0 @@ -53125,17 +54076,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4400 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|054 end end @@ -53161,17 +54112,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#__set @@ -53179,21 +54130,21 @@ i32.const 4432 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|058 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_u local.set $0 @@ -53201,17 +54152,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4432 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|058 end end @@ -53223,21 +54174,21 @@ i32.const 4464 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|061 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_u local.set $0 @@ -53245,17 +54196,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4464 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|061 end end @@ -53281,17 +54232,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int16Array#__set @@ -53299,25 +54250,25 @@ i32.const 4496 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|063 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_s local.set $0 @@ -53325,17 +54276,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4496 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|063 end end @@ -53347,25 +54298,25 @@ i32.const 4528 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|066 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_s local.set $0 @@ -53373,17 +54324,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4528 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|066 end end @@ -53409,17 +54360,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint16Array#__set @@ -53427,25 +54378,25 @@ i32.const 4560 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|068 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u local.set $0 @@ -53453,17 +54404,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4560 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|068 end end @@ -53475,25 +54426,25 @@ i32.const 4592 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|071 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u local.set $0 @@ -53501,17 +54452,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4592 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|071 end end @@ -53537,17 +54488,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int32Array#__set @@ -53555,25 +54506,25 @@ i32.const 4624 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|073 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.set $0 @@ -53581,17 +54532,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4624 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|073 end end @@ -53603,25 +54554,25 @@ i32.const 4656 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|076 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.set $0 @@ -53629,17 +54580,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4656 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|076 end end @@ -53665,17 +54616,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint32Array#__set @@ -53683,25 +54634,25 @@ i32.const 4688 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|078 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.set $0 @@ -53709,17 +54660,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4688 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|078 end end @@ -53731,25 +54682,25 @@ i32.const 4720 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|081 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.set $0 @@ -53757,17 +54708,17 @@ global.set $~argumentsLength i32.const 1 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 4720 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|081 end end @@ -53793,17 +54744,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Int64Array#__set @@ -53811,25 +54762,25 @@ i32.const 4752 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|083 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load local.set $9 @@ -53837,17 +54788,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 + local.get $5 local.get $3 - local.get $4 i32.const 4752 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|083 end end @@ -53859,25 +54810,25 @@ i32.const 4784 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.085 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|086 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load local.set $9 @@ -53885,17 +54836,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 + local.get $5 local.get $3 - local.get $4 i32.const 4784 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.085 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|086 end end @@ -53921,17 +54872,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Uint64Array#__set @@ -53939,25 +54890,25 @@ i32.const 4816 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|088 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load local.set $9 @@ -53965,17 +54916,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 + local.get $5 local.get $3 - local.get $4 i32.const 4816 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|088 end end @@ -53987,25 +54938,25 @@ i32.const 4848 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.090 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|091 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load local.set $9 @@ -54013,17 +54964,17 @@ global.set $~argumentsLength i32.const 1 local.get $9 + local.get $5 local.get $3 - local.get $4 i32.const 4848 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.090 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|091 end end @@ -54049,17 +55000,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 6 call $~lib/typedarray/Float32Array#__set @@ -54067,25 +55018,25 @@ i32.const 4880 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|093 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $1 i32.add f32.load local.set $11 @@ -54093,17 +55044,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 + local.get $5 local.get $3 - local.get $4 i32.const 4880 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|093 end end @@ -54115,25 +55066,25 @@ i32.const 4912 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.095 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|096 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $1 i32.add f32.load local.set $11 @@ -54141,17 +55092,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 + local.get $5 local.get $3 - local.get $4 i32.const 4912 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.095 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|096 end end @@ -54177,17 +55128,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 6 call $~lib/typedarray/Float64Array#__set @@ -54195,25 +55146,25 @@ i32.const 4944 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|098 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add f64.load local.set $12 @@ -54221,17 +55172,17 @@ global.set $~argumentsLength i32.const 1 local.get $12 + local.get $5 local.get $3 - local.get $4 i32.const 4944 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|098 end end @@ -54243,25 +55194,25 @@ i32.const 4976 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0100 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0101 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add f64.load local.set $12 @@ -54269,17 +55220,17 @@ global.set $~argumentsLength i32.const 1 local.get $12 + local.get $5 local.get $3 - local.get $4 i32.const 4976 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0100 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0101 end end @@ -54305,17 +55256,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -54324,10 +55275,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 @@ -54337,13 +55288,13 @@ i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5008 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54367,10 +55318,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0105 @@ -54380,13 +55331,13 @@ i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5040 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54424,17 +55375,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -54443,10 +55394,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 @@ -54456,13 +55407,13 @@ i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5072 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54486,10 +55437,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0110 @@ -54499,13 +55450,13 @@ i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5104 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54543,17 +55494,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -54562,10 +55513,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0114 @@ -54575,13 +55526,13 @@ i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5136 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54605,10 +55556,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 @@ -54618,13 +55569,13 @@ i32.lt_s if local.get $1 - local.get $4 + local.get $3 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5168 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54662,17 +55613,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -54681,10 +55632,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -54695,16 +55646,16 @@ local.get $2 i32.lt_s if - local.get $4 local.get $1 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5200 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54728,10 +55679,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -54742,16 +55693,16 @@ local.get $2 i32.lt_s if - local.get $4 local.get $1 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5232 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54789,17 +55740,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -54808,10 +55759,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -54822,16 +55773,16 @@ local.get $2 i32.lt_s if - local.get $4 local.get $1 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5264 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54855,10 +55806,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u @@ -54869,16 +55820,16 @@ local.get $2 i32.lt_s if - local.get $4 local.get $1 i32.const 1 i32.shl + local.get $3 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5296 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54916,17 +55867,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -54935,10 +55886,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -54949,16 +55900,16 @@ local.get $2 i32.lt_s if - local.get $4 local.get $1 i32.const 2 i32.shl + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5328 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -54982,10 +55933,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -54996,16 +55947,16 @@ local.get $2 i32.lt_s if - local.get $4 local.get $1 i32.const 2 i32.shl + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5360 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55043,17 +55994,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -55062,10 +56013,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -55076,16 +56027,16 @@ local.get $2 i32.lt_s if - local.get $4 local.get $1 i32.const 2 i32.shl + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5392 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55109,10 +56060,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=4 - local.set $4 - local.get $5 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -55123,16 +56074,16 @@ local.get $2 i32.lt_s if - local.get $4 local.get $1 i32.const 2 i32.shl + local.get $3 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $5 + local.get $4 i32.const 5424 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55170,17 +56121,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -55189,10 +56140,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -55203,16 +56154,16 @@ local.get $1 i32.gt_s if - local.get $2 local.get $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5456 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -55236,10 +56187,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -55250,16 +56201,16 @@ local.get $1 i32.gt_s if - local.get $2 local.get $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5488 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -55297,17 +56248,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -55316,10 +56267,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -55330,16 +56281,16 @@ local.get $1 i32.gt_s if - local.get $2 local.get $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5520 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -55363,10 +56314,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -55377,16 +56328,16 @@ local.get $1 i32.gt_s if - local.get $2 local.get $1 i32.const 3 i32.shl + local.get $2 i32.add i64.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5552 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) @@ -55424,17 +56375,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -55443,10 +56394,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -55457,16 +56408,16 @@ local.get $1 i32.gt_s if - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5584 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) @@ -55490,10 +56441,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -55504,16 +56455,16 @@ local.get $1 i32.gt_s if - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5616 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) @@ -55551,17 +56502,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -55570,10 +56521,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -55584,16 +56535,16 @@ local.get $1 i32.gt_s if - local.get $2 local.get $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5648 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) @@ -55617,10 +56568,10 @@ i32.store offset=4 i32.const 0 local.set $1 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u @@ -55631,16 +56582,16 @@ local.get $1 i32.gt_s if - local.get $2 local.get $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5680 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) @@ -55678,27 +56629,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5712 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub @@ -55716,7 +56667,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5712 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55738,10 +56689,10 @@ global.get $~lib/memory/__stack_pointer i32.const 5744 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub @@ -55759,7 +56710,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5744 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55797,27 +56748,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 5776 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub @@ -55835,7 +56786,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5776 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55857,10 +56808,10 @@ global.get $~lib/memory/__stack_pointer i32.const 5808 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub @@ -55878,7 +56829,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5808 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55916,27 +56867,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 5840 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub @@ -55954,7 +56905,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5840 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -55976,10 +56927,10 @@ global.get $~lib/memory/__stack_pointer i32.const 5872 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.sub @@ -55997,7 +56948,7 @@ i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5872 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56035,27 +56986,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5904 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -56068,16 +57019,16 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5904 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56099,10 +57050,10 @@ global.get $~lib/memory/__stack_pointer i32.const 5936 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -56115,16 +57066,16 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5936 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56162,27 +57113,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 5968 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -56195,16 +57146,16 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 5968 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56226,10 +57177,10 @@ global.get $~lib/memory/__stack_pointer i32.const 6000 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u @@ -56242,16 +57193,16 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $1 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 6000 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56289,27 +57240,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 6032 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -56322,16 +57273,16 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 6032 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56353,10 +57304,10 @@ global.get $~lib/memory/__stack_pointer i32.const 6064 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -56369,16 +57320,16 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 6064 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56416,27 +57367,27 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $4 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 6096 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -56449,16 +57400,16 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 6096 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56480,10 +57431,10 @@ global.get $~lib/memory/__stack_pointer i32.const 6128 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -56496,16 +57447,16 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $1 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength local.get $1 - local.get $4 + local.get $3 i32.const 6128 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -56576,10 +57527,10 @@ i32.const 0 i32.ge_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add i64.load i32.const 3 @@ -56623,10 +57574,10 @@ i32.const 0 i32.ge_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add i64.load i32.const 3 @@ -56703,10 +57654,10 @@ i32.const 0 i32.ge_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add i64.load i32.const 3 @@ -56750,10 +57701,10 @@ i32.const 0 i32.ge_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add i64.load i32.const 3 @@ -56830,10 +57781,10 @@ i32.const 0 i32.ge_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add f32.load i32.const 3 @@ -56877,10 +57828,10 @@ i32.const 0 i32.ge_s if - local.get $0 local.get $1 i32.const 2 i32.shl + local.get $0 i32.add f32.load i32.const 3 @@ -56957,10 +57908,10 @@ i32.const 0 i32.ge_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add f64.load i32.const 3 @@ -57004,10 +57955,10 @@ i32.const 0 i32.ge_s if - local.get $0 local.get $1 i32.const 3 i32.shl + local.get $0 i32.add f64.load i32.const 3 @@ -57051,17 +58002,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int8Array#__set @@ -57069,21 +58020,21 @@ i32.const 6416 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|0217 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_s local.set $0 @@ -57091,18 +58042,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6416 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0217 end end @@ -57114,21 +58065,21 @@ i32.const 6448 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|0220 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_s local.set $0 @@ -57136,18 +58087,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0220 end end @@ -57173,17 +58124,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8Array#__set @@ -57191,21 +58142,21 @@ i32.const 6480 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|0222 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_u local.set $0 @@ -57213,18 +58164,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0222 end end @@ -57236,21 +58187,21 @@ i32.const 6512 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|0225 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_u local.set $0 @@ -57258,18 +58209,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0225 end end @@ -57295,17 +58246,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#__set @@ -57313,21 +58264,21 @@ i32.const 6544 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|0229 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_u local.set $0 @@ -57335,18 +58286,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0229 end end @@ -57358,21 +58309,21 @@ i32.const 6576 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 local.set $1 loop $for-loop|0232 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_u local.set $0 @@ -57380,18 +58331,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0232 end end @@ -57417,17 +58368,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int16Array#__set @@ -57435,25 +58386,25 @@ i32.const 6608 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|0234 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_s local.set $0 @@ -57461,18 +58412,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0234 end end @@ -57484,25 +58435,25 @@ i32.const 6640 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|0237 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_s local.set $0 @@ -57510,18 +58461,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0237 end end @@ -57547,17 +58498,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint16Array#__set @@ -57565,25 +58516,25 @@ i32.const 6672 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|0239 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u local.set $0 @@ -57591,18 +58542,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0239 end end @@ -57614,25 +58565,25 @@ i32.const 6704 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|0242 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u local.set $0 @@ -57640,18 +58591,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0242 end end @@ -57677,17 +58628,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Int32Array#__set @@ -57695,25 +58646,25 @@ i32.const 6736 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|0244 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.set $0 @@ -57721,18 +58672,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0244 end end @@ -57744,25 +58695,25 @@ i32.const 6768 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|0247 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.set $0 @@ -57770,18 +58721,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6768 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0247 end end @@ -57807,17 +58758,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 6 call $~lib/typedarray/Uint32Array#__set @@ -57825,25 +58776,25 @@ i32.const 6800 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|0249 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.set $0 @@ -57851,18 +58802,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6800 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0249 end end @@ -57874,25 +58825,25 @@ i32.const 6832 i32.store offset=4 i32.const 0 - local.set $3 + local.set $6 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 (result i32) - local.get $5 + local.get $4 i32.load offset=4 local.set $2 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|0252 local.get $1 - local.get $3 + local.get $6 i32.gt_s if - local.get $2 - local.get $3 + local.get $6 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.set $0 @@ -57900,18 +58851,18 @@ global.set $~argumentsLength i32.const 0 local.get $0 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 drop - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0252 end end @@ -57937,17 +58888,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Int64Array#__set @@ -57955,25 +58906,25 @@ i32.const 6864 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0254 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load local.set $9 @@ -57981,18 +58932,18 @@ global.set $~argumentsLength i32.const 0 local.get $9 + local.get $5 local.get $3 - local.get $4 i32.const 6864 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0254 end end @@ -58004,25 +58955,25 @@ i32.const 6896 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0257 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load local.set $9 @@ -58030,18 +58981,18 @@ global.set $~argumentsLength i32.const 0 local.get $9 + local.get $5 local.get $3 - local.get $4 i32.const 6896 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0257 end end @@ -58067,17 +59018,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 1 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $4 + local.get $3 i32.const 2 i64.const 6 call $~lib/typedarray/Uint64Array#__set @@ -58085,25 +59036,25 @@ i32.const 6928 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0259 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load local.set $9 @@ -58111,18 +59062,18 @@ global.set $~argumentsLength i32.const 0 local.get $9 + local.get $5 local.get $3 - local.get $4 i32.const 6928 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0259 end end @@ -58134,25 +59085,25 @@ i32.const 6960 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0262 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load local.set $9 @@ -58160,18 +59111,18 @@ global.set $~argumentsLength i32.const 0 local.get $9 + local.get $5 local.get $3 - local.get $4 i32.const 6960 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0262 end end @@ -58197,17 +59148,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 1 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $4 + local.get $3 i32.const 2 f32.const 6 call $~lib/typedarray/Float32Array#__set @@ -58215,25 +59166,25 @@ i32.const 6992 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|0264 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $1 i32.add f32.load local.set $11 @@ -58241,18 +59192,18 @@ global.set $~argumentsLength i32.const 0 local.get $11 + local.get $5 local.get $3 - local.get $4 i32.const 6992 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0264 end end @@ -58264,25 +59215,25 @@ i32.const 7024 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $0 loop $for-loop|0267 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $1 i32.add f32.load local.set $11 @@ -58290,18 +59241,18 @@ global.set $~argumentsLength i32.const 0 local.get $11 + local.get $5 local.get $3 - local.get $4 i32.const 7024 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0267 end end @@ -58327,17 +59278,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 0 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 1 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $4 + local.get $3 i32.const 2 f64.const 6 call $~lib/typedarray/Float64Array#__set @@ -58345,25 +59296,25 @@ i32.const 7056 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0269 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add f64.load local.set $12 @@ -58371,18 +59322,18 @@ global.set $~argumentsLength i32.const 0 local.get $12 + local.get $5 local.get $3 - local.get $4 i32.const 7056 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0269 end end @@ -58394,25 +59345,25 @@ i32.const 7088 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 (result i32) - local.get $4 + local.get $3 i32.load offset=4 local.set $1 - local.get $4 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $0 loop $for-loop|0272 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add f64.load local.set $12 @@ -58420,18 +59371,18 @@ global.set $~argumentsLength i32.const 0 local.get $12 + local.get $5 local.get $3 - local.get $4 i32.const 7088 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0272 end end @@ -58462,14 +59413,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -58479,7 +59430,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -58489,7 +59440,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -58500,33 +59451,33 @@ i32.const 7200 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 loop $for-loop|054274 local.get $1 - local.get $3 + local.get $5 i32.gt_s if local.get $2 - local.get $3 + local.get $5 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength + local.get $5 local.get $3 - local.get $4 i32.const 7200 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|054274 end end @@ -58558,14 +59509,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -58576,7 +59527,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -58587,7 +59538,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -58599,33 +59550,33 @@ i32.const 7232 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 loop $for-loop|056 local.get $1 - local.get $3 + local.get $5 i32.gt_s if local.get $2 - local.get $3 + local.get $5 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength + local.get $5 local.get $3 - local.get $4 i32.const 7232 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|056 end end @@ -58657,14 +59608,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -58675,7 +59626,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -58686,7 +59637,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -58698,33 +59649,33 @@ i32.const 7264 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 local.set $1 loop $for-loop|059 local.get $1 - local.get $3 + local.get $5 i32.gt_s if local.get $2 - local.get $3 + local.get $5 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength + local.get $5 local.get $3 - local.get $4 i32.const 7264 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|059 end end @@ -58756,14 +59707,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -58773,7 +59724,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -58783,7 +59734,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -58794,37 +59745,37 @@ i32.const 7296 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|061278 local.get $1 - local.get $3 + local.get $5 i32.gt_s if - local.get $2 - local.get $3 + local.get $5 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_s i32.const 3 global.set $~argumentsLength + local.get $5 local.get $3 - local.get $4 i32.const 7296 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|061278 end end @@ -58856,14 +59807,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -58874,7 +59825,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -58885,7 +59836,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -58897,37 +59848,37 @@ i32.const 7328 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u local.set $1 loop $for-loop|063280 local.get $1 - local.get $3 + local.get $5 i32.gt_s if - local.get $2 - local.get $3 + local.get $5 i32.const 1 i32.shl + local.get $2 i32.add i32.load16_u i32.const 3 global.set $~argumentsLength + local.get $5 local.get $3 - local.get $4 i32.const 7328 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|063280 end end @@ -58959,14 +59910,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -58975,7 +59926,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -58984,7 +59935,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -58994,37 +59945,37 @@ i32.const 7360 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|065 local.get $1 - local.get $3 + local.get $5 i32.gt_s if - local.get $2 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $5 local.get $3 - local.get $4 i32.const 7360 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|065 end end @@ -59056,14 +60007,14 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 @@ -59072,7 +60023,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 @@ -59081,7 +60032,7 @@ global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $4 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 @@ -59091,37 +60042,37 @@ i32.const 7392 i32.store offset=8 i32.const 0 - local.set $3 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 loop $for-loop|067 local.get $1 - local.get $3 + local.get $5 i32.gt_s if - local.get $2 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $2 i32.add i32.load i32.const 3 global.set $~argumentsLength + local.get $5 local.get $3 - local.get $4 i32.const 7392 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|067 end end @@ -59191,7 +60142,7 @@ i32.const 7424 i32.store offset=8 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -59202,26 +60153,26 @@ local.set $0 loop $for-loop|069 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $2 i32.const 7424 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|069 end end @@ -59291,7 +60242,7 @@ i32.const 7456 i32.store offset=8 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -59302,26 +60253,26 @@ local.set $0 loop $for-loop|071285 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $2 i32.const 7456 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|071285 end end @@ -59391,7 +60342,7 @@ i32.const 7488 i32.store offset=8 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -59402,26 +60353,26 @@ local.set $0 loop $for-loop|073287 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $1 i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $2 i32.const 7488 i32.load call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|073287 end end @@ -59491,7 +60442,7 @@ i32.const 7520 i32.store offset=8 i32.const 0 - local.set $3 + local.set $5 local.get $2 i32.load offset=4 local.set $1 @@ -59502,26 +60453,26 @@ local.set $0 loop $for-loop|075 local.get $0 - local.get $3 + local.get $5 i32.gt_s if - local.get $1 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $1 i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $2 i32.const 7520 i32.load call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|075 end end @@ -59558,9 +60509,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float64Array#constructor - local.tee $5 + local.tee $4 i32.store offset=12 - local.get $5 + local.get $4 i32.const 0 f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set @@ -59569,29 +60520,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $5 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $5 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 3 i32.shl + local.get $2 i32.add f64.load f64.const nan:0x8000000000000 @@ -59619,10 +60570,10 @@ unreachable end i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) i32.const 0 - local.get $5 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u @@ -59633,20 +60584,20 @@ i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $5 + local.get $4 i32.load offset=4 local.set $0 loop $while-continue|0289 local.get $1 - local.get $3 + local.get $5 i32.gt_s if i32.const 1 i32.const 1 - local.get $0 - local.get $3 + local.get $5 i32.const 3 i32.shl + local.get $0 i32.add f64.load local.tee $12 @@ -59658,10 +60609,10 @@ select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $while-continue|0289 end end @@ -59679,9 +60630,9 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float32Array#constructor - local.tee $5 + local.tee $4 i32.store offset=24 - local.get $5 + local.get $4 i32.const 0 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set @@ -59690,29 +60641,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $5 + local.get $4 i32.load offset=4 local.set $2 loop $while-continue|0290 local.get $0 - local.get $4 + local.get $3 i32.lt_s if - local.get $2 local.get $0 local.tee $1 i32.const 2 i32.shl + local.get $2 i32.add f32.load f32.const nan:0x400000 @@ -59740,10 +60691,10 @@ unreachable end i32.const 0 - local.set $3 + local.set $5 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) i32.const 0 - local.get $5 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -59754,20 +60705,20 @@ i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $5 + local.get $4 i32.load offset=4 local.set $0 loop $while-continue|078 local.get $1 - local.get $3 + local.get $5 i32.gt_s if i32.const 1 i32.const 1 - local.get $0 - local.get $3 + local.get $5 i32.const 2 i32.shl + local.get $0 i32.add f32.load local.tee $11 @@ -59779,10 +60730,10 @@ select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $while-continue|078 end end @@ -59815,42 +60766,41 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/typedarray/Int8Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -59870,7 +60820,7 @@ local.get $0 i32.const 9584 i32.store - local.get $2 + local.get $1 call $~lib/typedarray/Int8Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -59911,47 +60861,46 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/typedarray/Uint8Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 - local.get $2 + local.get $1 call $~lib/typedarray/Uint8Array#toString local.set $1 global.get $~lib/memory/__stack_pointer @@ -59988,47 +60937,46 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/typedarray/Uint8Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz br_if $folding-inner15 - local.get $2 + local.get $1 call $~lib/typedarray/Uint8Array#toString local.set $1 global.get $~lib/memory/__stack_pointer @@ -60065,42 +61013,41 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/typedarray/Int16Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60120,7 +61067,7 @@ local.get $0 i32.const 9584 i32.store - local.get $2 + local.get $1 call $~lib/typedarray/Int16Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60161,42 +61108,41 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint16Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/typedarray/Uint16Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60216,7 +61162,7 @@ local.get $0 i32.const 9584 i32.store - local.get $2 + local.get $1 call $~lib/typedarray/Uint16Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60257,42 +61203,41 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/typedarray/Int32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60312,7 +61257,7 @@ local.get $0 i32.const 9584 i32.store - local.get $2 + local.get $1 call $~lib/typedarray/Int32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60353,42 +61298,41 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint32Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/typedarray/Uint32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60408,7 +61352,7 @@ local.get $0 i32.const 9584 i32.store - local.get $2 + local.get $1 call $~lib/typedarray/Uint32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60449,47 +61393,41 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $1 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $1 i32.const 4 i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 - i32.load offset=4 - local.get $2 - i32.load offset=8 - i32.const 3 - i32.shr_u - call $~lib/util/string/joinIntegerArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $0 local.get $1 - i32.store offset=4 + call $~lib/typedarray/Int64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60509,13 +61447,8 @@ local.get $0 i32.const 9584 i32.store - local.get $2 - i32.load offset=4 - local.get $2 - i32.load offset=8 - i32.const 3 - i32.shr_u - call $~lib/util/string/joinIntegerArray + local.get $1 + call $~lib/typedarray/Int64Array#join local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -60555,42 +61488,41 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $1 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $1 i32.const 4 i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/typedarray/Uint64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60610,7 +61542,7 @@ local.get $0 i32.const 9584 i32.store - local.get $2 + local.get $1 call $~lib/typedarray/Uint64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60651,42 +61583,41 @@ local.get $0 i32.const 5 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $1 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $1 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $1 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $1 i32.const 4 f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/typedarray/Float32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 10800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz @@ -60706,7 +61637,7 @@ local.get $0 i32.const 9584 i32.store - local.get $2 + local.get $1 call $~lib/typedarray/Float32Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60747,42 +61678,41 @@ local.get $0 i32.const 5 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $1 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $1 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $1 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $1 i32.const 4 f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $2 + local.get $1 call $~lib/typedarray/Float64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 10800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz @@ -60802,7 +61732,7 @@ local.get $0 i32.const 9584 i32.store - local.get $2 + local.get $1 call $~lib/typedarray/Float64Array#join local.set $1 global.get $~lib/memory/__stack_pointer @@ -60897,13 +61827,13 @@ local.get $0 i32.const 10940 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Int8Array#constructor local.tee $6 i32.store offset=4 loop $for-loop|028 local.get $2 - local.get $4 + local.get $3 i32.lt_s if local.get $6 @@ -60933,21 +61863,18 @@ local.get $6 i32.load i32.sub + local.tee $0 + local.get $0 local.get $6 i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -60959,7 +61886,7 @@ local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -60971,29 +61898,28 @@ local.tee $1 i32.store local.get $1 - local.get $5 + local.get $4 i32.store local.get $1 - local.get $5 + local.get $4 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $5 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $1 i32.store offset=16 i32.const 0 local.set $2 loop $for-loop|1 local.get $2 - local.get $4 + local.get $3 i32.lt_s if local.get $6 @@ -61043,14 +61969,14 @@ i32.load local.tee $2 call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + local.tee $3 i32.store offset=4 loop $for-loop|030 local.get $1 local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $1 i32.const 10928 local.get $1 @@ -61067,24 +61993,21 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $4 + local.get $3 i32.load local.tee $0 i32.store offset=8 local.get $1 local.get $0 - local.get $4 + local.get $3 i32.load offset=4 - local.get $4 + local.get $3 i32.load i32.sub - local.get $4 + local.tee $0 + local.get $0 + local.get $3 i32.load offset=8 - local.get $4 - i32.load offset=4 - local.get $4 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $0 @@ -61104,7 +62027,7 @@ local.get $2 i32.lt_s if - local.get $4 + local.get $3 local.get $1 call $~lib/typedarray/Uint8Array#__get local.get $0 @@ -61149,13 +62072,13 @@ local.get $0 i32.const 10940 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $6 i32.store offset=4 loop $for-loop|034 local.get $2 - local.get $4 + local.get $3 i32.lt_s if local.get $6 @@ -61186,21 +62109,18 @@ local.get $6 i32.load i32.sub + local.tee $0 + local.get $0 local.get $6 i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $5 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $2 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -61212,7 +62132,7 @@ local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -61224,29 +62144,28 @@ local.tee $1 i32.store local.get $1 - local.get $5 + local.get $4 i32.store local.get $1 - local.get $5 + local.get $4 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $5 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $1 i32.store offset=16 i32.const 0 local.set $2 loop $for-loop|135 local.get $2 - local.get $4 + local.get $3 i32.lt_s if local.get $6 @@ -61330,21 +62249,18 @@ local.get $6 i32.load i32.sub + local.tee $0 + local.get $0 local.get $6 i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -61355,7 +62271,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -61367,26 +62283,25 @@ i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 local.get $4 + local.get $3 i32.store - local.get $5 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 @@ -61398,7 +62313,7 @@ local.get $6 local.get $1 call $~lib/typedarray/Int16Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Int16Array#__get i32.ne @@ -61477,21 +62392,18 @@ local.get $6 i32.load i32.sub + local.tee $0 + local.get $0 local.get $6 i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -61502,7 +62414,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -61514,26 +62426,25 @@ i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 local.get $4 + local.get $3 i32.store - local.get $5 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 @@ -61545,7 +62456,7 @@ local.get $6 local.get $1 call $~lib/typedarray/Uint16Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Uint16Array#__get i32.ne @@ -61622,21 +62533,18 @@ local.get $6 i32.load i32.sub + local.tee $0 + local.get $0 local.get $6 i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -61647,7 +62555,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -61659,26 +62567,25 @@ i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 local.get $4 + local.get $3 i32.store - local.get $5 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 @@ -61690,7 +62597,7 @@ local.get $6 local.get $1 call $~lib/typedarray/Int32Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Int32Array#__get i32.ne @@ -61767,21 +62674,18 @@ local.get $6 i32.load i32.sub + local.tee $0 + local.get $0 local.get $6 i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -61792,7 +62696,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -61804,26 +62708,25 @@ i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 local.get $4 + local.get $3 i32.store - local.get $5 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 @@ -61835,7 +62738,7 @@ local.get $6 local.get $1 call $~lib/typedarray/Uint32Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Uint32Array#__get i32.ne @@ -61913,21 +62816,18 @@ local.get $6 i32.load i32.sub + local.tee $0 + local.get $0 local.get $6 i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -61938,7 +62838,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -61950,26 +62850,25 @@ i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 local.get $4 + local.get $3 i32.store - local.get $5 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 @@ -61981,7 +62880,7 @@ local.get $6 local.get $1 call $~lib/typedarray/Int64Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Int64Array#__get i64.ne @@ -62059,21 +62958,18 @@ local.get $6 i32.load i32.sub + local.tee $0 + local.get $0 local.get $6 i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -62084,7 +62980,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -62096,26 +62992,25 @@ i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 local.get $4 + local.get $3 i32.store - local.get $5 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 @@ -62127,7 +63022,7 @@ local.get $6 local.get $1 call $~lib/typedarray/Uint64Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Uint64Array#__get i64.ne @@ -62205,21 +63100,18 @@ local.get $6 i32.load i32.sub + local.tee $0 + local.get $0 local.get $6 i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -62230,7 +63122,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -62242,26 +63134,25 @@ i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 local.get $4 + local.get $3 i32.store - local.get $5 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 @@ -62273,7 +63164,7 @@ local.get $6 local.get $1 call $~lib/typedarray/Float32Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Float32Array#__get f32.ne @@ -62351,21 +63242,18 @@ local.get $6 i32.load i32.sub + local.tee $0 + local.get $0 local.get $6 i32.load offset=8 - local.get $6 - i32.load offset=4 - local.get $6 - i32.load - i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -62376,7 +63264,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -62388,26 +63276,25 @@ i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 local.get $4 + local.get $3 i32.store - local.get $5 local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 local.get $0 i32.store offset=8 - local.get $5 local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $5 + local.get $4 i32.store offset=16 i32.const 0 local.set $1 @@ -62419,7 +63306,7 @@ local.get $6 local.get $1 call $~lib/typedarray/Float64Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/typedarray/Float64Array#__get f64.ne @@ -62449,8 +63336,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 - local.tee $8 + local.tee $7 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 3 @@ -62472,21 +63358,21 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $7 + local.tee $5 i32.store offset=8 - local.get $7 + local.get $5 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $7 + local.get $5 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set @@ -62503,7 +63389,7 @@ i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $8 + local.get $7 i32.load offset=8 local.get $1 i32.load offset=8 @@ -62513,14 +63399,14 @@ i32.add i32.lt_s br_if $folding-inner19 - local.get $8 + local.get $7 i32.load offset=4 i32.const 1 i32.add - local.set $5 + local.set $4 local.get $1 i32.load offset=4 - local.set $4 + local.set $3 local.get $1 i32.load offset=8 i32.const 2 @@ -62531,13 +63417,13 @@ local.get $16 i32.gt_s if - local.get $5 + local.get $4 local.get $16 i32.add - local.get $4 local.get $16 i32.const 2 i32.shl + local.get $3 i32.add f32.load local.tee $11 @@ -62563,13 +63449,13 @@ br $for-loop|082 end end - local.get $8 local.get $7 + local.get $5 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 0 - local.set $3 - local.get $8 + local.set $6 + local.get $7 i32.load offset=8 local.get $0 i32.load offset=8 @@ -62579,7 +63465,7 @@ i32.add i32.lt_s br_if $folding-inner19 - local.get $8 + local.get $7 i32.load offset=4 i32.const 8 i32.add @@ -62592,39 +63478,39 @@ i32.const 2 i32.shr_u local.set $0 - loop $for-loop|086312 + loop $for-loop|086311 local.get $0 - local.get $3 + local.get $6 i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add - local.get $1 - local.get $3 + local.get $6 i32.const 2 i32.shl + local.get $1 i32.add i32.load - local.tee $4 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - local.get $4 + local.tee $3 i32.const 255 - local.get $4 + local.get $3 i32.sub i32.const 31 i32.shr_s i32.or + local.get $3 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor i32.and i32.store8 - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 - br $for-loop|086312 + local.set $6 + br $for-loop|086311 end end i32.const 10 @@ -62636,7 +63522,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $8 + local.get $7 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer @@ -62663,27 +63549,27 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int16Array#constructor - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 0 i32.const -10 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 2 i32.const 10 call $~lib/typedarray/Int16Array#__set - local.get $5 + local.get $4 i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set i32.const 0 - local.set $3 - local.get $8 + local.set $6 + local.get $7 i32.load offset=8 local.get $0 i32.load offset=8 @@ -62691,9 +63577,9 @@ i32.shr_u i32.lt_s br_if $folding-inner19 - local.get $8 + local.get $7 i32.load offset=4 - local.set $4 + local.set $3 local.get $0 i32.load offset=4 local.set $2 @@ -62704,17 +63590,17 @@ local.set $1 loop $for-loop|090 local.get $1 - local.get $3 + local.get $6 i32.gt_s if local.get $3 - local.get $4 + local.get $6 i32.add i32.const 255 - local.get $2 - local.get $3 + local.get $6 i32.const 2 i32.shl + local.get $2 i32.add i32.load local.tee $0 @@ -62723,15 +63609,15 @@ i32.gt_u select i32.store8 - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|090 end end - local.get $8 - local.get $5 + local.get $7 + local.get $4 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> i32.const 10 @@ -62743,7 +63629,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $6 + local.get $7 local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 @@ -62783,7 +63669,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -62818,7 +63704,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store offset=4 local.get $2 @@ -62907,7 +63792,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -62942,7 +63827,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store offset=4 local.get $2 @@ -63031,7 +63915,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -63066,7 +63950,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store offset=4 local.get $2 @@ -63155,7 +64038,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -63192,7 +64075,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store offset=4 local.get $2 @@ -63283,7 +64165,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -63320,7 +64202,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store offset=4 local.get $2 @@ -63411,7 +64292,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -63448,7 +64329,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store offset=4 local.get $2 @@ -63539,7 +64419,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -63576,7 +64456,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store offset=4 local.get $2 @@ -63667,7 +64546,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -63704,7 +64583,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store offset=4 local.get $2 @@ -63795,7 +64673,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -63832,7 +64710,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store offset=4 local.get $2 @@ -63923,7 +64800,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -63960,7 +64837,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store offset=4 local.get $2 @@ -64403,11 +65279,11 @@ local.get $0 i32.const 0 i32.store offset=8 - local.get $1 i32.const 1073741820 local.get $2 i32.shr_u - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1056 i32.const 1104 @@ -65431,6 +66307,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -65447,39 +66324,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i32.const 0 i32.store + i32.const 4 local.get $0 + local.tee $2 i32.load offset=8 - local.set $3 - local.get $2 + local.tee $3 + local.get $3 + i32.const 4 + i32.gt_s + select + local.set $4 + local.get $5 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 i32.load - local.tee $4 + local.tee $5 i32.store - local.get $2 - local.get $4 + local.get $0 + local.get $5 call $~lib/rt/itcms/__link - local.get $2 - i32.const 4 - local.get $3 - local.get $3 - i32.const 4 - i32.gt_s - select - local.tee $4 local.get $0 + local.get $4 + local.get $2 i32.load offset=4 i32.add i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.const 0 i32.lt_s @@ -65487,9 +66365,9 @@ local.get $1 local.get $3 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -65501,9 +66379,9 @@ i32.lt_s select end - local.tee $0 + local.tee $1 local.get $4 - local.get $0 + local.get $1 local.get $4 i32.gt_s select @@ -65514,12 +66392,13 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -65536,39 +66415,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i32.const 0 i32.store + i32.const 4 local.get $0 + local.tee $2 i32.load offset=8 - local.set $3 - local.get $2 + local.tee $3 + local.get $3 + i32.const 4 + i32.gt_s + select + local.set $4 + local.get $5 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 i32.load - local.tee $4 + local.tee $5 i32.store - local.get $2 - local.get $4 + local.get $0 + local.get $5 call $~lib/rt/itcms/__link - local.get $2 - i32.const 4 - local.get $3 - local.get $3 - i32.const 4 - i32.gt_s - select - local.tee $4 local.get $0 + local.get $4 + local.get $2 i32.load offset=4 i32.add i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.const 0 i32.lt_s @@ -65576,9 +66456,9 @@ local.get $1 local.get $3 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -65590,9 +66470,9 @@ i32.lt_s select end - local.tee $0 + local.tee $1 local.get $4 - local.get $0 + local.get $1 local.get $4 i32.gt_s select @@ -65603,7 +66483,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65625,30 +66505,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store local.get $0 + local.tee $2 i32.load offset=8 i32.const 1 i32.shr_u local.set $3 - local.get $2 + local.get $4 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 i32.load local.tee $4 i32.store - local.get $2 + local.get $0 local.get $4 call $~lib/rt/itcms/__link - local.get $2 local.get $0 + local.get $2 i32.load offset=4 i32.const 4 local.get $3 @@ -65656,12 +66537,12 @@ i32.const 4 i32.gt_u select - local.tee $0 + local.tee $2 i32.const 1 i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.const 0 i32.lt_s @@ -65684,12 +66565,12 @@ select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select - local.get $0 + local.get $2 i32.sub i32.const 1 i32.shl @@ -65698,7 +66579,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65720,30 +66601,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store local.get $0 + local.tee $2 i32.load offset=8 i32.const 1 i32.shr_u local.set $3 - local.get $2 + local.get $4 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 i32.load local.tee $4 i32.store - local.get $2 + local.get $0 local.get $4 call $~lib/rt/itcms/__link - local.get $2 local.get $0 + local.get $2 i32.load offset=4 i32.const 4 local.get $3 @@ -65751,12 +66633,12 @@ i32.const 4 i32.gt_u select - local.tee $0 + local.tee $2 i32.const 1 i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.const 0 i32.lt_s @@ -65779,12 +66661,12 @@ select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select - local.get $0 + local.get $2 i32.sub i32.const 1 i32.shl @@ -65793,7 +66675,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/typedarray/Uint32Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65815,30 +66697,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store local.get $0 + local.tee $2 i32.load offset=8 i32.const 2 i32.shr_u local.set $3 - local.get $2 + local.get $4 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 i32.load local.tee $4 i32.store - local.get $2 + local.get $0 local.get $4 call $~lib/rt/itcms/__link - local.get $2 local.get $0 + local.get $2 i32.load offset=4 i32.const 4 local.get $3 @@ -65846,12 +66729,12 @@ i32.const 4 i32.gt_u select - local.tee $0 + local.tee $2 i32.const 2 i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.const 0 i32.lt_s @@ -65874,12 +66757,12 @@ select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select - local.get $0 + local.get $2 i32.sub i32.const 2 i32.shl @@ -65888,7 +66771,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/typedarray/Int64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65910,30 +66793,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store local.get $0 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $3 - local.get $2 + local.get $4 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 i32.load local.tee $4 i32.store - local.get $2 + local.get $0 local.get $4 call $~lib/rt/itcms/__link - local.get $2 local.get $0 + local.get $2 i32.load offset=4 i32.const 4 local.get $3 @@ -65941,12 +66825,12 @@ i32.const 4 i32.gt_u select - local.tee $0 + local.tee $2 i32.const 3 i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.const 0 i32.lt_s @@ -65969,12 +66853,12 @@ select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select - local.get $0 + local.get $2 i32.sub i32.const 3 i32.shl @@ -65983,7 +66867,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/typedarray/Uint64Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -66005,30 +66889,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store local.get $0 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u local.set $3 - local.get $2 + local.get $4 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 i32.load local.tee $4 i32.store - local.get $2 + local.get $0 local.get $4 call $~lib/rt/itcms/__link - local.get $2 local.get $0 + local.get $2 i32.load offset=4 i32.const 4 local.get $3 @@ -66036,12 +66921,12 @@ i32.const 4 i32.gt_u select - local.tee $0 + local.tee $2 i32.const 3 i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.const 0 i32.lt_s @@ -66064,12 +66949,12 @@ select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select - local.get $0 + local.get $2 i32.sub i32.const 3 i32.shl @@ -66078,7 +66963,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/typedarray/Float32Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -66100,30 +66985,31 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i32.const 0 i32.store local.get $0 + local.tee $2 i32.load offset=8 i32.const 2 i32.shr_u local.set $3 - local.get $2 + local.get $4 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 + local.get $2 i32.load local.tee $4 i32.store - local.get $2 + local.get $0 local.get $4 call $~lib/rt/itcms/__link - local.get $2 local.get $0 + local.get $2 i32.load offset=4 i32.const 4 local.get $3 @@ -66131,12 +67017,12 @@ i32.const 4 i32.gt_u select - local.tee $0 + local.tee $2 i32.const 2 i32.shl i32.add i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.const 0 i32.lt_s @@ -66159,12 +67045,12 @@ select end local.tee $1 - local.get $0 - local.get $0 + local.get $2 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select - local.get $0 + local.get $2 i32.sub i32.const 2 i32.shl @@ -66173,7 +67059,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/util/number/itoa32 (param $0 i32) (result i32) (local $1 i32) @@ -66320,8 +67206,6 @@ i32.shr_u local.tee $2 local.get $2 - i32.const 0 - i32.gt_s select local.tee $3 local.get $1 @@ -66339,22 +67223,23 @@ local.tee $1 local.get $1 local.get $3 - i32.lt_s + i32.gt_s select i32.const 1 i32.shl - local.tee $4 + local.set $4 local.get $3 local.get $1 local.get $1 local.get $3 - i32.gt_s + i32.lt_s select i32.const 1 i32.shl - local.tee $1 - i32.sub local.tee $3 + local.get $4 + i32.sub + local.tee $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -66365,12 +67250,12 @@ return end i32.const 0 - local.get $4 local.get $2 i32.const 1 i32.shl + local.get $3 i32.eq - local.get $1 + local.get $4 select if global.get $~lib/memory/__stack_pointer @@ -66381,16 +67266,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 1 call $~lib/rt/itcms/__new local.tee $2 i32.store local.get $2 local.get $0 - local.get $1 + local.get $4 i32.add - local.get $3 + local.get $1 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -66494,334 +67379,6 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 1 - i32.sub - local.tee $7 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7776 - return - end - local.get $7 - i32.eqz - if - local.get $0 - i64.load - i64.extend32_s - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa64 - local.get $3 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8000 - local.set $1 - br $__inlined_func$~lib/util/number/itoa64 - end - i64.const 0 - local.get $3 - i64.sub - local.get $3 - local.get $3 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $4 - select - local.tee $3 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.wrap_i64 - local.tee $5 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.get $4 - i32.add - local.tee $0 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $5 - local.get $0 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $3 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $3 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $3 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $3 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $3 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $3 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $3 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $3 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.get $4 - i32.add - local.tee $0 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $3 - local.get $0 - call $~lib/util/number/utoa64_dec_lut - end - local.get $4 - if - local.get $1 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 21 - i32.add - i32.mul - i32.const 21 - i32.add - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - loop $for-loop|0 - local.get $5 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $4 - if - local.get $6 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $1 - local.get $6 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $7 - i32.const 3 - i32.shl - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - local.get $6 - local.get $0 - call $~lib/string/String#substring - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $~lib/util/number/dtoa (param $0 f64) (result i32) (local $1 i32) (local $2 i32) diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index a9fae139e6..12bf7c5bbe 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -218,8 +218,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -279,11 +279,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -297,10 +297,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 4336 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1376 i32.const 1440 @@ -337,11 +337,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -402,19 +402,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -480,22 +480,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -743,13 +745,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -786,11 +791,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1520 @@ -814,11 +819,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1520 @@ -1201,8 +1206,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1364,12 +1368,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1385,20 +1389,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1406,15 +1410,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1425,13 +1430,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1439,34 +1444,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1480,16 +1485,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1497,18 +1502,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1520,11 +1525,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1520 @@ -1533,13 +1538,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1552,54 +1558,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1609,33 +1616,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1651,18 +1659,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1671,18 +1679,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1691,10 +1699,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1703,20 +1711,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1731,10 +1739,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1751,16 +1759,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1783,8 +1791,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1831,6 +1839,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1875,17 +1885,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1910,9 +1932,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -1990,31 +2016,39 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $2 - i32.const 3 - i32.sub - local.set $2 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 + local.get $2 + i32.const 3 + i32.sub + local.set $2 loop $while-continue|3 local.get $2 i32.const 17 @@ -2022,7 +2056,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2032,8 +2068,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2041,10 +2081,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2052,10 +2096,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2063,7 +2111,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2089,19 +2137,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2113,7 +2165,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2123,8 +2177,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2132,10 +2190,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2143,10 +2205,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2154,7 +2220,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2200,7 +2266,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2210,8 +2278,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2219,10 +2291,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2230,10 +2306,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2241,7 +2321,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2268,145 +2348,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2417,73 +2529,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2494,37 +2622,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2535,19 +2671,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2811,15 +2951,15 @@ local.set $3 loop $while-continue|0 local.get $1 - local.get $7 + local.get $6 i32.gt_u if block $while-break|0 - local.get $7 + local.get $6 local.set $5 loop $do-continue|1 block $do-break|1 - local.get $7 + local.get $6 i32.const 1 i32.shl local.get $0 @@ -2839,21 +2979,21 @@ i32.load8_u br_if $do-break|1 local.get $1 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $7 + local.tee $6 i32.gt_u br_if $do-continue|1 end end local.get $5 - local.get $7 + local.get $6 i32.lt_u if local.get $9 - local.get $6 local.get $7 + local.get $6 local.get $5 i32.sub i32.const 1 @@ -2863,7 +3003,7 @@ i32.lt_u if local.get $3 - local.get $6 + local.get $7 local.get $8 i32.add local.tee $9 @@ -2871,7 +3011,7 @@ local.set $3 end local.get $3 - local.get $6 + local.get $7 i32.add local.get $5 i32.const 1 @@ -2880,18 +3020,15 @@ i32.add local.get $8 call $~lib/memory/memory.copy - local.get $6 + local.get $7 local.get $8 i32.add - local.set $6 + local.set $7 local.get $1 - local.get $7 + local.get $6 i32.le_u br_if $while-break|0 end - local.get $9 - i32.const 6 - i32.const 24 local.get $4 i32.const 55296 i32.ge_u @@ -2917,7 +3054,7 @@ i32.le_u if (result i32) local.get $1 - local.get $7 + local.get $6 i32.le_u if i32.const 1584 @@ -2928,10 +3065,10 @@ unreachable end i32.const 1 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $7 + local.tee $6 i32.const 1 i32.shl local.get $0 @@ -2968,21 +3105,24 @@ end local.set $4 end + local.get $9 + local.get $7 + local.tee $5 + i32.const 6 + i32.const 24 local.get $4 i32.const 128 i32.lt_u select - local.get $6 - local.tee $5 i32.add - local.tee $6 + local.tee $7 i32.lt_u if local.get $3 - local.get $6 + local.get $7 i32.const 1 i32.shl - local.get $6 + local.get $7 local.get $1 i32.const 1 i32.gt_u @@ -2998,10 +3138,11 @@ local.get $3 local.get $5 i32.add - local.tee $6 i32.const 37 i32.store16 - local.get $6 + local.get $3 + local.get $5 + i32.add local.get $4 i32.const 4 i32.shr_u @@ -3032,16 +3173,17 @@ local.get $3 local.get $5 i32.add - local.tee $6 i32.const 37 i32.store16 - local.get $6 + local.get $3 + local.get $5 + i32.add local.get $4 i32.const 6 i32.shr_u i32.const 192 i32.or - local.tee $8 + local.tee $7 i32.const 4 i32.shr_u i32.const 15 @@ -3049,7 +3191,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $8 + local.get $7 i32.const 15 i32.and i32.const 1676 @@ -3067,20 +3209,21 @@ local.get $4 i32.const 65536 i32.lt_u - if + if (result i32) local.get $3 local.get $5 i32.add - local.tee $6 i32.const 37 i32.store16 - local.get $6 + local.get $3 + local.get $5 + i32.add local.get $4 i32.const 12 i32.shr_u i32.const 224 i32.or - local.tee $8 + local.tee $7 i32.const 4 i32.shr_u i32.const 15 @@ -3088,7 +3231,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $8 + local.get $7 i32.const 15 i32.and i32.const 1676 @@ -3098,20 +3241,24 @@ i32.shl i32.or i32.store offset=2 + local.get $5 + i32.const 6 + i32.add else local.get $3 local.get $5 i32.add - local.tee $6 i32.const 37 i32.store16 - local.get $6 + local.get $3 + local.get $5 + i32.add local.get $4 i32.const 18 i32.shr_u i32.const 240 i32.or - local.tee $8 + local.tee $7 i32.const 4 i32.shr_u i32.const 15 @@ -3119,7 +3266,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $8 + local.get $7 i32.const 15 i32.and i32.const 1676 @@ -3133,12 +3280,13 @@ local.get $5 i32.const 6 i32.add - local.tee $5 + local.tee $7 i32.add - local.tee $6 i32.const 37 i32.store16 - local.get $6 + local.get $3 + local.get $7 + i32.add local.get $4 i32.const 12 i32.shr_u @@ -3146,13 +3294,13 @@ i32.and i32.const 128 i32.or - local.tee $8 + local.tee $5 i32.const 4 i32.shr_u i32.const 1676 i32.add i32.load8_u - local.get $8 + local.get $5 i32.const 15 i32.and i32.const 1676 @@ -3162,16 +3310,17 @@ i32.shl i32.or i32.store offset=2 + local.get $7 + i32.const 6 + i32.add end - local.get $5 - i32.const 6 - i32.add - local.tee $6 + local.tee $7 i32.add - local.tee $5 i32.const 37 i32.store16 - local.get $5 + local.get $3 + local.get $7 + i32.add local.get $4 i32.const 6 i32.shr_u @@ -3179,13 +3328,13 @@ i32.and i32.const 128 i32.or - local.tee $8 + local.tee $5 i32.const 4 i32.shr_u i32.const 1676 i32.add i32.load8_u - local.get $8 + local.get $5 i32.const 15 i32.and i32.const 1676 @@ -3195,28 +3344,29 @@ i32.shl i32.or i32.store offset=2 - local.get $6 + local.get $7 i32.const 6 i32.add end - local.tee $6 + local.tee $7 i32.add - local.tee $5 i32.const 37 i32.store16 - local.get $5 + local.get $3 + local.get $7 + i32.add local.get $4 i32.const 63 i32.and i32.const 128 i32.or - local.tee $4 + local.tee $5 i32.const 4 i32.shr_u i32.const 1676 i32.add i32.load8_u - local.get $4 + local.get $5 i32.const 15 i32.and i32.const 1676 @@ -3226,25 +3376,25 @@ i32.shl i32.or i32.store offset=2 - local.get $6 + local.get $7 i32.const 6 i32.add end - local.set $6 - local.get $7 + local.set $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $while-continue|0 end end end - local.get $6 + local.get $7 local.get $9 i32.lt_u if (result i32) local.get $3 - local.get $6 + local.get $7 call $~lib/rt/itcms/__renew else local.get $3 @@ -3400,10 +3550,10 @@ local.get $3 i32.gt_u if (result i32) - local.get $0 local.get $3 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u local.tee $5 @@ -3427,10 +3577,10 @@ local.get $6 local.get $8 i32.add - local.get $0 local.get $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 local.get $4 @@ -3469,16 +3619,17 @@ i32.shl i32.add local.tee $4 - i32.load16_u offset=2 + i32.load16_u local.set $5 local.get $4 - i32.load16_u - local.tee $4 + i32.load16_u offset=2 + local.set $4 + local.get $5 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $4 + local.get $5 i32.const 32 i32.or i32.const 97 @@ -3487,12 +3638,12 @@ i32.lt_u i32.or if (result i32) - local.get $5 + local.get $4 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $5 + local.get $4 i32.const 32 i32.or i32.const 97 @@ -3504,14 +3655,14 @@ i32.const 0 end if (result i32) - local.get $5 + local.get $4 i32.const 32 i32.or i32.const 39 i32.rem_u i32.const 9 i32.sub - local.get $4 + local.get $5 i32.const 32 i32.or i32.const 39 @@ -3594,7 +3745,6 @@ i32.sub i32.shl local.set $10 - local.get $5 i32.const 128 local.get $9 i32.shr_u @@ -3603,6 +3753,7 @@ i32.const 0 local.get $9 select + local.get $5 i32.and local.set $5 loop $while-continue|2 @@ -3620,10 +3771,10 @@ if (result i32) i32.const 1 else - local.get $0 local.get $3 i32.const 1 i32.shl + local.get $0 i32.add i32.load16_u i32.const 37 @@ -3640,16 +3791,17 @@ i32.shl i32.add local.tee $7 - i32.load16_u offset=2 + i32.load16_u local.set $4 local.get $7 - i32.load16_u - local.tee $7 + i32.load16_u offset=2 + local.set $7 + local.get $4 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $7 + local.get $4 i32.const 32 i32.or i32.const 97 @@ -3658,12 +3810,12 @@ i32.lt_u i32.or if (result i32) - local.get $4 + local.get $7 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $4 + local.get $7 i32.const 32 i32.or i32.const 97 @@ -3675,14 +3827,14 @@ i32.const 0 end if (result i32) - local.get $4 + local.get $7 i32.const 32 i32.or i32.const 39 i32.rem_u i32.const 9 i32.sub - local.get $7 + local.get $4 i32.const 32 i32.or i32.const 39 diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index 4d8966db47..aef1076e84 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -111,8 +111,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -172,11 +172,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -190,10 +190,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -230,11 +230,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -295,19 +295,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -373,22 +373,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -636,13 +638,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -679,11 +684,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -707,11 +712,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1392 @@ -1094,8 +1099,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1114,11 +1118,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1128,12 +1132,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1146,7 +1150,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1155,6 +1158,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1201,13 +1205,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1336,18 +1340,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1364,19 +1363,19 @@ i32.load offset=8 local.set $2 local.get $1 - local.get $0 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 local.get $2 i32.store offset=8 local.get $2 - local.get $1 local.get $2 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -1518,10 +1517,9 @@ local.get $0 global.set $super-inline/bar global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $super-inline/bar i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/tablebase.optimized.wat b/tests/compiler/tablebase.optimized.wat index c2f7a71575..90338ab92d 100644 --- a/tests/compiler/tablebase.optimized.wat +++ b/tests/compiler/tablebase.optimized.wat @@ -11,7 +11,6 @@ (export "memory" (memory $0)) (start $~start) (func $~start - (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28,10 +27,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index 50264db820..508723435a 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -1,7 +1,7 @@ (module - (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) @@ -297,8 +297,8 @@ (local $1 i32) (local $2 i32) (local $3 i32) - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -358,11 +358,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -376,10 +376,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 5536 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1408 i32.const 1472 @@ -416,11 +416,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -500,19 +500,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -578,22 +578,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -841,13 +843,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -884,11 +889,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1552 @@ -912,11 +917,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1552 @@ -1299,8 +1304,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1462,12 +1466,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $3 + local.set $2 loop $do-continue|0 - local.get $3 + local.get $2 call $~lib/rt/itcms/step i32.sub - local.set $3 + local.set $2 global.get $~lib/rt/itcms/state i32.eqz if @@ -1483,20 +1487,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $3 + local.get $2 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $3 - local.get $3 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1504,15 +1508,16 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $3 + local.set $5 + local.get $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1523,13 +1528,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1537,34 +1542,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $5 - local.get $3 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) - local.get $3 i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1578,16 +1583,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $5 + local.tee $3 + local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1595,18 +1600,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1618,11 +1623,11 @@ end end local.get $3 - local.get $2 i32.load i32.const -4 i32.and - i32.gt_u + local.get $2 + i32.lt_u if i32.const 0 i32.const 1552 @@ -1631,13 +1636,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - i32.load - local.set $5 local.get $3 + local.tee $4 + i32.load + local.set $3 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1650,54 +1656,55 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $3 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 + local.get $4 local.get $3 - local.get $5 i32.const 2 i32.and + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $4 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $4 + local.get $3 i32.const -2 i32.and i32.store - local.get $2 + local.get $4 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $4 i32.load i32.const -4 i32.and i32.add - local.get $3 - local.get $2 + local.get $4 + i32.const 4 + i32.add + local.get $4 i32.load i32.const -4 i32.and @@ -1707,33 +1714,34 @@ i32.and i32.store end - local.get $2 + local.get $4 + local.tee $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $3 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1749,18 +1757,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1769,18 +1777,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1789,10 +1797,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1801,20 +1809,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 + local.tee $2 i32.add - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and @@ -1829,10 +1837,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1849,16 +1857,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $4 + local.get $1 i32.const 0 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 - local.get $4 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1881,8 +1889,8 @@ i32.sub i32.const 0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 @@ -1929,6 +1937,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1973,17 +1983,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -2008,9 +2030,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -2088,27 +2114,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -2120,7 +2154,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2130,8 +2166,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -2139,10 +2179,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -2150,10 +2194,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -2161,7 +2209,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2187,19 +2235,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -2211,7 +2263,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2221,8 +2275,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -2230,10 +2288,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -2241,10 +2303,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -2252,7 +2318,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2298,7 +2364,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2308,8 +2376,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2317,10 +2389,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2328,10 +2404,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2339,7 +2419,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2366,145 +2446,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2515,73 +2627,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2592,37 +2720,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2633,19 +2769,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2881,23 +3021,23 @@ local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $1 i32.load offset=4 i32.const 3 i32.and - local.tee $1 + local.tee $0 global.get $~lib/rt/itcms/white i32.eqz i32.eq if - local.get $0 + local.get $1 call $~lib/rt/itcms/Object#makeGray else global.get $~lib/rt/itcms/state i32.const 1 i32.eq i32.const 0 - local.get $1 + local.get $0 i32.const 3 i32.eq select @@ -2922,7 +3062,7 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2939,17 +3079,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 i64.const 0 i64.store - local.get $6 + local.get $5 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinStringArray - local.get $5 + local.get $3 i32.const 1 i32.sub - local.tee $6 + local.tee $5 i32.const 0 i32.lt_s if @@ -2958,19 +3098,19 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1184 - local.set $2 + local.set $3 br $__inlined_func$~lib/util/string/joinStringArray end - local.get $6 + local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.load local.tee $0 i32.store - local.get $2 + local.get $3 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -2978,136 +3118,136 @@ i32.const 1184 local.get $0 select - local.set $2 + local.set $3 br $__inlined_func$~lib/util/string/joinStringArray end loop $for-loop|0 local.get $3 - local.get $5 - i32.lt_s + local.get $4 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $4 i32.const 2 i32.shl + local.get $0 i32.add i32.load - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $4 + local.get $6 if - local.get $2 - local.get $4 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u + local.get $2 i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $2 - local.get $6 + local.get $5 i32.const 1180 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $6 i32.mul + local.get $2 i32.add i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=8 i32.const 0 - local.set $3 + local.set $4 loop $for-loop|1 - local.get $3 - local.get $6 + local.get $4 + local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $4 i32.const 2 i32.shl + local.get $0 i32.add i32.load - local.tee $4 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $2 if - local.get $2 local.get $1 i32.const 1 i32.shl + local.get $3 i32.add - local.get $4 - local.get $4 + local.get $2 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $4 + local.get $2 i32.add local.set $1 end - local.get $5 + local.get $6 if - local.get $2 local.get $1 i32.const 1 i32.shl + local.get $3 i32.add i32.const 1184 - local.get $5 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $5 + local.get $6 i32.add local.set $1 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $6 + local.get $5 i32.const 2 i32.shl + local.get $0 i32.add i32.load local.tee $0 i32.store offset=4 local.get $0 if - local.get $2 local.get $1 i32.const 1 i32.shl + local.get $3 i32.add local.get $0 local.get $0 @@ -3125,7 +3265,7 @@ i32.add global.set $~lib/memory/__stack_pointer end - local.get $2 + local.get $3 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3659,9 +3799,6 @@ br $while-continue|0 end end - local.get $10 - i64.extend_i32_s - local.set $0 loop $while-continue|4 local.get $3 i64.const 10 @@ -3670,10 +3807,11 @@ local.get $6 i64.const 10 i64.mul - local.tee $1 - local.get $0 + local.tee $0 + local.get $10 + i64.extend_i32_s i64.shr_u - local.tee $6 + local.tee $1 local.get $4 i64.extend_i32_s i64.or @@ -3690,7 +3828,7 @@ i32.shl i32.const 3920 i32.add - local.get $6 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -3703,7 +3841,7 @@ i32.sub local.set $8 local.get $3 - local.get $1 + local.get $0 local.get $12 i64.and local.tee $6 @@ -3716,7 +3854,6 @@ global.set $~lib/util/number/_K local.get $6 local.set $0 - local.get $9 i32.const 0 local.get $8 i32.sub @@ -3725,6 +3862,7 @@ i32.const 4848 i32.add i64.load32_u + local.get $9 i64.mul local.set $1 local.get $4 @@ -3790,10 +3928,10 @@ local.get $2 i32.eqz if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store @@ -3805,24 +3943,24 @@ local.get $1 local.get $2 i32.add - local.tee $4 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $4 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $4 + local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -3833,31 +3971,32 @@ br $for-loop|0 end end - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store - local.get $4 + local.get $3 i32.const 2 i32.add else - local.get $4 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add + local.tee $4 local.tee $0 i32.const 2 i32.add @@ -3868,29 +4007,29 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $4 i32.const 46 i32.store16 local.get $1 i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const -6 i32.gt_s select if (result i32) - local.get $0 i32.const 2 - local.get $4 + local.get $3 i32.sub - local.tee $5 + local.tee $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $0 local.get $1 @@ -3904,13 +4043,13 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $5 + local.get $4 i32.lt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -3922,7 +4061,7 @@ end end local.get $1 - local.get $5 + local.get $4 i32.add else local.get $1 @@ -3933,10 +4072,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $5 + local.get $3 i32.const 1 i32.sub local.tee $0 @@ -4003,12 +4142,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $5 i32.const 45 i32.const 43 local.get $2 select - i32.store16 offset=4 + i32.store16 local.get $0 i32.const 2 i32.add @@ -4036,16 +4175,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $6 + local.get $3 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -4106,12 +4245,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $6 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select - i32.store16 offset=4 + i32.store16 local.get $0 local.get $1 i32.add @@ -4124,18 +4263,24 @@ ) (func $~lib/util/number/dtoa_core (param $0 f64) (result i32) (local $1 i64) - (local $2 i64) + (local $2 i32) (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i64) (local $7 i64) - (local $8 i32) - (local $9 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + (local $13 i64) + (local $14 i64) + (local $15 i64) local.get $0 f64.const 0 f64.lt - local.tee $8 + local.tee $5 if (result f64) i32.const 3920 i32.const 45 @@ -4152,66 +4297,66 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $4 - i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl + local.tee $2 + i32.const 1 + local.get $2 + select + i32.const 1075 + i32.sub + local.tee $10 + i32.const 1 + i32.sub local.get $1 i64.const 4503599627370495 i64.and + local.get $2 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl i64.add - local.tee $2 + local.tee $1 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $1 - local.get $1 + local.tee $3 i64.clz i32.wrap_i64 - local.tee $5 + local.tee $4 + i32.sub + local.set $2 + local.get $3 + local.get $4 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $4 - i32.const 1 - local.get $4 - select - i32.const 1075 - i32.sub - local.tee $9 - i32.const 1 - i32.sub - local.get $5 - i32.sub - local.set $4 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $4 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $9 - local.get $5 - i32.sub + local.get $10 local.get $4 i32.sub + local.get $2 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $4 + local.get $2 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $4 + local.tee $10 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -4220,9 +4365,9 @@ f64.add local.tee $0 i32.trunc_f64_s - local.tee $5 + local.tee $2 local.get $0 - local.get $5 + local.get $2 f64.convert_i32_s f64.ne i32.add @@ -4230,105 +4375,125 @@ i32.shr_s i32.const 1 i32.add - local.tee $5 + local.tee $2 i32.const 3 i32.shl - local.tee $9 + local.tee $4 i32.sub global.set $~lib/util/number/_K - local.get $9 + local.get $4 i32.const 3976 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $5 + local.get $2 i32.const 1 i32.shl i32.const 4672 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow + local.get $1 + local.get $1 + i64.clz + i64.shl local.tee $6 i64.const 4294967295 i64.and - local.set $1 + local.set $3 + global.get $~lib/util/number/_frc_pow + local.tee $11 + i64.const 4294967295 + i64.and + local.tee $1 + local.tee $7 local.get $6 i64.const 32 i64.shr_u - local.tee $6 + local.tee $13 + i64.mul + local.get $3 + local.get $7 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.set $6 global.get $~lib/util/number/_frc_plus - local.tee $3 + local.tee $8 + i64.const 4294967295 + i64.and + local.set $7 + local.get $1 + local.get $8 i64.const 32 i64.shr_u - local.tee $7 + local.tee $14 i64.mul local.get $1 local.get $7 i64.mul - local.get $1 - local.get $3 - i64.const 4294967295 - i64.and - local.tee $3 - i64.mul i64.const 32 i64.shr_u i64.add - local.tee $7 + local.set $8 + global.get $~lib/util/number/_frc_minus + local.tee $9 + i64.const 4294967295 + i64.and + local.set $12 + local.get $1 + local.get $9 i64.const 32 i64.shr_u - i64.add - local.get $3 - local.get $6 + local.tee $15 + i64.mul + local.get $1 + local.get $12 i64.mul - local.get $7 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.sub - local.set $3 - local.get $8 + local.set $9 + local.get $5 i32.const 1 i32.shl i32.const 3920 i32.add - local.get $6 - local.get $2 - local.get $2 - i64.clz - i64.shl - local.tee $2 + local.get $13 + local.get $11 i64.const 32 i64.shr_u - local.tee $7 + local.tee $1 + local.tee $11 i64.mul - local.get $1 - local.get $7 + local.get $6 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + local.get $11 i64.mul - local.get $1 - local.get $2 + local.get $6 i64.const 4294967295 i64.and - local.tee $2 - i64.mul + i64.add + i64.const 2147483647 + i64.add i64.const 32 i64.shr_u i64.add - local.tee $7 + local.get $1 + local.get $14 + i64.mul + local.get $8 i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $6 - i64.mul + local.get $1 local.get $7 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -4337,40 +4502,26 @@ i64.const 32 i64.shr_u i64.add - local.get $3 - local.get $4 + i64.const 1 + i64.sub + local.tee $3 global.get $~lib/util/number/_exp_pow + local.get $10 i32.add i32.const -64 i32.sub local.get $3 - local.get $6 - global.get $~lib/util/number/_frc_minus - local.tee $2 - i64.const 32 - i64.shr_u - local.tee $3 - i64.mul - local.get $1 - local.get $3 - i64.mul local.get $1 - local.get $2 - i64.const 4294967295 - i64.and - local.tee $1 + local.get $15 i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $2 + local.get $9 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $6 + local.get $12 i64.mul - local.get $2 + local.get $9 i64.const 4294967295 i64.and i64.add @@ -4382,13 +4533,13 @@ i64.const 1 i64.add i64.sub - local.get $8 + local.get $5 call $~lib/util/number/genDigits - local.get $8 + local.get $5 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $8 + local.get $5 i32.add ) (func $~lib/number/F64#toString (param $0 f64) (result i32) @@ -4593,20 +4744,18 @@ i32.const 1088 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1744 i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store offset=20 i32.const 1744 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1792 i32.store offset=8 local.get $0 @@ -4647,10 +4796,9 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store offset=4 local.get $0 @@ -4682,10 +4830,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3648 i32.store offset=4 local.get $0 @@ -4727,20 +4874,18 @@ local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 3680 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store offset=12 i32.const 3680 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3728 i32.store offset=4 local.get $0 @@ -4781,10 +4926,9 @@ call $~lib/number/F64#toString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4912 i32.store offset=4 local.get $0 @@ -4816,10 +4960,9 @@ call $~lib/string/String#concat local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4944 i32.store offset=4 local.get $0 @@ -4861,20 +5004,18 @@ local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 4976 i32.store offset=8 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store offset=12 i32.const 4976 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5024 i32.store offset=4 local.get $0 @@ -4893,9 +5034,8 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - call $templateliteral/test_fast_paths_string global.get $~lib/memory/__stack_pointer - i32.const 28 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4910,39 +5050,240 @@ i64.const 0 i64.store offset=8 local.get $0 - i64.const 0 - i64.store offset=16 - local.get $0 i32.const 0 - i32.store offset=24 + i32.store offset=16 local.get $0 - i32.const 1 - call $templateliteral/Ref#constructor - local.tee $0 + i32.const 1088 i32.store - global.get $~lib/memory/__stack_pointer i32.const 2 - call $templateliteral/Ref#constructor - local.tee $1 - i32.store offset=4 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer local.get $0 - call $templateliteral/Ref#toString - local.set $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $2 + i32.const 5072 i32.store offset=8 - local.get $3 - i32.const 5360 - i32.store offset=12 - local.get $2 - i32.const 5360 + local.get $0 + i32.const 5072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1120 - i32.const 51 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=8 + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5104 + i32.store offset=12 + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 5104 + local.get $0 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5136 + i32.store offset=8 + local.get $0 + i32.const 5136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5104 + i32.store offset=12 + i32.const 5104 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5168 + i32.store offset=8 + local.get $0 + i32.const 5168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 5200 + i32.store offset=16 + local.get $0 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5232 + i32.store offset=8 + local.get $0 + i32.const 5232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5200 + i32.store offset=16 + i32.const 1088 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5264 + i32.store offset=8 + local.get $0 + i32.const 5264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5296 + i32.store offset=8 + local.get $0 + i32.const 5296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5580 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i64.const 0 + i64.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=24 + local.get $0 + i32.const 1 + call $templateliteral/Ref#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $templateliteral/Ref#constructor + local.tee $1 + i32.store offset=4 + local.get $0 + call $templateliteral/Ref#toString + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 5360 + i32.store offset=12 + local.get $2 + i32.const 5360 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 51 i32.const 3 call $~lib/builtins/abort unreachable @@ -4964,10 +5305,9 @@ call $~lib/string/String#concat local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $3 local.get $2 i32.store offset=8 - local.get $3 + global.get $~lib/memory/__stack_pointer i32.const 5392 i32.store offset=12 local.get $2 @@ -5009,20 +5349,18 @@ local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 5440 i32.store offset=16 - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1184 i32.store offset=20 i32.const 5440 call $~lib/staticarray/StaticArray<~lib/string/String>#join local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 5488 i32.store offset=12 local.get $0 @@ -5079,10 +5417,10 @@ return end local.get $0 - local.get $0 i32.const 20 i32.sub i32.load offset=16 + local.get $0 i32.add local.set $1 loop $while-continue|0 @@ -5119,225 +5457,6 @@ global.set $~started call $start:templateliteral ) - (func $templateliteral/test_fast_paths_string - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5580 - i32.lt_s - if - i32.const 21984 - i32.const 22032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 1088 - i32.store - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 5072 - i32.store offset=8 - local.get $0 - i32.const 5072 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 31 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=8 - i32.const 1088 - i32.const 1088 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=12 - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - i32.const 5104 - local.get $0 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 5136 - i32.store offset=8 - local.get $0 - i32.const 5136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=12 - i32.const 5104 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 5168 - i32.store offset=8 - local.get $0 - i32.const 5168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 5200 - i32.store offset=16 - local.get $0 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 5232 - i32.store offset=8 - local.get $0 - i32.const 5232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.store offset=16 - i32.const 1088 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 5264 - i32.store offset=8 - local.get $0 - i32.const 5264 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 - local.get $1 - i32.const 5296 - i32.store offset=8 - local.get $0 - i32.const 5296 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $templateliteral/Ref#toString (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index f7dd8b1fac..34b2b4ecf1 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -294,19 +294,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -372,22 +372,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -635,13 +637,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -679,17 +684,17 @@ i32.and local.set $0 loop $while-continue|1 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if local.get $0 global.set $~lib/rt/itcms/iter - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -749,15 +754,15 @@ i32.and local.set $0 loop $while-continue|2 - local.get $0 global.get $~lib/rt/itcms/toSpace + local.get $0 i32.ne if - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.ne if local.get $0 @@ -806,13 +811,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1054,7 +1059,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1150,6 +1156,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1159,27 +1167,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 1056 i32.store loop $while-continue|0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 10 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=4 - local.get $1 + local.get $0 i32.const 10 i32.gt_s if diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index fa5a1ce0a0..d6956fd56f 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -242,8 +242,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -303,11 +303,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -321,10 +321,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1792 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1552 i32.const 1616 @@ -361,11 +361,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -426,19 +426,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -504,22 +504,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -767,13 +769,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -810,11 +815,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1696 @@ -838,11 +843,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1696 @@ -1225,8 +1230,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1245,11 +1249,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1259,12 +1263,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1277,7 +1281,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1286,6 +1289,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1775,13 +1779,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 - local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -1910,18 +1914,13 @@ local.get $1 i32.const 4 i32.add - local.tee $2 local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $2 local.get $2 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1938,19 +1937,19 @@ i32.load offset=8 local.set $4 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $1 local.get $4 i32.store offset=8 local.get $4 - local.get $1 local.get $4 i32.load offset=4 i32.const 3 i32.and + local.get $1 i32.or i32.store offset=4 local.get $2 diff --git a/tests/compiler/unary.optimized.wat b/tests/compiler/unary.optimized.wat index 9e10066ced..3406a2e03b 100644 --- a/tests/compiler/unary.optimized.wat +++ b/tests/compiler/unary.optimized.wat @@ -7,11 +7,9 @@ (memory $0 0) (export "memory" (memory $0)) (start $~start) - (func $start:unary + (func $~start (local $0 i32) (local $1 i64) - (local $2 f32) - (local $3 f64) global.get $unary/i i32.const 1 i32.add @@ -140,19 +138,13 @@ global.set $unary/f f32.const 1.25 global.set $unary/f + f32.const 2.25 + global.set $unary/f f32.const 1.25 - local.tee $2 - f32.const 1 - f32.add global.set $unary/f - local.get $2 + f32.const 0.25 global.set $unary/f - global.get $unary/f - local.tee $2 - f32.const 1 - f32.sub - global.set $unary/f - local.get $2 + f32.const 1.25 global.set $unary/f global.get $unary/F f64.const 1 @@ -186,22 +178,13 @@ global.set $unary/F f64.const 1.25 global.set $unary/F - f64.const 1.25 - local.tee $3 - f64.const 1 - f64.add + f64.const 2.25 global.set $unary/F - local.get $3 + f64.const 1.25 global.set $unary/F - global.get $unary/F - local.tee $3 - f64.const 1 - f64.sub + f64.const 0.25 global.set $unary/F - local.get $3 + f64.const 1.25 global.set $unary/F ) - (func $~start - call $start:unary - ) ) diff --git a/tests/compiler/wasi/abort.optimized.wat b/tests/compiler/wasi/abort.optimized.wat index 1aeb19a782..e3ff15056e 100644 --- a/tests/compiler/wasi/abort.optimized.wat +++ b/tests/compiler/wasi/abort.optimized.wat @@ -31,10 +31,10 @@ end unreachable end - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $4 local.get $2 @@ -242,14 +242,14 @@ local.set $3 i32.const 3 global.set $~argumentsLength + i32.const 1216 + local.get $3 local.get $0 i32.const 4 i32.add local.tee $0 - i32.const 1216 - local.get $3 - local.get $0 call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $0 i32.add local.tee $0 i32.const 40 diff --git a/tests/compiler/wasi/seed.optimized.wat b/tests/compiler/wasi/seed.optimized.wat index 4308b4ba23..b7970b80d6 100644 --- a/tests/compiler/wasi/seed.optimized.wat +++ b/tests/compiler/wasi/seed.optimized.wat @@ -317,9 +317,9 @@ i32.const 1 global.set $~lib/math/random_seeded local.get $2 - local.get $2 i64.const 33 i64.shr_u + local.get $2 i64.xor i64.const -49064778989728563 i64.mul @@ -368,9 +368,9 @@ i32.const 1 i32.or local.get $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.mul local.tee $0 @@ -379,9 +379,9 @@ i32.const 61 i32.or local.get $0 - local.get $0 i32.const 7 i32.shr_u + local.get $0 i32.xor i32.mul i32.add @@ -400,9 +400,9 @@ i32.const 1 i32.or local.get $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.mul local.tee $0 @@ -411,9 +411,9 @@ i32.const 61 i32.or local.get $0 - local.get $0 i32.const 7 i32.shr_u + local.get $0 i32.xor i32.mul i32.add @@ -453,9 +453,9 @@ global.set $~lib/math/random_state0_64 local.get $2 local.get $1 - local.get $1 i64.const 23 i64.shl + local.get $1 i64.xor local.tee $1 local.get $1 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 1d6a9d3568..3f664674ac 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -52,10 +52,10 @@ end unreachable end - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add local.set $4 local.get $2 @@ -495,19 +495,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -573,22 +573,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -836,13 +838,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -879,11 +884,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1216 @@ -907,11 +912,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1216 @@ -1381,10 +1386,10 @@ i32.const 1 i32.add local.set $5 - local.get $0 local.get $8 i32.const 1 i32.shl + local.get $0 i32.add local.get $3 i32.const 65535 @@ -1422,12 +1427,12 @@ i64.extend_i32_s i64.shl local.set $2 - local.get $0 local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.tee $6 i32.load16_u @@ -1483,9 +1488,6 @@ br $while-continue|0 end end - local.get $11 - i64.extend_i32_s - local.set $1 loop $while-continue|4 local.get $4 i64.const 10 @@ -1494,10 +1496,11 @@ local.get $7 i64.const 10 i64.mul - local.tee $2 - local.get $1 + local.tee $1 + local.get $11 + i64.extend_i32_s i64.shr_u - local.tee $7 + local.tee $2 local.get $5 i64.extend_i32_s i64.or @@ -1509,12 +1512,12 @@ i32.const 1 i32.add local.set $5 - local.get $0 local.get $3 i32.const 1 i32.shl + local.get $0 i32.add - local.get $7 + local.get $2 i32.wrap_i64 i32.const 65535 i32.and @@ -1527,7 +1530,7 @@ i32.sub local.set $9 local.get $4 - local.get $2 + local.get $1 local.get $13 i64.and local.tee $7 @@ -1540,7 +1543,6 @@ global.set $~lib/util/number/_K local.get $7 local.set $1 - local.get $10 i32.const 0 local.get $9 i32.sub @@ -1549,14 +1551,15 @@ i32.const 2200 i32.add i64.load32_u + local.get $10 i64.mul local.set $2 - local.get $0 local.get $5 i32.const 1 i32.sub i32.const 1 i32.shl + local.get $0 i32.add local.tee $6 i32.load16_u @@ -1612,6 +1615,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1656,17 +1661,29 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=8 - i32.store offset=8 + i32.const 8 + i32.add + i32.load + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=12 - i32.store offset=12 + i32.const 12 + i32.add + i32.load + i32.store local.get $1 i32.const 16 i32.add @@ -1691,9 +1708,13 @@ i32.load i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=4 - i32.store offset=4 + i32.const 4 + i32.add + i32.load + i32.store local.get $1 i32.const 8 i32.add @@ -1771,27 +1792,35 @@ i32.load8_u i32.store8 local.get $0 - local.get $1 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $0 - i32.const 2 + i32.const 1 i32.add local.tee $3 i32.const 1 i32.add - local.set $0 + local.set $6 local.get $1 - i32.const 2 + i32.const 1 i32.add local.tee $4 i32.const 1 i32.add - local.set $1 + local.set $7 local.get $3 local.get $4 i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $0 + local.get $7 + i32.const 1 + i32.add + local.set $1 + local.get $6 + local.get $7 + i32.load8_u + i32.store8 local.get $2 i32.const 3 i32.sub @@ -1803,7 +1832,9 @@ if local.get $0 local.get $1 - i32.load offset=1 + i32.const 1 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1813,8 +1844,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=5 + i32.const 5 + i32.add + i32.load local.tee $4 i32.const 8 i32.shl @@ -1822,10 +1857,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=9 + i32.const 9 + i32.add + i32.load local.tee $3 i32.const 8 i32.shl @@ -1833,10 +1872,14 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=13 + i32.const 13 + i32.add + i32.load local.tee $5 i32.const 8 i32.shl @@ -1844,7 +1887,7 @@ i32.const 24 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -1870,19 +1913,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $2 i32.const 2 i32.sub @@ -1894,7 +1941,9 @@ if local.get $0 local.get $1 - i32.load offset=2 + i32.const 2 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -1904,8 +1953,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=6 + i32.const 6 + i32.add + i32.load local.tee $4 i32.const 16 i32.shl @@ -1913,10 +1966,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=10 + i32.const 10 + i32.add + i32.load local.tee $3 i32.const 16 i32.shl @@ -1924,10 +1981,14 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=14 + i32.const 14 + i32.add + i32.load local.tee $5 i32.const 16 i32.shl @@ -1935,7 +1996,7 @@ i32.const 16 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -1981,7 +2042,9 @@ if local.get $0 local.get $1 - i32.load offset=3 + i32.const 3 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -1991,8 +2054,12 @@ i32.or i32.store local.get $0 + i32.const 4 + i32.add local.get $1 - i32.load offset=7 + i32.const 7 + i32.add + i32.load local.tee $4 i32.const 24 i32.shl @@ -2000,10 +2067,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=4 + i32.store local.get $0 + i32.const 8 + i32.add local.get $1 - i32.load offset=11 + i32.const 11 + i32.add + i32.load local.tee $3 i32.const 24 i32.shl @@ -2011,10 +2082,14 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=8 + i32.store local.get $0 + i32.const 12 + i32.add local.get $1 - i32.load offset=15 + i32.const 15 + i32.add + i32.load local.tee $5 i32.const 24 i32.shl @@ -2022,7 +2097,7 @@ i32.const 8 i32.shr_u i32.or - i32.store offset=12 + i32.store local.get $1 i32.const 16 i32.add @@ -2049,145 +2124,177 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 i32.add - local.set $1 - local.get $4 + local.tee $4 + i32.const 1 + i32.add + local.set $1 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 8 @@ -2198,73 +2305,89 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 4 @@ -2275,37 +2398,45 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 2 @@ -2316,19 +2447,23 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.add local.set $1 - local.get $4 local.get $3 - i32.load8_u offset=1 - i32.store8 offset=1 + local.get $4 + i32.load8_u + i32.store8 end local.get $2 i32.const 1 @@ -2643,10 +2778,10 @@ local.get $2 i32.eqz if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store @@ -2658,24 +2793,24 @@ local.get $1 local.get $2 i32.add - local.tee $4 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $4 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $4 + local.get $3 i32.lt_s if - local.get $0 local.get $1 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -2686,31 +2821,32 @@ br $for-loop|0 end end - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add i32.const 3145774 i32.store - local.get $4 + local.get $3 i32.const 2 i32.add else - local.get $4 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.shl + local.get $0 i32.add + local.tee $4 local.tee $0 i32.const 2 i32.add @@ -2721,29 +2857,29 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $4 i32.const 46 i32.store16 local.get $1 i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const -6 i32.gt_s select if (result i32) - local.get $0 i32.const 2 - local.get $4 + local.get $3 i32.sub - local.tee $5 + local.tee $4 i32.const 1 i32.shl + local.get $0 i32.add local.get $0 local.get $1 @@ -2757,13 +2893,13 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $5 + local.get $4 i32.lt_s if - local.get $0 local.get $2 i32.const 1 i32.shl + local.get $0 i32.add i32.const 48 i32.store16 @@ -2775,7 +2911,7 @@ end end local.get $1 - local.get $5 + local.get $4 i32.add else local.get $1 @@ -2786,10 +2922,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $5 + local.get $3 i32.const 1 i32.sub local.tee $0 @@ -2856,12 +2992,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $5 i32.const 45 i32.const 43 local.get $2 select - i32.store16 offset=4 + i32.store16 local.get $0 i32.const 2 i32.add @@ -2889,16 +3025,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 - local.tee $3 i32.const 4 i32.add - local.get $4 + local.tee $6 + local.get $3 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -2959,12 +3095,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $6 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select - i32.store16 offset=4 + i32.store16 local.get $0 local.get $1 i32.add @@ -2977,21 +3113,21 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) (local $6 i64) (local $7 i64) (local $8 i64) (local $9 i32) (local $10 i32) (local $11 i64) - (local $12 i64) + (local $12 i32) (local $13 i64) local.get $1 f64.const 0 f64.lt - local.tee $9 + local.tee $10 if (result f64) local.get $0 i32.const 45 @@ -3008,11 +3144,11 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.set $5 + local.set $3 local.get $2 i64.const 4503599627370495 i64.and - local.get $5 + local.get $3 i32.const 0 i32.ne i64.extend_i32_u @@ -3020,13 +3156,13 @@ i64.shl i64.add local.set $2 - local.get $5 + local.get $3 i32.const 1 - local.get $5 + local.get $3 select i32.const 1075 i32.sub - local.tee $5 + local.tee $3 i32.const 1 i32.sub local.get $2 @@ -3034,14 +3170,14 @@ i64.shl i64.const 1 i64.add - local.tee $3 + local.tee $4 i64.clz i32.wrap_i64 - local.tee $4 + local.tee $9 i32.sub - local.set $10 - local.get $3 + local.set $12 local.get $4 + local.get $9 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -3051,25 +3187,25 @@ i64.eq i32.const 1 i32.add - local.tee $4 + local.tee $9 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $5 - local.get $4 + local.get $3 + local.get $9 i32.sub - local.get $10 + local.get $12 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $10 + local.get $12 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $5 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3078,9 +3214,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $4 + local.tee $3 local.get $1 - local.get $4 + local.get $3 f64.convert_i32_s f64.ne i32.add @@ -3088,18 +3224,19 @@ i32.shr_s i32.const 1 i32.add - local.tee $4 + local.tee $3 i32.const 3 i32.shl - local.tee $10 i32.sub global.set $~lib/util/number/_K - local.get $10 - i32.const 1328 - i32.add + local.get $3 + i32.const 3 + i32.shl + i32.const 1328 + i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $4 + local.get $3 i32.const 1 i32.shl i32.const 2024 @@ -3110,29 +3247,23 @@ local.get $2 i64.clz i64.shl - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $12 + local.set $13 global.get $~lib/util/number/_frc_pow - local.tee $11 + local.tee $2 i64.const 4294967295 i64.and - local.set $2 - local.get $3 + local.tee $11 + local.get $4 i64.const 32 i64.shr_u - local.set $13 + local.tee $4 + i64.mul local.get $11 - i64.const 32 - i64.shr_u - local.set $3 - local.get $2 local.get $13 i64.mul - local.get $2 - local.get $12 - i64.mul i64.const 32 i64.shr_u i64.add @@ -3143,29 +3274,35 @@ i64.and local.set $7 local.get $2 + i64.const 4294967295 + i64.and + local.tee $5 local.get $6 i64.const 32 i64.shr_u local.tee $6 i64.mul - local.get $2 + local.get $5 local.get $7 i64.mul i64.const 32 i64.shr_u i64.add - local.set $8 - local.get $3 + local.set $5 local.get $6 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $8 i64.mul - local.get $8 + local.get $5 i64.const 32 i64.shr_u i64.add - local.get $3 local.get $7 - i64.mul local.get $8 + i64.mul + local.get $5 i64.const 4294967295 i64.and i64.add @@ -3181,35 +3318,41 @@ local.tee $7 i64.const 4294967295 i64.and - local.set $8 + local.set $5 local.get $2 + i64.const 4294967295 + i64.and + local.tee $8 local.get $7 i64.const 32 i64.shr_u local.tee $7 i64.mul - local.get $2 + local.get $5 local.get $8 i64.mul i64.const 32 i64.shr_u i64.add - local.set $2 - local.get $9 + local.set $8 + local.get $10 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $3 - local.get $13 + local.get $4 + local.get $2 + i64.const 32 + i64.shr_u + local.tee $4 i64.mul local.get $11 i64.const 32 i64.shr_u i64.add - local.get $3 - local.get $12 + local.get $4 + local.get $13 i64.mul local.get $11 i64.const 4294967295 @@ -3221,23 +3364,26 @@ i64.shr_u i64.add local.get $6 - local.get $5 global.get $~lib/util/number/_exp_pow + local.get $9 i32.add i32.const -64 i32.sub local.get $6 - local.get $3 local.get $7 - i64.mul local.get $2 i64.const 32 i64.shr_u - i64.add - local.get $3 - local.get $8 + local.tee $2 i64.mul + local.get $8 + i64.const 32 + i64.shr_u + i64.add local.get $2 + local.get $5 + i64.mul + local.get $8 i64.const 4294967295 i64.and i64.add @@ -3249,13 +3395,13 @@ i64.const 1 i64.add i64.sub - local.get $9 + local.get $10 call $~lib/util/number/genDigits - local.get $9 + local.get $10 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $10 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -3335,80 +3481,81 @@ (local $9 i32) (local $10 i32) i32.const 1056 - local.set $9 + local.set $6 i32.const 1052 i32.load i32.const 1056 i32.add - local.set $10 + local.set $8 loop $while-continue|0 - local.get $9 - local.get $10 + local.get $6 + local.get $8 i32.lt_u if - local.get $9 + local.get $6 i32.load16_u - local.tee $7 + local.tee $9 i32.const 128 i32.lt_u if (result i32) - local.get $6 + local.get $7 i32.const 1 i32.add else - local.get $7 + local.get $9 i32.const 2048 i32.lt_u if (result i32) - local.get $6 + local.get $7 i32.const 2 i32.add else - local.get $10 - local.get $9 + local.get $8 + local.get $6 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $7 + local.get $9 i32.const 64512 i32.and i32.const 55296 i32.eq select if - local.get $9 + local.get $6 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $6 + local.get $7 i32.const 4 i32.add - local.set $6 - local.get $9 + local.set $7 + local.get $6 i32.const 4 i32.add - local.set $9 + local.set $6 br $while-continue|0 end end - local.get $6 + local.get $7 i32.const 3 i32.add end end - local.set $6 - local.get $9 + local.set $7 + local.get $6 i32.const 2 i32.add - local.set $9 + local.set $6 br $while-continue|0 end end - local.get $6 + local.get $7 + local.tee $6 i32.const 56 local.get $6 i32.const 56 @@ -3423,7 +3570,8 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $8 + local.set $9 + local.get $9 local.get $6 i32.const 1073741820 i32.gt_u @@ -3455,12 +3603,11 @@ i32.eqz if memory.size - local.tee $9 + local.tee $8 local.get $6 i32.const 536870910 i32.lt_u if (result i32) - local.get $6 i32.const 1 i32.const 27 local.get $6 @@ -3469,14 +3616,15 @@ i32.shl i32.const 1 i32.sub + local.get $6 i32.add else local.get $6 end i32.const 4 - local.get $8 - i32.load offset=1568 local.get $9 + i32.load offset=1568 + local.get $8 i32.const 16 i32.shl i32.const 4 @@ -3492,7 +3640,7 @@ i32.shr_u local.tee $7 local.get $7 - local.get $9 + local.get $8 i32.lt_s select memory.grow @@ -3507,15 +3655,15 @@ unreachable end end - local.get $8 local.get $9 + local.get $8 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $8 + local.get $9 local.get $6 call $~lib/rt/tlsf/searchBlock local.tee $7 @@ -3529,12 +3677,12 @@ unreachable end end - local.get $6 local.get $7 i32.load i32.const -4 i32.and - i32.gt_u + local.get $6 + i32.lt_u if i32.const 0 i32.const 1216 @@ -3543,12 +3691,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $8 + local.get $9 local.get $7 call $~lib/rt/tlsf/removeBlock local.get $7 + local.tee $8 i32.load - local.set $9 + local.set $7 local.get $6 i32.const 4 i32.add @@ -3562,7 +3711,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $9 + local.get $7 i32.const -4 i32.and local.get $6 @@ -3571,15 +3720,15 @@ i32.const 16 i32.ge_u if + local.get $8 local.get $7 - local.get $6 - local.get $9 i32.const 2 i32.and + local.get $6 i32.or i32.store local.get $6 - local.get $7 + local.get $8 i32.const 4 i32.add i32.add @@ -3590,26 +3739,27 @@ i32.const 1 i32.or i32.store - local.get $8 + local.get $9 local.get $6 call $~lib/rt/tlsf/insertBlock else + local.get $8 local.get $7 - local.get $9 i32.const -2 i32.and i32.store - local.get $7 + local.get $8 i32.const 4 i32.add - local.tee $6 - local.get $7 + local.get $8 i32.load i32.const -4 i32.and i32.add - local.get $6 - local.get $7 + local.get $8 + i32.const 4 + i32.add + local.get $8 i32.load i32.const -4 i32.and @@ -3619,196 +3769,197 @@ i32.and i32.store end - local.get $7 + local.get $8 i32.const 4 i32.add - local.tee $8 + local.tee $6 i32.const 8 i32.add - local.tee $7 + local.tee $9 i32.const 4 i32.add - local.set $9 - local.get $8 - local.get $9 + local.set $7 + local.get $6 + local.get $7 i32.store - local.get $9 + local.get $7 i64.const 9071406388179572 i64.store - local.get $8 + local.get $6 i32.const 7 i32.store offset=4 i32.const 2 - local.get $8 + local.get $6 i32.const 1 - local.get $7 + local.get $9 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop i32.const 1052 i32.load i32.const 1 i32.shr_u - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $8 - i32.const 1056 local.get $6 - local.get $9 + i32.const 1056 + local.get $8 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.store offset=4 i32.const 2 - local.get $8 + local.get $6 i32.const 1 - local.get $7 + local.get $9 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 if (result i32) - local.get $9 + local.get $7 i32.const 32 i32.store8 - local.get $9 + local.get $7 i32.const 1 i32.add - local.tee $10 + local.tee $7 local.get $1 call $~lib/util/number/dtoa_buffered - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $10 local.get $6 - local.get $10 + local.get $7 + local.get $8 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $8 + local.get $6 i32.const 1 - local.get $7 + local.get $9 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 1 i32.gt_s if - local.get $10 + local.get $7 local.get $2 call $~lib/util/number/dtoa_buffered - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $10 local.get $6 - local.get $10 + local.get $7 + local.get $8 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $8 + local.get $6 i32.const 1 - local.get $7 + local.get $9 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 2 i32.gt_s if - local.get $10 + local.get $7 local.get $3 call $~lib/util/number/dtoa_buffered - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $10 local.get $6 - local.get $10 + local.get $7 + local.get $8 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $8 + local.get $6 i32.const 1 - local.get $7 + local.get $9 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 3 i32.gt_s if - local.get $10 + local.get $7 local.get $4 call $~lib/util/number/dtoa_buffered - local.set $6 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $10 local.get $6 - local.get $10 + local.get $7 + local.get $8 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $8 + local.get $6 i32.const 1 - local.get $7 + local.get $9 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 4 i32.gt_s if - local.get $10 + local.get $7 local.get $5 call $~lib/util/number/dtoa_buffered local.set $0 i32.const 3 global.set $~argumentsLength - local.get $8 - local.get $10 + local.get $6 + local.get $7 local.get $0 - local.get $10 + local.get $7 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $8 + local.get $6 i32.const 1 - local.get $7 + local.get $9 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop end end end end - local.get $10 + local.get $7 i32.const 1 i32.sub else - local.get $9 + local.get $7 end i32.const 10 i32.store8 - local.get $8 + local.get $6 i32.const 1 i32.store offset=4 i32.const 2 - local.get $8 + local.get $6 i32.const 1 - local.get $7 + local.get $9 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop - local.get $8 + local.get $6 + local.tee $0 i32.const 19024 i32.ge_u if @@ -3818,20 +3969,20 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $8 + local.get $0 i32.const 4 i32.sub - local.set $7 - local.get $8 + local.set $6 + local.get $0 i32.const 15 i32.and i32.const 1 - local.get $8 + local.get $0 select if (result i32) i32.const 1 else - local.get $7 + local.get $6 i32.load i32.const 1 i32.and @@ -3844,18 +3995,17 @@ call $~lib/wasi/index/abort unreachable end - local.get $7 - local.get $7 + local.get $6 + local.get $6 i32.load i32.const 1 i32.or i32.store - local.get $7 + local.get $6 call $~lib/rt/tlsf/insertBlock end ) (func $~start - (local $0 i32) global.get $~started if return @@ -3878,10 +4028,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 0 i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store i32.const 0 diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index cd79f2650a..b126759efd 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -99,8 +99,8 @@ i32.and i32.eq if - local.get $0 global.get $~lib/rt/itcms/iter + local.get $0 i32.eq if local.get $0 @@ -160,11 +160,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $2 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $2 i32.or i32.store offset=4 end @@ -178,10 +178,10 @@ if (result i32) i32.const 1 else - local.get $1 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -218,11 +218,11 @@ local.get $1 i32.store offset=8 local.get $1 - local.get $0 local.get $1 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -283,19 +283,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $2 + local.tee $3 i32.clz i32.sub - local.set $3 - local.get $2 + local.set $4 local.get $3 + local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $3 + local.get $4 i32.const 7 i32.sub local.set $3 @@ -361,22 +361,24 @@ local.get $4 i32.eqz if + local.get $3 + i32.const 2 + i32.shl local.get $0 + i32.add local.get $3 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $1 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.set $2 - local.get $1 - local.get $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.eqz if local.get $0 @@ -624,13 +626,16 @@ i32.shl i32.or i32.store - local.get $0 local.get $5 i32.const 2 i32.shl + local.get $0 i32.add - local.tee $0 + local.get $5 + i32.const 2 + i32.shl local.get $0 + i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -667,11 +672,11 @@ i32.load offset=1568 local.tee $2 if + local.get $1 local.get $2 i32.const 4 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -695,11 +700,11 @@ local.set $1 end else + local.get $1 local.get $0 i32.const 1572 i32.add - local.get $1 - i32.gt_u + i32.lt_u if i32.const 0 i32.const 1440 @@ -1082,8 +1087,7 @@ local.get $0 i32.store offset=4 global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 + global.get $~lib/rt/itcms/toSpace i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1102,11 +1106,11 @@ i32.and local.tee $2 if (result i32) - local.get $0 local.get $2 i32.ctz i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1116,12 +1120,12 @@ i32.and local.tee $1 if (result i32) - local.get $0 local.get $1 i32.ctz local.tee $1 i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=4 local.tee $2 @@ -1134,7 +1138,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 i32.ctz local.get $1 @@ -1143,6 +1146,7 @@ i32.add i32.const 2 i32.shl + local.get $0 i32.add i32.load offset=96 else @@ -1737,13 +1741,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 - local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $0 i32.add global.set $~lib/rt/itcms/threshold end @@ -1872,18 +1876,13 @@ local.get $0 i32.const 4 i32.add - local.tee $1 local.get $0 i32.load i32.const -4 i32.and i32.add + local.tee $1 local.get $1 - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add i32.load i32.const -3 i32.and @@ -1900,19 +1899,19 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 local.get $3 i32.store offset=8 local.get $3 - local.get $0 local.get $3 i32.load offset=4 i32.const 3 i32.and + local.get $0 i32.or i32.store offset=4 local.get $1 From 2fa860f035f1759f13cb2b8869a8c45f0b786ac1 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 18 Aug 2021 08:36:55 +0300 Subject: [PATCH 09/32] better --- src/module.ts | 3 +- tests/compiler/builtins.optimized.wat | 17 +- tests/compiler/call-super.optimized.wat | 208 +- tests/compiler/class-extends.optimized.wat | 4 +- tests/compiler/class-implements.optimized.wat | 31 +- .../class-overloading-cast.optimized.wat | 52 +- .../compiler/class-overloading.optimized.wat | 31 +- .../class-static-function.optimized.wat | 4 +- tests/compiler/class.optimized.wat | 86 +- tests/compiler/comma.optimized.wat | 11 + tests/compiler/constructor.optimized.wat | 208 +- tests/compiler/do.optimized.wat | 31 +- .../empty-exportruntime.optimized.wat | 208 +- tests/compiler/empty-new.optimized.wat | 31 +- tests/compiler/exports.optimized.wat | 31 +- .../exportstar-rereexport.optimized.wat | 31 +- .../extends-baseaggregate.optimized.wat | 86 +- .../compiler/extends-recursive.optimized.wat | 31 +- tests/compiler/features/simd.optimized.wat | 186 +- .../field-initialization.optimized.wat | 94 +- tests/compiler/for.optimized.wat | 31 +- tests/compiler/function-call.optimized.wat | 31 +- .../function-expression.optimized.wat | 31 +- tests/compiler/getter-call.optimized.wat | 31 +- tests/compiler/heap.optimized.wat | 33 +- .../implicit-getter-setter.optimized.wat | 31 +- tests/compiler/infer-array.optimized.wat | 208 +- tests/compiler/infer-generic.optimized.wat | 34 +- tests/compiler/inlining.optimized.wat | 208 +- tests/compiler/instanceof-class.optimized.wat | 31 +- tests/compiler/issues/1095.optimized.wat | 34 +- tests/compiler/issues/1225.optimized.wat | 31 +- tests/compiler/issues/1699.optimized.wat | 86 +- tests/compiler/logical.optimized.wat | 31 +- tests/compiler/managed-cast.optimized.wat | 40 +- tests/compiler/new.optimized.wat | 31 +- tests/compiler/number.optimized.wat | 150 +- tests/compiler/object-literal.optimized.wat | 158 +- .../optional-typeparameters.optimized.wat | 31 +- tests/compiler/reexport.optimized.wat | 31 +- tests/compiler/rereexport.optimized.wat | 31 +- tests/compiler/resolve-access.optimized.wat | 208 +- tests/compiler/resolve-binary.optimized.wat | 275 +- .../resolve-elementaccess.optimized.wat | 89 +- .../resolve-function-expression.optimized.wat | 150 +- tests/compiler/resolve-nested.optimized.wat | 31 +- tests/compiler/resolve-new.optimized.wat | 31 +- .../resolve-propertyaccess.optimized.wat | 211 +- tests/compiler/resolve-ternary.optimized.wat | 203 +- tests/compiler/resolve-unary.optimized.wat | 219 +- tests/compiler/rt/finalize.optimized.wat | 31 +- tests/compiler/rt/instanceof.optimized.wat | 31 +- .../runtime-incremental-export.optimized.wat | 208 +- .../rt/runtime-minimal-export.optimized.wat | 116 +- tests/compiler/std-wasi/console.optimized.wat | 149 +- tests/compiler/std-wasi/crypto.optimized.wat | 213 +- tests/compiler/std-wasi/process.optimized.wat | 237 +- .../compiler/std/array-literal.optimized.wat | 208 +- tests/compiler/std/array.optimized.wat | 3608 ++++---- tests/compiler/std/arraybuffer.optimized.wat | 86 +- tests/compiler/std/dataview.optimized.wat | 86 +- tests/compiler/std/date.optimized.wat | 438 +- tests/compiler/std/map.optimized.wat | 110 +- tests/compiler/std/math.optimized.wat | 610 +- tests/compiler/std/new.optimized.wat | 31 +- .../std/operator-overloading.optimized.wat | 31 +- tests/compiler/std/pointer.optimized.wat | 116 +- tests/compiler/std/set.optimized.wat | 110 +- tests/compiler/std/static-array.optimized.wat | 212 +- tests/compiler/std/staticarray.optimized.wat | 898 +- .../std/string-casemapping.optimized.wat | 208 +- .../std/string-encoding.optimized.wat | 208 +- tests/compiler/std/string.optimized.wat | 224 +- tests/compiler/std/symbol.optimized.wat | 89 +- tests/compiler/std/trace.optimized.wat | 4 +- tests/compiler/std/typedarray.optimized.wat | 7893 ++++++++--------- tests/compiler/std/uri.optimized.wat | 341 +- tests/compiler/super-inline.optimized.wat | 34 +- tests/compiler/tablebase.optimized.wat | 4 +- tests/compiler/templateliteral.optimized.wat | 211 +- tests/compiler/throw.optimized.wat | 40 +- tests/compiler/typeof.optimized.wat | 31 +- tests/compiler/wasi/trace.optimized.wat | 434 +- tests/compiler/while.optimized.wat | 31 +- 84 files changed, 9952 insertions(+), 11453 deletions(-) diff --git a/src/module.ts b/src/module.ts index 86691a5509..599a478043 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2274,7 +2274,6 @@ export class Module { passes.push("simplify-locals-notee-nostructure"); passes.push("flatten"); passes.push("vacuum"); - passes.push("local-cse"); passes.push("licm"); passes.push("simplify-locals-notee-nostructure"); passes.push("merge-locals"); @@ -2300,6 +2299,7 @@ export class Module { } passes.push("simplify-locals-notee-nostructure"); passes.push("vacuum"); + passes.push("local-cse"); passes.push("reorder-locals"); passes.push("remove-unused-brs"); @@ -2382,6 +2382,7 @@ export class Module { passes.push("inlining-optimizing"); passes.push("directize"); passes.push("dae-optimizing"); + passes.push("local-cse"); passes.push("merge-locals"); passes.push("coalesce-locals"); diff --git a/tests/compiler/builtins.optimized.wat b/tests/compiler/builtins.optimized.wat index 97c3dc14d9..e51cfe4916 100644 --- a/tests/compiler/builtins.optimized.wat +++ b/tests/compiler/builtins.optimized.wat @@ -218,9 +218,10 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $0 i64.const 0 i64.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 0 i32.store offset=8 i32.const 31 @@ -560,12 +561,13 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 1168 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1056 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1056 i32.store offset=4 i32.const 1056 @@ -581,18 +583,19 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 1168 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1168 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1168 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1200 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1200 i32.store offset=4 i32.const 1200 diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index c3b5dd33e3..0347d4aa18 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -283,19 +283,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -366,17 +366,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -631,11 +629,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -991,13 +986,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1086,8 +1081,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1249,12 +1244,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1270,20 +1265,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1291,16 +1286,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1311,13 +1305,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1325,34 +1319,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1366,16 +1360,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1383,18 +1377,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1405,11 +1399,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1419,14 +1413,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1439,92 +1432,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1540,18 +1526,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1560,18 +1546,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1580,10 +1566,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1592,20 +1578,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1620,10 +1606,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1640,16 +1626,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1672,8 +1658,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/class-extends.optimized.wat b/tests/compiler/class-extends.optimized.wat index c847b7d897..1692f24d6e 100644 --- a/tests/compiler/class-extends.optimized.wat +++ b/tests/compiler/class-extends.optimized.wat @@ -7,6 +7,7 @@ (export "memory" (memory $0)) (export "test" (func $export:class-extends/test)) (func $export:class-extends/test (param $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23,6 +24,7 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store local.get $0 @@ -37,7 +39,7 @@ local.get $0 i32.const 3 i32.store16 offset=4 - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index e5cd45dfdc..47d0e59ad4 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -305,19 +305,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -388,17 +388,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -653,11 +651,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1013,13 +1008,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1108,8 +1103,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index e9deb91f82..a476c25ea6 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -319,19 +319,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -402,17 +402,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -667,11 +665,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1027,13 +1022,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1122,8 +1117,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1593,7 +1588,6 @@ (func $start:class-overloading-cast (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1753,6 +1747,7 @@ local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.tee $1 block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) block $default block $case1 @@ -1780,7 +1775,7 @@ end local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1488 i32.store offset=4 local.get $0 @@ -1832,12 +1827,12 @@ i32.const 6 i32.eq select - local.tee $0 + local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1488 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1912,10 +1907,10 @@ i32.sub i32.load drop - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1456 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1456 i32.store offset=4 i32.const 1456 @@ -1932,14 +1927,13 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $class-overloading-cast/c - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1600 i32.store offset=12 - local.get $2 + local.get $1 i32.const 8 i32.sub i32.load diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index 5527e883bb..67e7a6d41b 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -343,19 +343,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -426,17 +426,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -691,11 +689,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1051,13 +1046,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1146,8 +1141,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/class-static-function.optimized.wat b/tests/compiler/class-static-function.optimized.wat index 0eb6807c75..3f47129a82 100644 --- a/tests/compiler/class-static-function.optimized.wat +++ b/tests/compiler/class-static-function.optimized.wat @@ -17,6 +17,7 @@ i32.const 42 ) (func $~start + (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -33,9 +34,10 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index a2b0cece7c..f19ff074c9 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -295,19 +295,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -378,17 +378,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -643,11 +641,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1003,13 +998,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1098,8 +1093,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1486,8 +1481,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1611,9 +1605,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1627,7 +1620,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1636,15 +1629,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1659,64 +1652,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1724,7 +1710,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 diff --git a/tests/compiler/comma.optimized.wat b/tests/compiler/comma.optimized.wat index 30a6004906..70ee552782 100644 --- a/tests/compiler/comma.optimized.wat +++ b/tests/compiler/comma.optimized.wat @@ -81,6 +81,17 @@ global.set $comma/b i32.const 2 global.set $comma/a + global.get $comma/b + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end loop $for-loop|0 global.get $comma/a local.get $0 diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index c3b58f47de..5046a115b0 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -360,19 +360,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -443,17 +443,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -708,11 +706,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1068,13 +1063,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1163,8 +1158,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1326,12 +1321,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1347,20 +1342,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1368,16 +1363,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1388,13 +1382,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1402,34 +1396,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1443,16 +1437,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1460,18 +1454,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1482,11 +1476,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1496,14 +1490,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1516,92 +1509,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1617,18 +1603,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1637,18 +1623,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1657,10 +1643,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1669,20 +1655,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1697,10 +1683,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1717,16 +1703,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1749,8 +1735,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index ea6b6474cf..0ec719b7d6 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -283,19 +283,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -366,17 +366,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -631,11 +629,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -991,13 +986,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1086,8 +1081,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 6471fed617..627194dd04 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -301,19 +301,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -384,17 +384,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -649,11 +647,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1009,13 +1004,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1104,8 +1099,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1267,12 +1262,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1288,20 +1283,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1309,16 +1304,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1329,13 +1323,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1343,34 +1337,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1384,16 +1378,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1401,18 +1395,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1423,11 +1417,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1437,14 +1431,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1457,92 +1450,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1558,18 +1544,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1578,18 +1564,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1598,10 +1584,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1610,20 +1596,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1638,10 +1624,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1658,16 +1644,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1690,8 +1676,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index d77208c668..52cfbbde86 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -279,19 +279,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -362,17 +362,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -627,11 +625,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -987,13 +982,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1082,8 +1077,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index c1aed13673..33752af084 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -333,19 +333,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -416,17 +416,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -681,11 +679,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1041,13 +1036,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1136,8 +1131,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index b7aa72ea7f..6ed7bd9500 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -334,19 +334,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -417,17 +417,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -682,11 +680,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1042,13 +1037,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1137,8 +1132,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index ba206a97de..422e52585e 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -301,19 +301,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -384,17 +384,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -649,11 +647,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1009,13 +1004,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1104,8 +1099,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1492,8 +1487,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1617,9 +1611,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1633,7 +1626,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1642,15 +1635,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1665,64 +1658,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1730,7 +1716,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index 6cfc9f0fd7..169c8e6ab5 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -290,19 +290,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -373,17 +373,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -638,11 +636,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -998,13 +993,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1093,8 +1088,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/features/simd.optimized.wat b/tests/compiler/features/simd.optimized.wat index 38e87c090d..6b1df4a9bf 100644 --- a/tests/compiler/features/simd.optimized.wat +++ b/tests/compiler/features/simd.optimized.wat @@ -1,9 +1,10 @@ (module (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -65,19 +66,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -148,17 +149,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -413,11 +412,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -745,12 +741,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -761,13 +764,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -775,32 +778,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -816,16 +819,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -833,7 +836,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -841,10 +844,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if i32.const 0 @@ -855,11 +858,11 @@ unreachable end end - local.get $3 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -869,14 +872,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $2 - i32.load - local.set $3 local.get $1 + i32.load + local.set $2 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -889,65 +891,61 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if + local.get $1 local.get $2 - local.get $3 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $2 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else + local.get $1 local.get $2 - local.get $3 i32.const -2 i32.and i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $0 + local.get $0 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -1002,32 +1000,16 @@ ) (func $~start (local $0 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 64 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 local.get $0 v128.load offset=16 v128.store offset=32 local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store8 @@ -1047,16 +1029,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store16 @@ -1076,16 +1050,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store @@ -1105,16 +1071,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i64.const 42 i64.store @@ -1134,16 +1092,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store @@ -1163,16 +1113,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i64.const 42 i64.store diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 8abbd485bb..76eef70f93 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -308,19 +308,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -391,17 +391,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -656,11 +654,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1016,13 +1011,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1111,8 +1106,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1499,8 +1494,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1624,9 +1618,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1640,7 +1633,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1649,15 +1642,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1672,64 +1665,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1737,7 +1723,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -3144,8 +3130,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $1 i32.const 4 i32.const 23 call $~lib/rt/itcms/__new @@ -3158,6 +3143,7 @@ local.get $0 local.get $2 call $~lib/rt/itcms/__link + local.get $1 local.get $0 i32.store offset=24 local.get $0 @@ -3172,8 +3158,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $1 i32.const 4 i32.const 24 call $~lib/rt/itcms/__new @@ -3192,6 +3177,7 @@ local.get $0 local.get $2 call $~lib/rt/itcms/__link + local.get $1 local.get $0 i32.store local.get $0 diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index f6b45dd1d5..c9d712467e 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -283,19 +283,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -366,17 +366,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -631,11 +629,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -991,13 +986,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1086,8 +1081,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index 7ff42f0739..c78c80542e 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -321,19 +321,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -404,17 +404,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -669,11 +667,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1029,13 +1024,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1124,8 +1119,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index 5d137c4339..0a4c710fde 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -354,19 +354,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -437,17 +437,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -702,11 +700,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1062,13 +1057,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1157,8 +1152,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 0a5f5429b0..292a3ae456 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -286,19 +286,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -369,17 +369,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -634,11 +632,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -994,13 +989,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1089,8 +1084,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index f49e9bb803..fcf38c83cf 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -74,19 +74,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -157,17 +157,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -422,11 +420,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -845,14 +840,8 @@ i32.const -4 i32.and i32.add - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add + local.tee $0 + local.get $0 i32.load i32.const -3 i32.and diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index afd10f5826..c267287ad2 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -296,19 +296,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -379,17 +379,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -644,11 +642,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1004,13 +999,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1099,8 +1094,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index b4e5aaaad1..baf230cf79 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -322,19 +322,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -405,17 +405,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -670,11 +668,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1030,13 +1025,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1125,8 +1120,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1288,12 +1283,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1309,20 +1304,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1330,16 +1325,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1350,13 +1344,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1364,34 +1358,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1405,16 +1399,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1422,18 +1416,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1444,11 +1438,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1458,14 +1452,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1478,92 +1471,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1579,18 +1565,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1599,18 +1585,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1619,10 +1605,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1631,20 +1617,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1659,10 +1645,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1679,16 +1665,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1711,8 +1697,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index 8a0e36d29c..b86e3e69ea 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -308,19 +308,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -391,17 +391,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -656,11 +654,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1016,13 +1011,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1111,8 +1106,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1598,9 +1593,10 @@ i32.const 2 i32.store global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index 4a432893e3..905e916232 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -295,19 +295,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -378,17 +378,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -643,11 +641,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1003,13 +998,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1098,8 +1093,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1261,12 +1256,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1282,20 +1277,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1303,16 +1298,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1323,13 +1317,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1337,34 +1331,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1378,16 +1372,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1395,18 +1389,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1417,11 +1411,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1431,14 +1425,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1451,92 +1444,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1552,18 +1538,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1572,18 +1558,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1592,10 +1578,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1604,20 +1590,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1632,10 +1618,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1652,16 +1638,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1684,8 +1670,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index 15084a54fd..7de59f9f16 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -297,19 +297,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -380,17 +380,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -645,11 +643,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1005,13 +1000,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1100,8 +1095,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index c928eac58a..0a124e1d68 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -290,19 +290,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -373,17 +373,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -638,11 +636,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -998,13 +993,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1093,8 +1088,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1567,9 +1562,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index d80f36fe2f..d03b93fedb 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -292,19 +292,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -375,17 +375,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -640,11 +638,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1000,13 +995,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1095,8 +1090,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index b0f785c1b7..83c99381a4 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -297,19 +297,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -380,17 +380,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -645,11 +643,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1005,13 +1000,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1100,8 +1095,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1488,8 +1483,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1613,9 +1607,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1629,7 +1622,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1638,15 +1631,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1661,64 +1654,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1726,7 +1712,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index 0518b4aeec..fd87ff05f0 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -283,19 +283,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -366,17 +366,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -631,11 +629,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -991,13 +986,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1086,8 +1081,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index b305a85ae5..fa950d9502 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -287,19 +287,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -370,17 +370,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -635,11 +633,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -995,13 +990,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1090,8 +1085,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1580,9 +1575,10 @@ call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -1656,9 +1652,10 @@ call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1718,9 +1715,10 @@ call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index 8136285fb0..e9dc8e3bdd 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -323,19 +323,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -406,17 +406,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -671,11 +669,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1031,13 +1026,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1126,8 +1121,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 7ec77fbe33..948047cf01 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -330,19 +330,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -413,17 +413,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -678,11 +676,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1038,13 +1033,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1133,8 +1128,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1323,14 +1318,14 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $1 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1338,16 +1333,15 @@ local.get $0 i32.const 16 i32.add - local.set $1 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $4 - local.get $1 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1358,13 +1352,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1372,34 +1366,34 @@ i32.const 4 i32.sub end - local.tee $1 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $3 - local.get $1 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $2 i32.add else - local.get $1 + local.get $2 end i32.const 4 - local.get $4 + local.get $5 i32.load offset=1568 - local.get $3 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1413,16 +1407,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 + local.tee $3 local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1430,18 +1424,18 @@ unreachable end end + local.get $5 local.get $4 - local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1452,11 +1446,11 @@ unreachable end end - local.get $2 + local.get $3 i32.load i32.const -4 i32.and - local.get $1 + local.get $2 i32.lt_u if i32.const 0 @@ -1466,14 +1460,13 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.tee $3 + local.get $3 i32.load - local.set $2 - local.get $1 + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1486,40 +1479,40 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $5 + local.tee $1 i32.const 16 i32.ge_u if local.get $3 - local.get $2 + local.get $4 i32.const 2 i32.and - local.get $1 + local.get $2 i32.or i32.store - local.get $1 + local.get $2 local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $5 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $3 - local.get $2 + local.get $4 i32.const -2 i32.and i32.store @@ -1531,51 +1524,44 @@ i32.const -4 i32.and i32.add - local.get $3 - i32.const 4 - i32.add - local.get $3 - i32.load - i32.const -4 - i32.and - i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end local.get $3 - local.tee $1 i32.const 1 i32.store offset=12 - local.get $1 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white + local.set $1 local.get $3 + global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $1 - local.get $2 i32.store offset=8 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $3 i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $1 + local.get $3 i32.load i32.const -4 i32.and @@ -1583,7 +1569,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $3 i32.const 20 i32.add local.tee $3 diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 2278576ca7..cf0dde1091 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1,11 +1,12 @@ (module (type $i32_=>_none (func (param i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) @@ -354,19 +355,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -437,17 +438,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -702,11 +701,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1112,13 +1108,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1162,8 +1158,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1302,12 +1298,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1318,13 +1321,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1332,32 +1335,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1373,16 +1376,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1390,7 +1393,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -1398,10 +1401,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if i32.const 0 @@ -1412,11 +1415,11 @@ unreachable end end - local.get $3 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -1426,14 +1429,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $2 - i32.load - local.set $3 local.get $1 + i32.load + local.set $2 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -1446,65 +1448,61 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if + local.get $1 local.get $2 - local.get $3 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $2 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else + local.get $1 local.get $2 - local.get $3 i32.const -2 i32.and i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $0 + local.get $0 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1568,15 +1566,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2979,9 +2971,10 @@ i32.const 1056 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3029,16 +3022,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 8 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $6 i32.const 0 i32.store @@ -3382,7 +3367,8 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3694,9 +3680,10 @@ f64.const 0 f64.store offset=8 global.get $~lib/memory/__stack_pointer + local.tee $0 local.get $2 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -3755,7 +3742,8 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index fe226fd50a..a3fad92ebd 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -295,19 +295,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -378,17 +378,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -643,11 +641,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1003,13 +998,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1098,8 +1093,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 2a8efeb9b7..45f2901ca7 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -372,19 +372,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -455,17 +455,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -720,11 +718,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1080,13 +1075,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1175,8 +1170,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index 81cfd7d615..e1e6eda025 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -334,19 +334,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -417,17 +417,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -682,11 +680,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1042,13 +1037,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1137,8 +1132,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index ab87cda390..65682e549b 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -308,19 +308,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -391,17 +391,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -656,11 +654,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1016,13 +1011,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1111,8 +1106,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1274,12 +1269,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1295,20 +1290,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1316,16 +1311,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1336,13 +1330,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1350,34 +1344,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1391,16 +1385,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1408,18 +1402,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1430,11 +1424,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1444,14 +1438,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1464,92 +1457,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1565,18 +1551,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1585,18 +1571,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1605,10 +1591,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1617,20 +1603,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1645,10 +1631,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1665,16 +1651,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1697,8 +1683,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index 6780f6916a..68b0c350c8 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -624,19 +624,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -707,17 +707,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -972,11 +970,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1332,13 +1327,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1427,8 +1422,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1590,12 +1585,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1611,20 +1606,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1632,16 +1627,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1652,13 +1646,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1666,34 +1660,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1707,16 +1701,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1724,18 +1718,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1746,11 +1740,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1760,14 +1754,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1780,92 +1773,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1881,18 +1867,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1901,18 +1887,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1921,10 +1907,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1933,20 +1919,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1961,10 +1947,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1981,16 +1967,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -2013,8 +1999,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 @@ -4286,7 +4272,6 @@ (func $start:resolve-binary (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -5239,12 +5224,11 @@ local.get $0 global.set $resolve-binary/foo global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $resolve-binary/foo - local.tee $1 + local.tee $0 i32.store offset=12 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 10880 @@ -5269,12 +5253,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 10912 @@ -5299,12 +5282,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 10944 @@ -5329,12 +5311,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 10976 @@ -5359,12 +5340,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11008 @@ -5389,12 +5369,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11040 @@ -5419,12 +5398,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11072 @@ -5449,12 +5427,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11104 @@ -5479,12 +5456,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11136 @@ -5509,12 +5485,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11168 @@ -5539,12 +5514,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11200 @@ -5569,12 +5543,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/foo - local.tee $2 + local.tee $1 i32.store offset=12 + local.get $0 local.get $1 - local.get $2 i32.store offset=16 local.get $0 i32.const 11232 @@ -5603,15 +5576,13 @@ global.set $resolve-binary/bar2 global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-binary/bar i32.store offset=4 - local.get $1 + local.get $0 global.get $resolve-binary/bar2 local.tee $1 - local.tee $2 i32.store offset=8 - local.get $2 + local.get $1 global.set $resolve-binary/bar local.get $0 global.get $resolve-binary/bar diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 0d0ab84bb4..400f653ae3 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -360,19 +360,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -443,17 +443,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -708,11 +706,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1068,13 +1063,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1163,8 +1158,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1551,8 +1546,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1676,9 +1670,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1692,7 +1685,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1701,15 +1694,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1724,64 +1717,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1789,7 +1775,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -3566,7 +3552,6 @@ i32.shl local.get $0 i32.add - local.tee $4 local.tee $0 i32.const 2 i32.add @@ -3577,7 +3562,7 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $0 i32.const 46 i32.store16 local.get $1 diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index bd1158bbad..4680dd477e 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -323,19 +323,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -406,17 +406,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -671,11 +669,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1031,13 +1026,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1126,8 +1121,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1316,14 +1311,14 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $1 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1331,16 +1326,15 @@ local.get $0 i32.const 16 i32.add - local.set $1 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $4 - local.get $1 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1351,13 +1345,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1365,34 +1359,34 @@ i32.const 4 i32.sub end - local.tee $1 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $3 - local.get $1 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $2 i32.add else - local.get $1 + local.get $2 end i32.const 4 - local.get $4 + local.get $5 i32.load offset=1568 - local.get $3 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1406,16 +1400,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 + local.tee $3 local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1423,18 +1417,18 @@ unreachable end end + local.get $5 local.get $4 - local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1445,11 +1439,11 @@ unreachable end end - local.get $2 + local.get $3 i32.load i32.const -4 i32.and - local.get $1 + local.get $2 i32.lt_u if i32.const 0 @@ -1459,14 +1453,13 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.tee $3 + local.get $3 i32.load - local.set $2 - local.get $1 + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1479,40 +1472,40 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $5 + local.tee $1 i32.const 16 i32.ge_u if local.get $3 - local.get $2 + local.get $4 i32.const 2 i32.and - local.get $1 + local.get $2 i32.or i32.store - local.get $1 + local.get $2 local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $5 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $3 - local.get $2 + local.get $4 i32.const -2 i32.and i32.store @@ -1524,51 +1517,44 @@ i32.const -4 i32.and i32.add - local.get $3 - i32.const 4 - i32.add - local.get $3 - i32.load - i32.const -4 - i32.and - i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end local.get $3 - local.tee $1 i32.const 1 i32.store offset=12 - local.get $1 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white + local.set $1 local.get $3 + global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $1 - local.get $2 i32.store offset=8 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $3 i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $1 + local.get $3 i32.load i32.const -4 i32.and @@ -1576,7 +1562,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $3 i32.const 20 i32.add local.tee $3 diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index d4d399e1d1..228f69b74d 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -292,19 +292,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -375,17 +375,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -640,11 +638,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1000,13 +995,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1095,8 +1090,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index 49ee7c006e..f76e0c9eda 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -288,19 +288,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -371,17 +371,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -636,11 +634,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -996,13 +991,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1091,8 +1086,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index 0a8ce7f630..e959f3e024 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -323,19 +323,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -406,17 +406,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -671,11 +669,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1031,13 +1026,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1126,8 +1121,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1289,12 +1284,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1310,20 +1305,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1331,16 +1326,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1351,13 +1345,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1365,34 +1359,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1406,16 +1400,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1423,18 +1417,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1445,11 +1439,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1459,14 +1453,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1479,92 +1472,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1580,18 +1566,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1600,18 +1586,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1620,10 +1606,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1632,20 +1618,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1660,10 +1646,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1680,16 +1666,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1712,8 +1698,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 @@ -2424,9 +2410,10 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 3632 i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index d0cb4621d9..c222646041 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -327,19 +327,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -410,17 +410,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -675,11 +673,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1035,13 +1030,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1130,8 +1125,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1320,14 +1315,14 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $1 + local.tee $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1335,16 +1330,15 @@ local.get $0 i32.const 16 i32.add - local.set $1 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $4 - local.get $4 - local.get $1 + local.tee $5 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1355,13 +1349,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1369,34 +1363,34 @@ i32.const 4 i32.sub end - local.tee $1 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $3 i32.eqz if memory.size - local.tee $3 - local.get $1 + local.tee $4 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $2 i32.add else - local.get $1 + local.get $2 end i32.const 4 - local.get $4 + local.get $5 i32.load offset=1568 - local.get $3 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1410,16 +1404,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 + local.tee $3 local.get $3 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1427,18 +1421,18 @@ unreachable end end + local.get $5 local.get $4 - local.get $3 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $4 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -1449,11 +1443,11 @@ unreachable end end - local.get $2 + local.get $3 i32.load i32.const -4 i32.and - local.get $1 + local.get $2 i32.lt_u if i32.const 0 @@ -1463,14 +1457,13 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.tee $3 + local.get $3 i32.load - local.set $2 - local.get $1 + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1483,40 +1476,40 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $5 + local.tee $1 i32.const 16 i32.ge_u if local.get $3 - local.get $2 + local.get $4 i32.const 2 i32.and - local.get $1 + local.get $2 i32.or i32.store - local.get $1 + local.get $2 local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $5 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $4 - local.get $1 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $3 - local.get $2 + local.get $4 i32.const -2 i32.and i32.store @@ -1528,51 +1521,44 @@ i32.const -4 i32.and i32.add - local.get $3 - i32.const 4 - i32.add - local.get $3 - i32.load - i32.const -4 - i32.and - i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end local.get $3 - local.tee $1 i32.const 1 i32.store offset=12 - local.get $1 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $2 i32.load offset=8 - local.set $2 - local.get $1 - global.get $~lib/rt/itcms/white + local.set $1 local.get $3 + global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $1 - local.get $2 i32.store offset=8 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $3 i32.or i32.store offset=4 + local.get $2 local.get $3 - local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $1 + local.get $3 i32.load i32.const -4 i32.and @@ -1580,7 +1566,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $3 i32.const 20 i32.add local.tee $3 @@ -3855,10 +3841,10 @@ ) (func $~start (local $0 i32) - (local $1 i64) + (local $1 i32) (local $2 i64) (local $3 i64) - (local $4 i32) + (local $4 i64) (local $5 i64) (local $6 i64) global.get $~lib/memory/__stack_pointer @@ -3932,9 +3918,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 3232 i32.store offset=4 local.get $0 @@ -3969,36 +3956,36 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $3 + local.tee $4 i64.const 31 i64.shl - local.tee $1 + local.tee $2 local.set $5 - local.get $2 + local.get $3 i64.const 32 i64.shr_u - local.tee $2 + local.tee $3 i64.const 31 i64.shl local.tee $6 - local.get $3 + local.get $4 i64.const 10 i64.shl i64.const 32 i64.shr_u - local.get $1 + local.get $2 i64.add - local.tee $1 + local.tee $2 i64.const 32 i64.shr_u i64.add - local.get $1 + local.get $2 i64.const 4294967295 i64.and - local.get $2 + local.get $3 i64.const 10 i64.shl i64.add @@ -4009,7 +3996,7 @@ i64.add i64.const 1 i64.sub - local.set $1 + local.set $2 local.get $5 i64.const 32 i64.shr_u @@ -4023,31 +4010,31 @@ i64.const 32 i64.shr_u i64.add - local.get $1 + local.get $2 global.get $~lib/util/number/_exp_pow i32.const 1 i32.add - local.get $1 local.get $2 + local.get $3 i64.const 2147483647 i64.mul - local.get $3 + local.get $4 i64.const 2147483647 i64.mul - local.get $3 + local.get $4 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $3 + local.tee $4 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $3 i64.const 4294966784 i64.mul - local.get $3 + local.get $4 i64.const 4294967295 i64.and i64.add @@ -4064,25 +4051,25 @@ call $~lib/util/number/prettify i32.const 1 i32.shl - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 call $~lib/rt/itcms/__new local.tee $0 i32.store local.get $0 i32.const 3472 - local.get $4 + local.get $1 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 local.get $0 i32.store - local.get $4 + local.get $1 i32.const 4464 i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 92bafc48da..41154ad3cc 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -343,19 +343,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -426,17 +426,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -691,11 +689,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1051,13 +1046,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1146,8 +1141,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1309,12 +1304,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1330,20 +1325,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1351,16 +1346,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1371,13 +1365,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1385,34 +1379,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1426,16 +1420,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1443,18 +1437,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1465,11 +1459,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1479,14 +1473,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1499,92 +1492,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1600,18 +1586,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1620,18 +1606,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1640,10 +1626,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1652,20 +1638,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1680,10 +1666,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1700,16 +1686,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1732,8 +1718,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 @@ -2146,7 +2132,6 @@ (func $start:resolve-unary (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -2701,12 +2686,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-unary/bar - local.tee $2 + local.tee $1 i32.store + local.get $0 local.get $1 - local.get $2 i32.store offset=12 local.get $0 i32.const 3680 @@ -2731,12 +2715,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $1 global.get $resolve-unary/bar - local.tee $2 + local.tee $1 i32.store + local.get $0 local.get $1 - local.get $2 i32.store offset=12 local.get $0 i32.const 3712 diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index 1af7f8d2c3..745c4833bb 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -286,19 +286,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -369,17 +369,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -634,11 +632,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -994,13 +989,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1104,8 +1099,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 6477efc953..a7ae982fd0 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -326,19 +326,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -409,17 +409,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -674,11 +672,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1034,13 +1029,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1129,8 +1124,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index 6471fed617..627194dd04 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -301,19 +301,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -384,17 +384,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -649,11 +647,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1009,13 +1004,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1104,8 +1099,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1267,12 +1262,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1288,20 +1283,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1309,16 +1304,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1329,13 +1323,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1343,34 +1337,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1384,16 +1378,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1401,18 +1395,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1423,11 +1417,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1437,14 +1431,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1457,92 +1450,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1558,18 +1544,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1578,18 +1564,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1598,10 +1584,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1610,20 +1596,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1638,10 +1624,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1658,16 +1644,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1690,8 +1676,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/rt/runtime-minimal-export.optimized.wat b/tests/compiler/rt/runtime-minimal-export.optimized.wat index 30e3b38ad2..a2c0f41a79 100644 --- a/tests/compiler/rt/runtime-minimal-export.optimized.wat +++ b/tests/compiler/rt/runtime-minimal-export.optimized.wat @@ -82,19 +82,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -165,17 +165,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -430,11 +428,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -782,16 +777,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $5 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -802,13 +796,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -816,29 +810,29 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size local.tee $4 - local.get $2 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 local.get $5 @@ -857,8 +851,8 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 local.get $4 i32.lt_s select @@ -866,7 +860,7 @@ i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -883,9 +877,9 @@ i32.shl call $~lib/rt/tlsf/addMemory local.get $5 - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -896,11 +890,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -911,13 +905,12 @@ unreachable end local.get $5 - local.get $3 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $4 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -930,28 +923,28 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub local.tee $6 i32.const 16 i32.ge_u if + local.get $2 local.get $4 - local.get $3 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 + local.tee $3 local.get $6 i32.const 4 i32.sub @@ -959,63 +952,56 @@ i32.or i32.store local.get $5 - local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else + local.get $2 local.get $4 - local.get $3 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/tcms/fromSpace - local.tee $1 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $1 local.get $2 global.get $~lib/rt/tcms/white - local.get $1 + local.get $0 i32.or i32.store offset=4 local.get $2 - local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $1 + local.get $0 local.get $2 i32.store offset=8 global.get $~lib/rt/tcms/total diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index a586c9b8c6..80024871f6 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -1,11 +1,11 @@ (module (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_none (func)) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) @@ -1052,19 +1052,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -1135,17 +1135,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -1400,11 +1398,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1732,12 +1727,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1748,13 +1750,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1762,32 +1764,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1803,16 +1805,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1820,7 +1822,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -1828,10 +1830,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if i32.const 0 @@ -1842,11 +1844,11 @@ unreachable end end - local.get $3 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -1856,14 +1858,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $2 - i32.load - local.set $3 local.get $1 + i32.load + local.set $2 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -1876,65 +1877,61 @@ call $~lib/wasi/index/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if + local.get $1 local.get $2 - local.get $3 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $2 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else + local.get $1 local.get $2 - local.get $3 i32.const -2 i32.and i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $0 + local.get $0 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -2096,10 +2093,10 @@ local.set $3 local.get $1 local.tee $2 - local.get $2 i32.const 20 i32.sub i32.load offset=16 + local.get $2 i32.add local.set $4 loop $while-continue|0 @@ -2169,16 +2166,8 @@ br $while-continue|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $3 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $2 local.get $1 i32.const 20 @@ -2605,13 +2594,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -2655,8 +2644,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -2904,15 +2893,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index 51c38ce1be..34c2b1b9bc 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -1,7 +1,7 @@ (module (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) @@ -926,19 +926,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -1009,17 +1009,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -1274,11 +1272,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1684,13 +1679,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1734,8 +1729,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1874,12 +1869,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1890,13 +1892,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1904,32 +1906,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1945,16 +1947,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1962,7 +1964,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -1970,10 +1972,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if i32.const 0 @@ -1984,11 +1986,11 @@ unreachable end end - local.get $3 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -1998,14 +2000,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $2 - i32.load - local.set $3 local.get $1 + i32.load + local.set $2 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -2018,65 +2019,61 @@ call $~lib/wasi/index/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if + local.get $1 local.get $2 - local.get $3 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $2 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else + local.get $1 local.get $2 - local.get $3 i32.const -2 i32.and i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $0 + local.get $0 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (local $2 i32) @@ -2316,15 +2313,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2744,12 +2735,13 @@ i32.const 4672 ) (func $~lib/crypto/crypto.getRandomValues (param $0 i32) + (local $1 i32) local.get $0 i32.load + local.tee $1 local.get $0 i32.load offset=4 - local.get $0 - i32.load + local.get $1 i32.sub i32.add local.get $0 @@ -2873,6 +2865,7 @@ end ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 i32.const 255 i32.and @@ -2889,60 +2882,62 @@ i32.const 1 return end - local.get $0 local.get $1 i32.const 255 i32.and - local.tee $0 - local.get $0 + local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 - call $~lib/util/number/utoa32_dec_lut + local.set $1 local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $1 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -4427,7 +4422,7 @@ i32.const -1 local.set $2 i32.const -1 - local.set $4 + local.set $3 block $break|0 block $case4|0 block $case3|0 @@ -4444,7 +4439,7 @@ end local.get $0 i32.load16_u offset=6 - local.tee $4 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -4465,7 +4460,7 @@ end local.get $0 i32.load16_u - local.tee $3 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 @@ -4482,7 +4477,7 @@ i32.const -1 i32.ne i32.add - local.get $4 + local.get $3 i32.const -1 i32.ne i32.add @@ -4491,13 +4486,13 @@ local.get $1 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.or local.get $2 i32.const 16 i32.shl i32.or - local.get $4 + local.get $3 i32.const 24 i32.shl i32.or @@ -4532,15 +4527,15 @@ i32.load offset=16 local.get $0 i32.add - local.set $4 + local.set $3 loop $while-continue|0 local.get $1 - local.get $4 + local.get $3 i32.lt_u if local.get $1 i32.load16_u - local.tee $3 + local.tee $4 i32.const 128 i32.lt_u if (result i32) @@ -4548,7 +4543,7 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 2048 i32.lt_u if (result i32) @@ -4556,13 +4551,13 @@ i32.const 2 i32.add else - local.get $4 + local.get $3 local.get $1 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $3 + local.get $4 i32.const 64512 i32.and i32.const 55296 @@ -4600,29 +4595,21 @@ br $while-continue|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $2 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $3 + call $~lib/rt/tlsf/__alloc + local.set $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $1 local.get $3 + local.get $1 call $~lib/string/String.UTF8.encodeUnsafe@varargs local.get $2 i32.ne @@ -4635,7 +4622,7 @@ unreachable end i32.const 6672 - local.get $3 + local.get $1 i32.store i32.const 6676 local.get $2 @@ -4646,7 +4633,7 @@ i32.const 6680 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $3 + local.get $1 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 90a4c72a0a..791a367808 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -1038,19 +1038,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -1121,17 +1121,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -1386,11 +1384,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1718,12 +1713,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1734,13 +1736,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1748,32 +1750,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1789,16 +1791,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1806,7 +1808,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -1814,10 +1816,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if i32.const 0 @@ -1828,11 +1830,11 @@ unreachable end end - local.get $3 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -1842,14 +1844,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $2 - i32.load - local.set $3 local.get $1 + i32.load + local.set $2 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -1862,65 +1863,61 @@ call $~lib/wasi/index/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if + local.get $1 local.get $2 - local.get $3 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $2 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else + local.get $1 local.get $2 - local.get $3 i32.const -2 i32.and i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $0 + local.get $0 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -1983,7 +1980,7 @@ i32.const -1 local.set $2 i32.const -1 - local.set $4 + local.set $3 block $break|0 block $case4|0 block $case3|0 @@ -2000,7 +1997,7 @@ end local.get $0 i32.load16_u offset=6 - local.tee $4 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -2021,7 +2018,7 @@ end local.get $0 i32.load16_u - local.tee $3 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 @@ -2038,7 +2035,7 @@ i32.const -1 i32.ne i32.add - local.get $4 + local.get $3 i32.const -1 i32.ne i32.add @@ -2047,13 +2044,13 @@ local.get $1 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.or local.get $2 i32.const 16 i32.shl i32.or - local.get $4 + local.get $3 i32.const 24 i32.shl i32.or @@ -2088,15 +2085,15 @@ i32.load offset=16 local.get $0 i32.add - local.set $4 + local.set $3 loop $while-continue|0 local.get $1 - local.get $4 + local.get $3 i32.lt_u if local.get $1 i32.load16_u - local.tee $3 + local.tee $4 i32.const 128 i32.lt_u if (result i32) @@ -2104,7 +2101,7 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 2048 i32.lt_u if (result i32) @@ -2112,13 +2109,13 @@ i32.const 2 i32.add else - local.get $4 + local.get $3 local.get $1 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $3 + local.get $4 i32.const 64512 i32.and i32.const 55296 @@ -2156,29 +2153,21 @@ br $while-continue|0 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $2 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $3 + call $~lib/rt/tlsf/__alloc + local.set $1 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.set $1 + local.set $3 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $1 local.get $3 + local.get $1 call $~lib/string/String.UTF8.encodeUnsafe@varargs local.get $2 i32.ne @@ -2191,7 +2180,7 @@ unreachable end i32.const 1088 - local.get $3 + local.get $1 i32.store i32.const 1092 local.get $2 @@ -2202,7 +2191,7 @@ i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $3 + local.get $1 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2622,13 +2611,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -2672,8 +2661,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -2921,15 +2910,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -4212,6 +4195,7 @@ end ) (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -4232,12 +4216,11 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $0 @@ -5026,17 +5009,7 @@ i32.load i32.add local.tee $8 - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $4 local.get $0 local.get $4 @@ -5130,7 +5103,7 @@ local.get $4 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $2 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 5168 @@ -5147,30 +5120,30 @@ br_if $__inlined_func$~lib/string/String#indexOf i32.const -1 local.set $0 - local.get $2 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $3 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf i32.const 0 - local.get $3 - local.get $3 + local.get $2 + local.get $2 select local.set $0 - local.get $3 + local.get $2 local.get $6 i32.sub - local.set $3 + local.set $2 loop $for-loop|00 local.get $0 - local.get $3 + local.get $2 i32.le_s if - local.get $2 + local.get $3 local.get $0 i32.const 5168 local.get $6 @@ -5191,15 +5164,15 @@ i32.const -1 i32.xor if - local.get $2 + local.get $3 i32.const 0 local.get $0 call $~lib/string/String#substring - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 local.get $2 + i32.store offset=8 + local.get $3 local.get $0 i32.const 1 i32.add @@ -5210,7 +5183,7 @@ local.get $0 i32.store offset=12 local.get $1 - local.get $3 + local.get $2 local.get $0 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set else @@ -5218,7 +5191,7 @@ i32.const 5200 i32.store offset=12 local.get $1 - local.get $2 + local.get $3 i32.const 5200 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set end @@ -5358,17 +5331,7 @@ i32.load i32.add local.tee $6 - local.set $1 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $1 local.get $1 local.get $5 diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 8799d16872..c157450e3d 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -381,19 +381,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -464,17 +464,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -729,11 +727,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1089,13 +1084,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1184,8 +1179,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1347,12 +1342,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1368,20 +1363,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1389,16 +1384,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1409,13 +1403,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1423,34 +1417,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1464,16 +1458,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1481,18 +1475,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1503,11 +1497,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1517,14 +1511,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1537,92 +1530,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1638,18 +1624,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1658,18 +1644,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1678,10 +1664,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1690,20 +1676,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1718,10 +1704,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1738,16 +1724,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1770,8 +1756,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 67a8d60c70..d5b68151a2 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1,8 +1,8 @@ (module (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) @@ -980,19 +980,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -1063,17 +1063,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -1328,11 +1326,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1738,13 +1733,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1788,8 +1783,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1928,12 +1923,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1944,13 +1946,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1958,32 +1960,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1999,16 +2001,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -2016,7 +2018,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -2024,10 +2026,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if i32.const 0 @@ -2038,11 +2040,11 @@ unreachable end end - local.get $3 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -2052,14 +2054,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $2 - i32.load - local.set $3 local.get $1 + i32.load + local.set $2 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -2072,65 +2073,61 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if + local.get $1 local.get $2 - local.get $3 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $2 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else + local.get $1 local.get $2 - local.get $3 i32.const -2 i32.and i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $0 + local.get $0 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2287,8 +2284,8 @@ local.set $2 local.get $0 i64.extend_i32_u - local.get $0 - i64.extend_i32_u + local.tee $4 + local.get $4 i64.const 32 i64.shl i64.or @@ -2385,15 +2382,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -4181,6 +4172,7 @@ local.get $2 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -4201,13 +4193,12 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $0 @@ -4567,6 +4558,8 @@ (func $~lib/math/NativeMath.seedRandom (param $0 i64) (local $1 i32) (local $2 i64) + (local $3 i64) + (local $4 i32) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -4590,6 +4583,7 @@ i64.xor global.set $~lib/math/random_state0_64 global.get $~lib/math/random_state0_64 + local.tee $3 i64.const -1 i64.xor local.tee $2 @@ -4645,6 +4639,7 @@ i32.xor global.set $~lib/math/random_state0_32 global.get $~lib/math/random_state0_32 + local.tee $4 i32.const 1831565813 i32.add local.tee $1 @@ -4679,13 +4674,13 @@ i32.const 0 i32.ne i32.const 0 - global.get $~lib/math/random_state0_32 + local.get $4 i32.const 0 global.get $~lib/math/random_state1_64 i64.const 0 i64.ne i32.const 0 - global.get $~lib/math/random_state0_64 + local.get $3 i64.const 0 i64.ne select @@ -4736,14 +4731,11 @@ i32.shl local.get $0 i32.add + local.tee $3 f32.load offset=4 local.tee $7 local.set $6 - local.get $8 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $3 f32.load local.set $5 i32.const 2 @@ -4867,6 +4859,7 @@ (local $4 i32) (local $5 f32) (local $6 f32) + (local $7 i32) local.get $1 local.get $2 i32.eq @@ -4907,12 +4900,9 @@ i32.shl local.get $0 i32.add + local.tee $7 f32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $7 f32.load i32.const 2 global.set $~argumentsLength @@ -4944,29 +4934,23 @@ i32.shl local.get $0 i32.add + local.tee $3 f32.load local.set $5 - local.get $1 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $2 i32.const 2 i32.shl local.get $0 i32.add + local.tee $3 f32.load f32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $5 f32.store local.get $2 @@ -4987,12 +4971,9 @@ i32.shl local.get $0 i32.add + local.tee $1 f32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $1 f32.load i32.const 2 global.set $~argumentsLength @@ -5020,68 +5001,63 @@ (local $7 f32) (local $8 f32) (local $9 i32) + (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $9 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 2 i32.shl + local.tee $10 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 2 - i32.shl local.get $0 + local.get $10 i32.add f32.load f32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $9 - local.get $2 + local.get $6 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add f32.load offset=4 f32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -5090,14 +5066,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 i32.add f32.load local.set $7 - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 @@ -5121,10 +5097,10 @@ i32.add local.get $7 f32.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 2 @@ -5133,10 +5109,10 @@ i32.add local.get $8 f32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -5156,11 +5132,10 @@ (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 f32) + (local $12 i32) (local $13 i32) (local $14 f32) - (local $15 i32) - (local $16 f32) + (local $15 f32) local.get $1 i32.const 48 i32.le_s @@ -5174,10 +5149,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -5185,7 +5161,7 @@ end local.get $0 f32.load - local.set $16 + local.set $15 local.get $0 f32.load offset=4 local.set $14 @@ -5193,8 +5169,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $16 - local.get $16 + local.get $15 + local.get $15 local.get $14 local.get $2 i32.load @@ -5204,39 +5180,39 @@ local.tee $1 select f32.store + local.get $15 + local.get $14 + local.get $1 + select + local.set $15 local.get $0 f32.load offset=8 - local.set $12 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $16 + local.get $0 + local.get $14 + local.get $15 + local.get $15 local.get $14 - local.get $1 - select - local.tee $16 - local.get $12 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $12 - local.get $16 - local.get $1 + local.tee $1 select f32.store offset=4 local.get $0 - local.get $16 - local.get $12 + local.get $15 + local.get $14 local.get $1 select f32.store offset=8 end local.get $0 f32.load - local.set $16 + local.set $15 local.get $0 f32.load offset=4 local.set $14 @@ -5244,8 +5220,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $16 - local.get $16 + local.get $15 + local.get $15 local.get $14 local.get $2 i32.load @@ -5256,7 +5232,7 @@ select f32.store local.get $0 - local.get $16 + local.get $15 local.get $14 local.get $1 select @@ -5265,7 +5241,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -5277,38 +5253,28 @@ local.get $1 i32.clz i32.sub - local.tee $5 + local.tee $6 i32.const 2 i32.shl local.tee $7 i32.const 1 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $13 + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 i32.add local.set $11 i32.const 0 local.set $7 loop $for-loop|1 - local.get $5 + local.get $6 local.get $7 i32.gt_u if local.get $7 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.const -1 i32.store @@ -5322,97 +5288,87 @@ local.get $1 i32.const 2 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $15 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $7 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $15 + local.get $13 i32.const 31 - local.get $15 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $7 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $15 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add - local.tee $7 - local.get $15 + local.tee $6 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $7 + local.tee $7 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $4 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $7 - local.get $15 - local.get $7 + local.get $6 + local.get $13 + local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $15 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $4 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $15 + local.get $13 i32.const 1 i32.add i64.extend_i32_u local.tee $9 i64.div_u - local.get $5 + local.get $6 local.get $7 i32.add i32.const 1 @@ -5425,25 +5381,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $4 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $6 + local.get $1 + local.get $8 i32.lt_u if - local.get $6 + local.get $8 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $6 i32.const 2 i32.shl local.tee $3 @@ -5452,54 +5410,54 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $5 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $13 + local.get $12 i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $6 + local.get $8 i32.const 1 i32.sub - local.set $6 + local.set $8 br $for-loop|3 end end - local.get $4 + local.get $1 i32.const 2 i32.shl - local.tee $6 - local.get $13 + local.tee $4 + local.get $12 i32.add local.get $3 i32.store - local.get $6 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $5 i32.store - local.get $7 + local.get $6 local.set $3 - local.get $5 - local.set $1 - local.get $4 - local.set $6 + local.get $7 + local.set $5 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.load local.tee $1 @@ -5508,7 +5466,7 @@ if local.get $0 local.get $1 - local.get $6 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -5516,21 +5474,21 @@ i32.load i32.const 1 i32.add - local.get $15 + local.get $13 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|4 end end local.get $10 call $~lib/rt/tlsf/__free - local.get $13 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) @@ -5662,14 +5620,11 @@ i32.shl local.get $0 i32.add + local.tee $3 f64.load offset=8 local.tee $7 local.set $6 - local.get $8 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 f64.load local.set $5 i32.const 2 @@ -5793,6 +5748,7 @@ (local $4 i32) (local $5 f64) (local $6 f64) + (local $7 i32) local.get $1 local.get $2 i32.eq @@ -5833,12 +5789,9 @@ i32.shl local.get $0 i32.add + local.tee $7 f64.load offset=8 - local.get $4 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $7 f64.load i32.const 2 global.set $~argumentsLength @@ -5870,29 +5823,23 @@ i32.shl local.get $0 i32.add + local.tee $3 f64.load local.set $5 - local.get $1 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $2 i32.const 3 i32.shl local.get $0 i32.add + local.tee $3 f64.load f64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $5 f64.store local.get $2 @@ -5913,12 +5860,9 @@ i32.shl local.get $0 i32.add + local.tee $1 f64.load offset=8 - local.get $4 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $1 f64.load i32.const 2 global.set $~argumentsLength @@ -5946,68 +5890,63 @@ (local $7 f64) (local $8 f64) (local $9 i32) + (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $9 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 3 i32.shl + local.tee $10 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 3 - i32.shl local.get $0 + local.get $10 i32.add f64.load f64.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $9 - local.get $2 + local.get $6 i32.sub i32.const 3 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $0 i32.add f64.load offset=8 f64.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -6016,14 +5955,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $4 i32.add f64.load local.set $7 - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $4 @@ -6047,10 +5986,10 @@ i32.add local.get $7 f64.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 3 @@ -6059,10 +5998,10 @@ i32.add local.get $8 f64.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -6082,11 +6021,10 @@ (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 f64) + (local $12 i32) (local $13 i32) (local $14 f64) - (local $15 i32) - (local $16 f64) + (local $15 f64) local.get $1 i32.const 48 i32.le_s @@ -6100,10 +6038,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -6111,7 +6050,7 @@ end local.get $0 f64.load - local.set $16 + local.set $15 local.get $0 f64.load offset=8 local.set $14 @@ -6119,8 +6058,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $16 - local.get $16 + local.get $15 + local.get $15 local.get $14 local.get $2 i32.load @@ -6130,39 +6069,39 @@ local.tee $1 select f64.store + local.get $15 + local.get $14 + local.get $1 + select + local.set $15 local.get $0 f64.load offset=16 - local.set $12 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $16 + local.get $0 + local.get $14 + local.get $15 + local.get $15 local.get $14 - local.get $1 - select - local.tee $16 - local.get $12 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $12 - local.get $16 - local.get $1 + local.tee $1 select f64.store offset=8 local.get $0 - local.get $16 - local.get $12 + local.get $15 + local.get $14 local.get $1 select f64.store offset=16 end local.get $0 f64.load - local.set $16 + local.set $15 local.get $0 f64.load offset=8 local.set $14 @@ -6170,8 +6109,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $16 - local.get $16 + local.get $15 + local.get $15 local.get $14 local.get $2 i32.load @@ -6182,7 +6121,7 @@ select f64.store local.get $0 - local.get $16 + local.get $15 local.get $14 local.get $1 select @@ -6191,7 +6130,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -6203,38 +6142,28 @@ local.get $1 i32.clz i32.sub - local.tee $5 + local.tee $6 i32.const 2 i32.shl local.tee $7 i32.const 1 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $13 + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 i32.add local.set $11 i32.const 0 local.set $7 loop $for-loop|1 - local.get $5 + local.get $6 local.get $7 i32.gt_u if local.get $7 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.const -1 i32.store @@ -6248,97 +6177,87 @@ local.get $1 i32.const 3 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $15 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $7 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $15 + local.get $13 i32.const 31 - local.get $15 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $7 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $15 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add - local.tee $7 - local.get $15 + local.tee $6 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $7 + local.tee $7 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $4 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $7 - local.get $15 - local.get $7 + local.get $6 + local.get $13 + local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $15 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $4 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $15 + local.get $13 i32.const 1 i32.add i64.extend_i32_u local.tee $9 i64.div_u - local.get $5 + local.get $6 local.get $7 i32.add i32.const 1 @@ -6351,25 +6270,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $4 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $6 + local.get $1 + local.get $8 i32.lt_u if - local.get $6 + local.get $8 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $6 i32.const 2 i32.shl local.tee $3 @@ -6378,54 +6299,54 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $5 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $13 + local.get $12 i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $6 + local.get $8 i32.const 1 i32.sub - local.set $6 + local.set $8 br $for-loop|3 end end - local.get $4 + local.get $1 i32.const 2 i32.shl - local.tee $6 - local.get $13 + local.tee $4 + local.get $12 i32.add local.get $3 i32.store - local.get $6 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $5 i32.store - local.get $7 + local.get $6 local.set $3 - local.get $5 - local.set $1 - local.get $4 - local.set $6 + local.get $7 + local.set $5 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.load local.tee $1 @@ -6434,7 +6355,7 @@ if local.get $0 local.get $1 - local.get $6 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -6442,21 +6363,21 @@ i32.load i32.const 1 i32.add - local.get $15 + local.get $13 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|4 end end local.get $10 call $~lib/rt/tlsf/__free - local.get $13 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) @@ -6544,14 +6465,11 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load offset=4 local.tee $6 local.set $5 - local.get $7 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $3 i32.load local.set $3 i32.const 2 @@ -6715,12 +6633,9 @@ i32.shl local.get $0 i32.add + local.tee $5 i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $5 i32.load i32.const 2 global.set $~argumentsLength @@ -6752,30 +6667,24 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load - local.set $3 - local.get $1 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.set $5 + local.get $3 local.get $2 i32.const 2 i32.shl local.get $0 i32.add + local.tee $3 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 2 - i32.shl - local.get $0 - i32.add local.get $3 + local.get $5 i32.store local.get $2 i32.const 1 @@ -6795,12 +6704,9 @@ i32.shl local.get $0 i32.add + local.tee $1 i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $1 i32.load i32.const 2 global.set $~argumentsLength @@ -6831,64 +6737,58 @@ local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $7 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 2 i32.shl + local.tee $8 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 2 - i32.shl local.get $0 + local.get $8 i32.add i32.load i32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $7 - local.get $2 + local.get $6 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -6897,14 +6797,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 i32.add i32.load local.set $7 - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 @@ -6928,10 +6828,10 @@ i32.add local.get $7 i32.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 2 @@ -6940,10 +6840,10 @@ i32.add local.get $8 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -6978,10 +6878,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -6989,87 +6890,87 @@ end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select i32.store + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load offset=8 - local.set $5 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 + local.get $4 + local.get $3 local.get $3 local.get $4 - select - local.tee $1 - local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $3 - local.get $0 - local.get $5 - local.get $1 - local.get $3 + local.tee $1 select i32.store offset=4 local.get $0 - local.get $1 - local.get $5 local.get $3 + local.get $4 + local.get $1 select i32.store offset=8 end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store local.get $0 - local.get $1 local.get $3 - local.get $2 + local.get $4 + local.get $1 select i32.store offset=4 return end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -7084,59 +6985,39 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $4 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -7146,10 +7027,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -7161,51 +7042,51 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 + local.get $6 local.get $9 - local.get $4 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 + local.tee $1 + local.get $1 local.get $9 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -7216,7 +7097,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -7229,25 +7110,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 @@ -7256,7 +7139,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -7265,42 +7148,42 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $10 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $7 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 - local.get $7 - local.set $5 + local.set $3 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 @@ -7312,7 +7195,7 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -7325,10 +7208,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -7377,14 +7260,11 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load offset=4 local.tee $6 local.set $5 - local.get $7 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $3 i32.load local.set $3 i32.const 2 @@ -7548,12 +7428,9 @@ i32.shl local.get $0 i32.add + local.tee $5 i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $5 i32.load i32.const 2 global.set $~argumentsLength @@ -7585,30 +7462,24 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load - local.set $3 - local.get $1 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.set $5 + local.get $3 local.get $2 i32.const 2 i32.shl local.get $0 i32.add + local.tee $3 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 2 - i32.shl - local.get $0 - i32.add local.get $3 + local.get $5 i32.store local.get $2 i32.const 1 @@ -7628,12 +7499,9 @@ i32.shl local.get $0 i32.add + local.tee $1 i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $1 i32.load i32.const 2 global.set $~argumentsLength @@ -7664,64 +7532,58 @@ local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $7 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 2 i32.shl + local.tee $8 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 2 - i32.shl local.get $0 + local.get $8 i32.add i32.load i32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $7 - local.get $2 + local.get $6 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -7730,14 +7592,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 i32.add i32.load local.set $7 - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 @@ -7761,10 +7623,10 @@ i32.add local.get $7 i32.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 2 @@ -7773,10 +7635,10 @@ i32.add local.get $8 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -7811,10 +7673,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -7822,87 +7685,87 @@ end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select i32.store + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load offset=8 - local.set $5 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 + local.get $4 + local.get $3 local.get $3 local.get $4 - select - local.tee $1 - local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $3 - local.get $0 - local.get $5 - local.get $1 - local.get $3 + local.tee $1 select i32.store offset=4 local.get $0 - local.get $1 - local.get $5 local.get $3 + local.get $4 + local.get $1 select i32.store offset=8 end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store local.get $0 - local.get $1 local.get $3 - local.get $2 + local.get $4 + local.get $1 select i32.store offset=4 return end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -7917,59 +7780,39 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $4 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -7979,10 +7822,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -7994,51 +7837,51 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 + local.get $6 local.get $9 - local.get $4 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 + local.tee $1 + local.get $1 local.get $9 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -8049,7 +7892,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -8062,25 +7905,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 @@ -8089,7 +7934,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -8098,42 +7943,42 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $10 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $7 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 - local.get $7 - local.set $5 + local.set $3 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 @@ -8145,7 +7990,7 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -8158,10 +8003,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -8440,30 +8285,30 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store + local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $2 - local.get $3 + local.tee $6 i32.add local.set $8 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $4 + local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 2 i32.shl local.tee $7 - local.get $4 i32.add local.get $0 local.get $7 @@ -8474,28 +8319,28 @@ end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $8 - local.get $2 + local.get $6 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -8506,7 +8351,7 @@ if global.get $~lib/memory/__stack_pointer local.tee $7 - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 @@ -8515,7 +8360,7 @@ local.tee $8 i32.store local.get $7 - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 @@ -8540,10 +8385,10 @@ i32.add local.get $8 i32.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 2 @@ -8552,10 +8397,10 @@ i32.add local.get $7 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -8579,8 +8424,8 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) - (local $13 i64) + (local $12 i64) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8597,10 +8442,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i64.const 0 i64.store - local.get $4 + local.get $5 i32.const 0 i32.store offset=8 block $folding-inner0 @@ -8625,83 +8470,83 @@ br $break|0 end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 local.get $0 i32.load local.tee $1 i32.store - local.get $3 + local.get $4 local.get $0 i32.load offset=4 - local.tee $3 + local.tee $4 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 local.get $1 local.get $1 - local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $3 select i32.store global.get $~lib/memory/__stack_pointer local.get $1 + local.get $4 local.get $3 - local.get $5 select local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 local.get $1 local.get $1 - local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $5 + local.tee $3 select i32.store offset=4 local.get $0 local.get $1 + local.get $4 local.get $3 - local.get $5 select i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 local.get $0 i32.load local.tee $1 i32.store offset=8 - local.get $3 + local.get $4 local.get $0 i32.load offset=4 - local.tee $3 + local.tee $4 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 local.get $1 local.get $1 - local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -8712,7 +8557,7 @@ i32.store local.get $0 local.get $1 - local.get $3 + local.get $4 local.get $2 select i32.store offset=4 @@ -8735,103 +8580,83 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - local.get $4 + call $~lib/rt/tlsf/__alloc + local.tee $9 + local.get $5 i32.add - local.set $11 + local.set $10 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl - local.get $10 + local.get $9 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 + call $~lib/rt/tlsf/__alloc + local.set $11 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $9 + local.tee $8 local.get $2 call $~lib/util/sort/extendRunRight local.tee $1 i32.const 1 i32.add - local.tee $4 + local.tee $5 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $9 + local.get $8 i32.const 31 - local.get $9 + local.get $8 i32.const 31 i32.lt_s select local.tee $1 - local.get $4 + local.get $5 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 local.get $1 - local.get $9 + local.get $8 i32.lt_s if local.get $0 local.get $1 i32.const 1 i32.add - local.tee $4 - local.get $9 + local.tee $6 + local.get $8 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add @@ -8840,34 +8665,34 @@ i32.lt_s if local.get $0 - local.get $4 - local.get $9 - local.get $4 + local.get $6 + local.get $8 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 - local.get $9 + local.tee $5 + local.get $5 + local.get $8 i32.gt_s select - local.tee $6 + local.tee $5 local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $8 i32.const 1 i32.add i64.extend_i32_u - local.tee $13 + local.tee $12 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -8875,86 +8700,86 @@ i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $12 i64.div_u i64.xor i32.wrap_i64 i32.clz local.set $7 loop $for-loop|3 - local.get $5 + local.get $4 local.get $7 i32.gt_u if - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $10 + local.get $9 i32.add i32.load - local.tee $8 + local.tee $13 i32.const -1 i32.ne if local.get $0 - local.get $8 - local.get $5 + local.get $13 + local.get $10 + local.get $4 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 i32.add local.get $1 - local.get $12 + local.get $11 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $10 + local.get $9 i32.add i32.const -1 i32.store - local.get $8 + local.get $13 local.set $3 end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|3 end end + local.get $9 local.get $7 i32.const 2 i32.shl - local.tee $5 - local.get $10 + local.tee $4 i32.add local.get $3 i32.store - local.get $5 - local.get $11 + local.get $4 + local.get $10 i32.add local.get $1 i32.store - local.get $4 - local.set $3 local.get $6 + local.set $3 + local.get $5 local.set $1 local.get $7 - local.set $5 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $10 + local.get $9 i32.add i32.load local.tee $1 @@ -8963,29 +8788,29 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $11 + local.get $10 i32.add i32.load i32.const 1 i32.add - local.get $9 - local.get $12 + local.get $8 + local.get $11 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end - local.get $12 + local.get $11 call $~lib/rt/tlsf/__free - local.get $10 + local.get $9 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 12 @@ -9004,6 +8829,7 @@ i32.sub ) (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -9024,13 +8850,12 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $0 @@ -10468,7 +10293,6 @@ i32.shl local.get $0 i32.add - local.tee $4 local.tee $0 i32.const 2 i32.add @@ -10479,7 +10303,7 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $0 i32.const 46 i32.store16 local.get $1 @@ -10735,21 +10559,22 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i32) + (local $3 i64) (local $4 i64) (local $5 i64) (local $6 i64) (local $7 i64) - (local $8 i64) + (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i64) - (local $12 i32) - (local $13 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i64) local.get $1 f64.const 0 f64.lt - local.tee $10 + local.tee $9 if (result f64) local.get $0 i32.const 45 @@ -10760,74 +10585,74 @@ local.get $1 end i64.reinterpret_f64 - local.tee $2 + local.tee $14 i64.const 9218868437227405312 i64.and i64.const 52 i64.shr_u i32.wrap_i64 - local.set $3 - local.get $2 + local.set $13 + local.get $14 i64.const 4503599627370495 i64.and - local.get $3 + local.get $13 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl i64.add - local.set $2 - local.get $3 + local.set $14 + local.get $13 i32.const 1 - local.get $3 + local.get $13 select i32.const 1075 i32.sub - local.tee $3 + local.tee $13 i32.const 1 i32.sub - local.get $2 + local.get $14 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $4 + local.tee $2 i64.clz i32.wrap_i64 - local.tee $9 + local.tee $11 i32.sub - local.set $12 - local.get $4 - local.get $9 + local.set $8 + local.get $2 + local.get $11 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $2 - local.get $2 + local.get $14 + local.get $14 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $9 + local.tee $11 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $3 - local.get $9 + local.get $13 + local.get $11 i32.sub - local.get $12 + local.get $8 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $12 + local.get $8 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $9 + local.tee $11 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -10836,9 +10661,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $3 + local.tee $13 local.get $1 - local.get $3 + local.get $13 f64.convert_i32_s f64.ne i32.add @@ -10846,85 +10671,86 @@ i32.shr_s i32.const 1 i32.add - local.tee $3 + local.tee $13 i32.const 3 i32.shl + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $3 - i32.const 3 - i32.shl + local.get $8 i32.const 11752 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $3 + local.get $13 i32.const 1 i32.shl i32.const 12448 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - local.get $2 - local.get $2 + local.get $14 + local.get $14 i64.clz i64.shl - local.tee $4 + local.tee $2 i64.const 4294967295 i64.and - local.set $13 + local.set $7 global.get $~lib/util/number/_frc_pow - local.tee $2 + local.tee $12 i64.const 4294967295 i64.and - local.tee $11 - local.get $4 + local.tee $14 + local.set $3 + local.get $2 i64.const 32 i64.shr_u - local.tee $4 + local.set $6 + local.get $12 + i64.const 32 + i64.shr_u + local.tee $2 + local.set $5 + local.get $3 + local.get $6 i64.mul - local.get $11 - local.get $13 + local.get $3 + local.get $7 i64.mul i64.const 32 i64.shr_u i64.add - local.set $11 + local.set $4 global.get $~lib/util/number/_frc_plus - local.tee $6 - i64.const 4294967295 - i64.and - local.set $7 - local.get $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $5 - local.get $6 + local.set $10 + local.get $3 i64.const 32 i64.shr_u - local.tee $6 + local.tee $12 + local.get $2 + local.tee $3 i64.mul - local.get $5 - local.get $7 + local.get $12 + local.get $14 + i64.mul + local.get $10 + local.get $14 i64.mul i64.const 32 i64.shr_u i64.add - local.set $5 - local.get $6 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $8 - i64.mul - local.get $5 + local.tee $12 i64.const 32 i64.shr_u i64.add - local.get $7 - local.get $8 + local.get $3 + local.get $10 i64.mul - local.get $5 + local.get $12 i64.const 4294967295 i64.and i64.add @@ -10935,48 +10761,42 @@ i64.add i64.const 1 i64.sub - local.set $6 + local.set $12 global.get $~lib/util/number/_frc_minus - local.tee $7 - i64.const 4294967295 - i64.and - local.set $5 - local.get $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $8 - local.get $7 + local.set $10 + local.get $14 + local.get $3 i64.const 32 i64.shr_u - local.tee $7 + local.tee $3 i64.mul - local.get $5 - local.get $8 + local.get $10 + local.get $14 i64.mul i64.const 32 i64.shr_u i64.add - local.set $8 - local.get $10 + local.set $14 + local.get $9 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $4 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $4 + local.get $5 + local.get $6 i64.mul - local.get $11 + local.get $4 i64.const 32 i64.shr_u i64.add - local.get $4 - local.get $13 + local.get $5 + local.get $7 i64.mul - local.get $11 + local.get $4 i64.const 4294967295 i64.and i64.add @@ -10985,27 +10805,24 @@ i64.const 32 i64.shr_u i64.add - local.get $6 + local.get $12 global.get $~lib/util/number/_exp_pow - local.get $9 + local.get $11 i32.add i32.const -64 i32.sub - local.get $6 - local.get $7 + local.get $12 local.get $2 - i64.const 32 - i64.shr_u - local.tee $2 + local.get $3 i64.mul - local.get $8 + local.get $14 i64.const 32 i64.shr_u i64.add local.get $2 - local.get $5 + local.get $10 i64.mul - local.get $8 + local.get $14 i64.const 4294967295 i64.and i64.add @@ -11017,13 +10834,13 @@ i64.const 1 i64.add i64.sub - local.get $10 + local.get $9 call $~lib/util/number/genDigits - local.get $10 + local.get $9 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $10 + local.get $9 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -11710,6 +11527,7 @@ ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) local.get $1 i32.extend8_s i32.const 0 @@ -11744,56 +11562,59 @@ i32.add return end - local.get $0 local.get $1 i32.extend8_s - local.tee $0 - local.get $0 + local.tee $3 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end + local.set $1 + local.get $0 + local.get $3 + local.get $1 local.get $2 i32.add local.tee $0 @@ -11801,6 +11622,7 @@ local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 i32.const 65535 i32.and @@ -11817,60 +11639,62 @@ i32.const 1 return end - local.get $0 local.get $1 i32.const 65535 i32.and - local.tee $0 - local.get $0 + local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 - call $~lib/util/number/utoa32_dec_lut + local.set $1 local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $1 ) (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -12911,6 +12735,7 @@ unreachable ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 i32.const 255 i32.and @@ -12927,60 +12752,62 @@ i32.const 1 return end - local.get $0 local.get $1 i32.const 255 i32.and - local.tee $0 - local.get $0 + local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 - call $~lib/util/number/utoa32_dec_lut + local.set $1 local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $1 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13195,12 +13022,11 @@ local.get $0 local.get $7 i32.add + local.tee $3 i32.load8_u offset=1 local.tee $6 local.set $5 - local.get $0 - local.get $7 - i32.add + local.get $3 i32.load8_u local.set $3 i32.const 2 @@ -13346,10 +13172,9 @@ local.get $0 local.get $4 i32.add + local.tee $5 i32.load8_u offset=1 - local.get $0 - local.get $4 - i32.add + local.get $5 i32.load8_u i32.const 2 global.set $~argumentsLength @@ -13379,24 +13204,22 @@ local.get $0 local.get $1 i32.add + local.tee $3 i32.load8_u - local.set $3 - local.get $0 - local.get $1 - i32.add + local.set $5 + local.get $3 local.get $0 local.get $2 i32.add + local.tee $3 i32.load8_u i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $0 - local.get $2 - i32.add local.get $3 + local.get $5 i32.store8 local.get $2 i32.const 1 @@ -13414,10 +13237,9 @@ local.get $0 local.get $4 i32.add + local.tee $1 i32.load8_u offset=1 - local.get $0 - local.get $4 - i32.add + local.get $1 i32.load8_u i32.const 2 global.set $~argumentsLength @@ -13448,56 +13270,51 @@ local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $7 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub local.get $0 + local.get $2 i32.add i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $7 - local.get $2 + local.get $6 i32.sub local.get $4 i32.add local.get $0 - local.get $2 + local.get $6 i32.add i32.load8_u offset=1 i32.store8 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -13506,20 +13323,20 @@ local.get $3 i32.le_s if - local.get $2 local.get $4 + local.get $6 i32.add i32.load8_u - local.set $7 + local.set $8 + local.get $2 local.get $4 - local.get $6 i32.add i32.load8_u - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -13529,22 +13346,22 @@ local.get $0 local.get $1 i32.add - local.get $7 + local.get $8 i32.store8 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $0 local.get $1 i32.add - local.get $8 + local.get $7 i32.store8 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -13579,10 +13396,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -13590,87 +13408,87 @@ end local.get $0 i32.load8_u - local.set $1 + local.set $3 local.get $0 i32.load8_u offset=1 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select i32.store8 + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load8_u offset=2 - local.set $5 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 + local.get $4 + local.get $3 local.get $3 local.get $4 - select - local.tee $1 - local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $3 - local.get $0 - local.get $5 - local.get $1 - local.get $3 + local.tee $1 select i32.store8 offset=1 local.get $0 - local.get $1 - local.get $5 local.get $3 + local.get $4 + local.get $1 select i32.store8 offset=2 end local.get $0 i32.load8_u - local.set $1 + local.set $3 local.get $0 i32.load8_u offset=1 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store8 local.get $0 - local.get $1 local.get $3 - local.get $2 + local.get $4 + local.get $1 select i32.store8 offset=1 return end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -13685,55 +13503,37 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $4 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -13743,10 +13543,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -13758,51 +13558,51 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 + local.get $6 local.get $9 - local.get $4 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 + local.tee $1 + local.get $1 local.get $9 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -13813,7 +13613,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -13826,25 +13626,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 @@ -13853,7 +13655,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -13862,42 +13664,42 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $10 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $7 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 - local.get $7 - local.set $5 + local.set $3 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 @@ -13909,7 +13711,7 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -13922,10 +13724,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -13968,16 +13770,14 @@ local.get $0 i32.const 255 i32.and + local.tee $0 local.get $1 i32.const 255 i32.and + local.tee $1 i32.gt_u local.get $0 - i32.const 255 - i32.and local.get $1 - i32.const 255 - i32.and i32.lt_u i32.sub ) @@ -14977,7 +14777,7 @@ i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14991,27 +14791,27 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store end - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 i32.const 0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -15024,36 +14824,37 @@ i32.const 0 i32.const 1 call $~lib/memory/memory.fill - local.get $0 + local.get $1 local.get $2 i32.store - local.get $0 + local.get $1 local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 local.get $2 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1664 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 global.get $std/array/arr local.tee $0 i32.store @@ -15220,7 +15021,7 @@ i32.store offset=12 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 i32.const 1 local.get $0 i32.load offset=12 @@ -15245,7 +15046,7 @@ local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.const 1 i32.store @@ -15289,23 +15090,23 @@ i32.const 0 i32.gt_s select - local.set $5 + local.set $3 loop $for-loop|03 local.get $2 - local.get $5 + local.get $3 i32.gt_s if - local.get $5 + local.get $3 i32.const 2 i32.shl local.get $0 i32.add i32.const 0 i32.store - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|03 end end @@ -15332,7 +15133,7 @@ end local.get $1 i32.load offset=4 - local.set $4 + local.set $3 i32.const 0 local.get $1 i32.load offset=12 @@ -15360,7 +15161,7 @@ local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.const 1 i32.store @@ -15394,7 +15195,7 @@ end local.get $1 i32.load offset=4 - local.set $4 + local.set $5 local.get $1 i32.load offset=12 local.tee $2 @@ -15406,23 +15207,23 @@ i32.const 0 i32.gt_s select - local.set $5 + local.set $3 loop $for-loop|07 local.get $2 - local.get $5 + local.get $3 i32.gt_s if - local.get $5 + local.get $3 i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add i32.const 2 i32.store - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|07 end end @@ -15449,7 +15250,7 @@ end local.get $1 i32.load offset=4 - local.set $4 + local.set $3 i32.const 1 local.get $1 i32.load offset=12 @@ -15474,7 +15275,7 @@ local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.const 0 i32.store @@ -17002,10 +16803,10 @@ end local.get $5 i32.load offset=4 - local.tee $4 + local.tee $3 i32.load - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 4 i32.add local.get $0 @@ -17017,7 +16818,7 @@ local.tee $0 call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $3 i32.add i32.const 0 i32.store @@ -17485,37 +17286,37 @@ if local.get $1 i32.load offset=4 - local.tee $1 + local.tee $3 local.get $0 i32.const 1 i32.sub i32.const 2 i32.shl i32.add - local.set $0 + local.set $1 loop $while-continue|0 - local.get $0 local.get $1 + local.get $3 i32.gt_u if - local.get $1 + local.get $3 i32.load - local.set $2 + local.set $0 + local.get $3 local.get $1 - local.get $0 i32.load i32.store + local.get $1 local.get $0 - local.get $2 i32.store - local.get $1 + local.get $3 i32.const 4 i32.add - local.set $1 - local.get $0 + local.set $3 + local.get $1 i32.const 4 i32.sub - local.set $0 + local.set $1 br $while-continue|0 end end @@ -18251,29 +18052,29 @@ local.get $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=4 local.set $2 loop $while-continue|025 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -18282,17 +18083,17 @@ f32.const nan:0x400000 f32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|025 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18313,29 +18114,29 @@ local.get $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=12 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=4 local.set $2 loop $while-continue|02629 - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -18344,17 +18145,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|02629 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18377,24 +18178,23 @@ global.set $~argumentsLength local.get $0 i32.load offset=12 + local.tee $3 local.set $2 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf - local.get $0 - i32.load offset=12 - local.tee $4 + local.get $3 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf local.get $2 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $2 local.get $2 - local.get $4 + local.get $3 i32.ge_s select local.get $2 @@ -18404,7 +18204,7 @@ local.set $2 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|00 local.get $2 i32.const 0 @@ -18414,7 +18214,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load i32.const 2 @@ -18445,24 +18245,23 @@ global.set $~argumentsLength local.get $0 i32.load offset=12 + local.tee $3 local.set $2 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $0 - i32.load offset=12 - local.tee $4 + local.get $3 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf5 local.get $2 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $2 local.get $2 - local.get $4 + local.get $3 i32.ge_s select local.get $2 @@ -18472,7 +18271,7 @@ local.set $2 local.get $0 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|06 local.get $2 i32.const 0 @@ -18482,7 +18281,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load i32.const 7 @@ -19333,15 +19132,15 @@ i32.const 9 i32.const 3856 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $1 + local.get $0 i32.load offset=12 local.tee $2 i32.const 0 @@ -19351,20 +19150,20 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|03657 - local.get $0 + local.get $1 local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add f32.load local.tee $11 @@ -19376,10 +19175,10 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|03657 end end @@ -19399,15 +19198,15 @@ i32.const 10 i32.const 3888 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $1 + local.get $0 i32.load offset=12 local.tee $2 i32.const 0 @@ -19417,20 +19216,20 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|037 - local.get $0 + local.get $1 local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $1 + local.get $0 i32.add f64.load local.tee $9 @@ -19442,10 +19241,10 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|037 end end @@ -20596,15 +20395,15 @@ i32.const 0 local.get $0 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $7 + local.get $7 i32.const 0 i32.gt_s select local.set $5 local.get $1 i32.const 1 - local.get $3 + local.get $7 local.get $5 i32.sub local.tee $1 @@ -20618,14 +20417,14 @@ i32.const 0 i32.gt_s select - local.tee $6 + local.tee $4 i32.const 2 i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.load offset=4 local.get $0 i32.load offset=4 @@ -20635,13 +20434,13 @@ i32.shl i32.add local.tee $1 - local.get $6 + local.get $4 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $7 + local.get $4 local.get $5 - local.get $6 i32.add local.tee $5 i32.ne @@ -20652,7 +20451,7 @@ i32.shl local.get $2 i32.add - local.get $3 + local.get $7 local.get $5 i32.sub i32.const 2 @@ -20660,17 +20459,17 @@ call $~lib/memory/memory.copy end local.get $0 - local.get $3 - local.get $6 + local.get $7 + local.get $4 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=24 - local.get $7 + local.get $6 i32.load offset=12 i32.const 1 i32.ne @@ -20683,7 +20482,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.const 0 call $~lib/array/Array#__get local.tee $1 @@ -20795,20 +20594,20 @@ call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 5888 i32.store offset=8 i32.const 0 local.set $0 - local.get $4 + local.get $3 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex loop $for-loop|059 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 local.tee $1 local.get $1 @@ -20818,7 +20617,7 @@ local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -20828,7 +20627,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 i32.const 5888 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -20857,20 +20656,20 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 5920 i32.store offset=8 i32.const 0 local.set $0 - local.get $4 + local.get $3 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex60 loop $for-loop|061 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 local.tee $1 local.get $1 @@ -20880,7 +20679,7 @@ local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -20890,7 +20689,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 i32.const 5920 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -20921,20 +20720,20 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 5952 i32.store offset=8 i32.const 0 local.set $0 - local.get $4 + local.get $3 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex62 loop $for-loop|063 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 local.tee $1 local.get $1 @@ -20944,7 +20743,7 @@ local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -20954,7 +20753,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 i32.const 5952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -20985,20 +20784,20 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 5984 i32.store offset=8 i32.const 0 local.set $0 - local.get $4 + local.get $3 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex64 loop $for-loop|065 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 local.tee $1 local.get $1 @@ -21008,7 +20807,7 @@ local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -21018,7 +20817,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 i32.const 5984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21065,20 +20864,20 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 6016 i32.store offset=8 i32.const 0 local.set $0 - local.get $4 + local.get $3 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex66 loop $for-loop|067 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 local.tee $1 local.get $1 @@ -21088,7 +20887,7 @@ local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -21098,7 +20897,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 i32.const 6016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21156,20 +20955,20 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 6048 i32.store offset=8 i32.const 0 local.set $0 - local.get $4 + local.get $3 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex68 loop $for-loop|069 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 local.tee $1 local.get $1 @@ -21179,7 +20978,7 @@ local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -21189,7 +20988,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $4 + local.get $3 i32.const 6048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21476,14 +21275,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|071 - local.get $4 + local.get $3 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $3 i32.gt_s select local.get $1 @@ -21540,14 +21339,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|073 - local.get $4 + local.get $3 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $3 i32.gt_s select local.get $1 @@ -21603,14 +21402,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|075 - local.get $4 + local.get $3 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $3 i32.gt_s select local.get $1 @@ -21683,14 +21482,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|077 - local.get $4 + local.get $3 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $3 i32.gt_s select local.get $1 @@ -21773,14 +21572,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|079 - local.get $4 + local.get $3 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $3 i32.gt_s select local.get $1 @@ -21868,14 +21667,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|080 - local.get $4 + local.get $3 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $3 i32.gt_s select local.get $1 @@ -21931,14 +21730,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|082 - local.get $4 + local.get $3 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $3 i32.gt_s select local.get $1 @@ -21993,14 +21792,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|084 - local.get $4 + local.get $3 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $3 i32.gt_s select local.get $1 @@ -22071,14 +21870,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|086 - local.get $4 + local.get $3 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $3 i32.gt_s select local.get $1 @@ -22161,14 +21960,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|088 - local.get $4 + local.get $3 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $3 i32.gt_s select local.get $1 @@ -22246,46 +22045,46 @@ global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 6576 i32.store offset=8 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $3 i32.load offset=12 local.set $2 loop $for-loop|057 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|057 end end @@ -22305,46 +22104,46 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 6608 i32.store offset=8 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $3 i32.load offset=12 local.set $2 loop $for-loop|05989 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|05989 end end @@ -22380,46 +22179,46 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 6640 i32.store offset=8 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $3 i32.load offset=12 local.set $2 loop $for-loop|062 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|062 end end @@ -22466,46 +22265,46 @@ global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 6672 i32.store offset=8 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $3 i32.load offset=12 local.set $2 loop $for-loop|064 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|064 end end @@ -22554,46 +22353,46 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 6704 i32.store offset=8 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $3 i32.load offset=12 local.set $2 loop $for-loop|06790 local.get $2 - local.get $4 + local.get $3 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|06790 end end @@ -22614,23 +22413,23 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|06991 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|06991 end end @@ -22668,14 +22467,14 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer i32.const 6736 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22689,55 +22488,55 @@ i32.const 0 i32.store local.get $0 - local.get $3 + local.get $7 i32.load offset=12 - local.tee $6 + local.tee $4 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $6 i32.store - local.get $7 + local.get $6 i32.load offset=4 - local.set $4 + local.set $2 loop $for-loop|07093 - local.get $6 - local.get $3 + local.get $4 + local.get $7 i32.load offset=12 local.tee $0 local.get $0 - local.get $6 + local.get $4 i32.gt_s select - local.get $1 + local.get $3 i32.gt_s if - local.get $1 + local.get $3 i32.const 2 i32.shl - local.tee $2 - local.get $3 + local.tee $1 + local.get $7 i32.load offset=4 i32.add i32.load local.set $0 i32.const 3 global.set $~argumentsLength + local.get $1 local.get $2 - local.get $4 i32.add local.get $0 - local.get $1 local.get $3 + local.get $7 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|07093 end end @@ -22745,9 +22544,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.store offset=20 - local.get $7 + local.get $6 i32.load offset=12 i32.const 4 i32.ne @@ -22759,7 +22558,7 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 i32.const 0 call $~lib/array/Array#__get local.set $11 @@ -23105,21 +22904,21 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer i32.const 6992 i32.store offset=8 i32.const 0 - local.set $5 + local.set $3 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=12 local.set $2 loop $for-loop|094 local.get $2 - local.get $4 + local.get $5 i32.load offset=12 local.tee $0 local.get $0 @@ -23129,7 +22928,7 @@ local.get $1 i32.gt_s if - local.get $4 + local.get $5 i32.load offset=4 local.get $1 i32.const 2 @@ -23139,14 +22938,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $3 local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 6992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 + local.set $3 local.get $1 i32.const 1 i32.add @@ -23154,7 +22953,7 @@ br $for-loop|094 end end - local.get $5 + local.get $3 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23170,21 +22969,21 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $5 i32.store local.get $0 i32.const 7024 i32.store offset=8 i32.const 4 - local.set $5 + local.set $3 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=12 local.set $2 loop $for-loop|096 local.get $2 - local.get $4 + local.get $5 i32.load offset=12 local.tee $0 local.get $0 @@ -23194,7 +22993,7 @@ local.get $1 i32.gt_s if - local.get $4 + local.get $5 i32.load offset=4 local.get $1 i32.const 2 @@ -23204,14 +23003,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $3 local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 7024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 + local.set $3 local.get $1 i32.const 1 i32.add @@ -23219,7 +23018,7 @@ br $for-loop|096 end end - local.get $5 + local.get $3 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23235,21 +23034,21 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $5 i32.store local.get $0 i32.const 7056 i32.store offset=8 i32.const 0 - local.set $5 + local.set $3 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=12 local.set $2 loop $for-loop|098 local.get $2 - local.get $4 + local.get $5 i32.load offset=12 local.tee $0 local.get $0 @@ -23259,7 +23058,7 @@ local.get $1 i32.gt_s if - local.get $4 + local.get $5 i32.load offset=4 local.get $1 i32.const 2 @@ -23269,14 +23068,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $3 local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 7056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 + local.set $3 local.get $1 i32.const 1 i32.add @@ -23284,7 +23083,7 @@ br $for-loop|098 end end - local.get $5 + local.get $3 i32.eqz if i32.const 0 @@ -23297,21 +23096,21 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $5 i32.store local.get $0 i32.const 7088 i32.store offset=8 i32.const 0 - local.set $5 + local.set $3 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=12 local.set $2 loop $for-loop|0100 local.get $2 - local.get $4 + local.get $5 i32.load offset=12 local.tee $0 local.get $0 @@ -23321,7 +23120,7 @@ local.get $1 i32.gt_s if - local.get $4 + local.get $5 i32.load offset=4 local.get $1 i32.const 2 @@ -23331,14 +23130,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $3 local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 7088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 + local.set $3 local.get $1 i32.const 1 i32.add @@ -23346,7 +23145,7 @@ br $for-loop|0100 end end - local.get $5 + local.get $3 if i32.const 0 i32.const 1552 @@ -23358,21 +23157,21 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $5 i32.store local.get $0 i32.const 7120 i32.store offset=8 i32.const 0 - local.set $5 + local.set $3 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=12 local.set $2 loop $for-loop|0102 local.get $2 - local.get $4 + local.get $5 i32.load offset=12 local.tee $0 local.get $0 @@ -23382,7 +23181,7 @@ local.get $1 i32.gt_s if - local.get $4 + local.get $5 i32.load offset=4 local.get $1 i32.const 2 @@ -23392,14 +23191,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $3 local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 7120 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 + local.set $3 local.get $1 i32.const 1 i32.add @@ -23407,7 +23206,7 @@ br $for-loop|0102 end end - local.get $5 + local.get $3 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23439,21 +23238,21 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $5 i32.store local.get $0 i32.const 7152 i32.store offset=8 i32.const 0 - local.set $5 + local.set $3 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=12 local.set $2 loop $for-loop|0104 local.get $2 - local.get $4 + local.get $5 i32.load offset=12 local.tee $0 local.get $0 @@ -23463,7 +23262,7 @@ local.get $1 i32.gt_s if - local.get $4 + local.get $5 i32.load offset=4 local.get $1 i32.const 2 @@ -23473,14 +23272,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $3 local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 7152 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 + local.set $3 local.get $1 i32.const 1 i32.add @@ -23488,7 +23287,7 @@ br $for-loop|0104 end end - local.get $5 + local.get $3 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23531,21 +23330,21 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer i32.const 7184 i32.store offset=8 i32.const 0 - local.set $5 + local.set $3 i32.const 0 local.set $1 - local.get $4 + local.get $5 i32.load offset=12 local.set $2 loop $for-loop|0106 local.get $2 - local.get $4 + local.get $5 i32.load offset=12 local.tee $0 local.get $0 @@ -23555,7 +23354,7 @@ local.get $1 i32.gt_s if - local.get $4 + local.get $5 i32.load offset=4 local.get $1 i32.const 2 @@ -23565,14 +23364,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $5 + local.get $3 local.get $0 local.get $1 - local.get $4 + local.get $5 i32.const 7184 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 + local.set $3 local.get $1 i32.const 1 i32.add @@ -23580,7 +23379,7 @@ br $for-loop|0106 end end - local.get $5 + local.get $3 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -23627,26 +23426,26 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 7216 i32.store offset=8 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|079107 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -23654,22 +23453,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $3 i32.const 7216 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|079107 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23685,26 +23484,26 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 7248 i32.store offset=8 i32.const 4 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|081 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -23712,22 +23511,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $3 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|081 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23743,26 +23542,26 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 7280 i32.store offset=8 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|083 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -23770,22 +23569,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $3 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|083 end end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -23798,26 +23597,26 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 7312 i32.store offset=8 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|085 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -23825,22 +23624,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $3 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|085 end end - local.get $0 + local.get $1 if i32.const 0 i32.const 1552 @@ -23852,26 +23651,26 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 7344 i32.store offset=8 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|087 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -23879,22 +23678,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $3 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|087 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23926,26 +23725,26 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store local.get $0 i32.const 7376 i32.store offset=8 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|090 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -23953,22 +23752,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $3 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|090 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -24011,26 +23810,26 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 7408 i32.store offset=8 i32.const 0 - local.set $0 - local.get $4 + local.set $1 + local.get $3 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 loop $for-loop|092 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -24038,22 +23837,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $3 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 + local.set $0 br $for-loop|092 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -24556,7 +24355,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24577,7 +24376,7 @@ unreachable end i32.const 8000 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8000 i32.store @@ -24586,7 +24385,7 @@ i32.load offset=4 local.get $5 i32.load offset=12 - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24597,9 +24396,9 @@ i32.const 10 i32.const 8032 call $~lib/rt/__newArray - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=8 block $__inlined_func$std/array/isArraysEqual (result i32) i32.const 0 @@ -24608,13 +24407,13 @@ local.get $5 i32.load offset=12 local.tee $1 - local.get $4 + local.get $3 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual drop i32.const 1 - local.get $4 + local.get $3 local.get $5 i32.eq br_if $__inlined_func$std/array/isArraysEqual @@ -24631,7 +24430,7 @@ local.get $9 f64.ne if (result i32) - local.get $4 + local.get $3 local.get $0 call $~lib/array/Array#__get local.tee $9 @@ -24646,7 +24445,7 @@ local.get $5 local.get $0 call $~lib/array/Array#__get - local.get $4 + local.get $3 local.get $0 call $~lib/array/Array#__get f64.ne @@ -24677,12 +24476,12 @@ i32.const 3 i32.const 8128 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=116 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24703,16 +24502,16 @@ unreachable end i32.const 8176 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8176 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=12 - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24727,7 +24526,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 i32.const 0 call $std/array/isArraysEqual @@ -24797,7 +24596,7 @@ i32.const 3 i32.const 8448 call $~lib/rt/__newArray - local.tee $3 + local.tee $7 i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24805,7 +24604,7 @@ i32.const 3 i32.const 8480 call $~lib/rt/__newArray - local.tee $7 + local.tee $6 i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24818,7 +24617,7 @@ global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $6 + local.tee $4 i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 @@ -24828,7 +24627,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $4 + local.tee $3 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 10000 @@ -24866,7 +24665,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 call $std/array/assertSortedDefault i32.const 2 i32.const 2 @@ -24877,7 +24676,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $3 + local.get $7 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -24890,9 +24689,9 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $6 call $std/array/assertSortedDefault - local.get $7 + local.get $6 local.get $10 i32.const 0 call $std/array/isArraysEqual @@ -24905,9 +24704,9 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $4 call $std/array/assertSortedDefault - local.get $6 + local.get $4 local.get $10 i32.const 4 call $std/array/isArraysEqual @@ -24935,9 +24734,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 call $std/array/assertSortedDefault - local.get $4 + local.get $3 local.get $10 i32.const 4 call $std/array/isArraysEqual @@ -24970,7 +24769,7 @@ i32.const 0 local.set $8 i32.const 0 - local.set $7 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -24980,20 +24779,20 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $4 i64.const 0 i64.store - local.get $6 + local.get $4 i64.const 0 i64.store offset=8 - local.get $6 + local.get $4 i64.const 0 i64.store offset=16 - local.get $6 + local.get $4 global.get $std/array/inputStabArr local.tee $5 i32.store offset=8 - local.get $6 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -25029,11 +24828,11 @@ i32.const 19 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $7 i32.store - local.get $3 + local.get $7 i32.load offset=4 - local.set $4 + local.set $3 local.get $5 i32.load offset=4 local.get $1 @@ -25050,7 +24849,7 @@ local.get $8 i32.gt_u if - local.get $4 + local.get $3 local.get $8 i32.add local.get $2 @@ -25059,7 +24858,7 @@ i32.load local.tee $0 i32.store - local.get $3 + local.get $7 local.get $0 i32.const 1 call $~lib/rt/itcms/__link @@ -25075,19 +24874,20 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.tee $0 + local.get $7 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 8672 i32.store offset=4 - local.get $3 + local.get $7 i32.load offset=4 - local.get $3 + local.get $7 i32.load offset=12 i32.const 8672 call $~lib/util/sort/SORT - local.get $6 - local.get $3 + local.get $4 + local.get $7 i32.store offset=12 i32.const 1 local.set $8 @@ -25100,13 +24900,13 @@ local.set $1 loop $for-loop|012 local.get $1 - local.get $7 + local.get $6 i32.gt_s if block $for-break0 global.get $~lib/memory/__stack_pointer - local.get $3 local.get $7 + local.get $6 call $~lib/array/Array#__get local.tee $2 i32.store offset=16 @@ -25116,7 +24916,7 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 + local.get $6 call $~lib/array/Array#__get local.tee $0 i32.store offset=20 @@ -25139,10 +24939,10 @@ local.set $8 br $for-break0 end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|012 end end @@ -25197,7 +24997,7 @@ call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25207,10 +25007,10 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i64.const 0 i64.store - local.get $4 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -25219,10 +25019,10 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 16 i32.const 25 call $~lib/rt/itcms/__new @@ -25248,21 +25048,21 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.const 32 call $~lib/memory/memory.fill local.get $5 - local.get $0 + local.get $1 i32.store local.get $5 - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link local.get $5 - local.get $0 + local.get $1 i32.store offset=4 local.get $5 i32.const 32 @@ -25274,33 +25074,33 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 local.get $5 i32.store loop $for-loop|0143 - local.get $1 + local.get $0 i32.const 2 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.const 1 - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__set local.get $5 - local.get $1 local.get $0 - call $~lib/array/Array<~lib/array/Array>#__set local.get $1 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0143 end end @@ -25369,21 +25169,21 @@ i32.const 2048 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $4 + local.get $3 i32.const 0 i32.const 2048 call $~lib/memory/memory.fill local.get $0 - local.get $4 + local.get $3 i32.store local.get $0 - local.get $4 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $4 + local.get $3 i32.store offset=4 local.get $0 i32.const 2048 @@ -25470,10 +25270,12 @@ i32.const 30 i32.const 9104 call $~lib/rt/__newArray - local.tee $6 + local.tee $4 i32.store offset=152 i32.const 1 global.set $~argumentsLength + local.get $0 + local.set $1 i32.const 0 local.set $5 global.get $~lib/memory/__stack_pointer @@ -25514,18 +25316,18 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 + local.get $1 i32.load offset=12 local.get $5 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $1 i32.store block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $1 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -25537,26 +25339,26 @@ i64.const 0 i64.store i32.const 1 - local.set $7 - local.get $0 + local.set $6 + local.get $1 i32.load offset=12 - local.set $1 + local.set $0 loop $for-loop|019 - local.get $1 - local.get $7 + local.get $0 + local.get $6 i32.gt_s if - local.get $0 - local.get $7 + local.get $1 + local.get $6 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store - local.get $0 - local.get $7 + local.get $1 + local.get $6 call $~lib/array/Array#__get local.set $2 global.get $~lib/memory/__stack_pointer @@ -25564,7 +25366,7 @@ i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $4 + local.get $3 local.get $2 local.get $5 i32.load @@ -25579,10 +25381,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|019 end end @@ -25611,7 +25413,7 @@ global.set $~lib/memory/__stack_pointer block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25625,45 +25427,45 @@ i64.store block $folding-inner1 block $folding-inner020 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $1 - local.get $6 + local.tee $2 + local.get $4 i32.load offset=12 i32.ne br_if $folding-inner020 - local.get $0 - local.get $6 + local.get $1 + local.get $4 i32.eq br_if $folding-inner1 loop $for-loop|038 - local.get $1 - local.get $3 - i32.gt_s + local.get $0 + local.get $2 + i32.lt_s if + local.get $1 local.get $0 - local.get $3 call $~lib/array/Array#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store - local.get $6 - local.get $3 + local.get $4 + local.get $0 call $~lib/array/Array#__get - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $4 - local.get $2 + local.get $5 + local.get $3 call $~lib/string/String.__eq i32.eqz br_if $folding-inner020 - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|038 end end @@ -25711,7 +25513,7 @@ i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $2 + local.tee $8 i32.store loop $for-loop|0144 local.get $3 @@ -25724,7 +25526,7 @@ i32.trunc_f64_s local.set $6 i32.const 0 - local.set $8 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -25734,26 +25536,26 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 i32.const 9024 - local.set $0 - local.get $1 + local.set $1 + local.get $2 i32.const 9024 i32.store loop $for-loop|00 + local.get $0 local.get $6 - local.get $8 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $5 - local.get $0 - local.get $5 + local.tee $4 + local.get $1 + local.get $4 i32.const 7488 i32.store offset=4 call $~lib/math/NativeMath.random @@ -25768,7 +25570,7 @@ f64.mul f64.floor i32.trunc_f64_s - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25785,7 +25587,7 @@ i32.load i32.const 1 i32.shr_u - local.get $5 + local.get $4 i32.le_u if global.get $~lib/memory/__stack_pointer @@ -25793,17 +25595,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $0 + local.set $1 br $__inlined_func$~lib/string/String#charAt end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 - local.get $5 + local.get $1 + local.get $4 i32.const 1 i32.shl i32.const 7488 @@ -25816,16 +25618,16 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $1 i32.store - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|00 end end @@ -25834,11 +25636,11 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $2 + local.get $8 local.get $3 - local.get $0 + local.get $1 call $~lib/array/Array<~lib/array/Array>#__set local.get $3 i32.const 1 @@ -25851,13 +25653,12 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.tee $0 + local.get $8 i32.store offset=156 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25880,13 +25681,13 @@ unreachable end i32.const 9184 - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 9184 i32.store end - local.get $0 - local.get $1 + local.get $8 + local.get $3 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25899,37 +25700,36 @@ call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $2 local.get $0 i32.store offset=164 - global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 9312 i32.store offset=168 - local.get $0 - i32.load offset=4 - local.set $7 - local.get $0 - i32.load offset=12 - local.set $1 - i32.const 0 - local.set $0 - i32.const 0 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15340 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinBooleanArray - local.get $1 + block $__inlined_func$~lib/util/string/joinBooleanArray (result i32) + local.get $0 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=12 + i32.const 0 + local.set $3 + i32.const 0 + local.set $0 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15340 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $3 + local.tee $8 i32.const 0 i32.lt_s if @@ -25938,11 +25738,10 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end block $folding-inner01 - local.get $3 + local.get $8 i32.eqz if i32.const 9248 @@ -25950,11 +25749,11 @@ local.get $7 i32.load8_u select - local.set $1 + local.set $3 br $folding-inner01 end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $8 i32.const 9308 i32.load i32.const 1 @@ -25965,7 +25764,7 @@ i32.mul i32.const 5 i32.add - local.tee $4 + local.tee $5 i32.const 1 i32.shl i32.const 1 @@ -25973,20 +25772,20 @@ local.tee $1 i32.store loop $for-loop|1 - local.get $3 + local.get $0 local.get $8 - i32.gt_s + i32.lt_s if + local.get $0 local.get $7 - local.get $8 i32.add i32.load8_u local.tee $2 i32.eqz i32.const 4 i32.add - local.set $5 - local.get $0 + local.set $4 + local.get $3 i32.const 1 i32.shl local.get $1 @@ -25995,17 +25794,17 @@ i32.const 9280 local.get $2 select - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $5 + local.get $3 + local.get $4 i32.add - local.set $0 + local.set $3 local.get $6 if - local.get $0 + local.get $3 i32.const 1 i32.shl local.get $1 @@ -26015,43 +25814,43 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 + local.get $3 local.get $6 i32.add - local.set $0 + local.set $3 end - local.get $8 + local.get $0 i32.const 1 i32.add - local.set $8 + local.set $0 br $for-loop|1 end end - local.get $3 local.get $7 + local.get $8 i32.add i32.load8_u - local.tee $2 + local.tee $0 i32.eqz i32.const 4 i32.add - local.set $5 - local.get $0 + local.set $2 + local.get $3 i32.const 1 i32.shl local.get $1 i32.add i32.const 9248 i32.const 9280 - local.get $2 + local.get $0 select - local.get $5 + local.get $2 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 - local.get $0 local.get $5 + local.get $2 + local.get $3 i32.add local.tee $0 i32.gt_s @@ -26059,28 +25858,31 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $3 br $folding-inner01 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 br $__inlined_func$~lib/util/string/joinBooleanArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 end + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 9344 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9344 call $~lib/string/String.__eq i32.eqz @@ -26376,7 +26178,7 @@ i32.const 3 i32.const 13120 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -26402,16 +26204,16 @@ call $~lib/rt/__newArray local.tee $1 i32.store offset=144 - local.get $4 + local.get $3 call $~lib/array/Array#toString - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=8 - local.get $4 + local.get $3 i32.const 9024 call $~lib/string/String.__eq i32.eqz @@ -26425,15 +26227,15 @@ end local.get $0 call $~lib/array/Array#toString - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $4 + local.get $3 i32.store local.get $0 i32.const 12800 i32.store offset=8 - local.get $4 + local.get $3 i32.const 12800 call $~lib/string/String.__eq i32.eqz @@ -26516,14 +26318,14 @@ i32.store local.get $1 i32.load offset=4 - local.set $5 + local.set $4 local.get $1 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $8 + local.set $3 local.get $2 i32.const 4 i32.sub @@ -26548,17 +26350,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner03 local.get $6 i32.eqz if - local.get $5 + local.get $4 i32.load8_s call $~lib/util/number/itoa32 - local.set $1 + local.set $0 br $folding-inner03 end global.get $~lib/memory/__stack_pointer @@ -26567,7 +26369,7 @@ i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 11 i32.add i32.mul @@ -26581,24 +26383,24 @@ local.tee $1 i32.store loop $for-loop|05120 + local.get $3 local.get $6 - local.get $8 - i32.gt_s + i32.lt_s if local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $5 - local.get $8 + local.get $3 + local.get $4 i32.add i32.load8_s call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $4 + local.get $5 if local.get $0 i32.const 1 @@ -26606,19 +26408,19 @@ local.get $1 i32.add i32.const 9312 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $5 i32.add local.set $0 end - local.get $8 + local.get $3 i32.const 1 i32.add - local.set $8 + local.set $3 br $for-loop|05120 end end @@ -26628,7 +26430,7 @@ i32.shl local.get $1 i32.add - local.get $5 + local.get $4 local.get $6 i32.add i32.load8_s @@ -26641,13 +26443,15 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner03 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -26660,12 +26464,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.tee $1 + local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 13376 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13376 call $~lib/string/String.__eq i32.eqz @@ -26704,14 +26509,14 @@ i32.store local.get $1 i32.load offset=4 - local.set $5 + local.set $4 local.get $1 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $8 + local.set $3 local.get $2 i32.const 4 i32.sub @@ -26736,17 +26541,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9024 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner06 local.get $6 i32.eqz if - local.get $5 + local.get $4 i32.load16_u call $~lib/util/number/utoa32 - local.set $1 + local.set $0 br $folding-inner06 end global.get $~lib/memory/__stack_pointer @@ -26755,7 +26560,7 @@ i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 10 i32.add i32.mul @@ -26769,26 +26574,26 @@ local.tee $1 i32.store loop $for-loop|08 + local.get $3 local.get $6 - local.get $8 - i32.gt_s + i32.lt_s if local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $8 + local.get $3 i32.const 1 i32.shl - local.get $5 + local.get $4 i32.add i32.load16_u call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $4 + local.get $5 if local.get $0 i32.const 1 @@ -26796,19 +26601,19 @@ local.get $1 i32.add i32.const 9312 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $5 i32.add local.set $0 end - local.get $8 + local.get $3 i32.const 1 i32.add - local.set $8 + local.set $3 br $for-loop|08 end end @@ -26821,7 +26626,7 @@ local.get $6 i32.const 1 i32.shl - local.get $5 + local.get $4 i32.add i32.load16_u call $~lib/util/number/itoa_buffered @@ -26833,13 +26638,15 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner06 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -26852,12 +26659,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.tee $1 + local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 13440 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13440 call $~lib/string/String.__eq i32.eqz @@ -27077,7 +26885,7 @@ i32.store local.get $1 i32.load offset=4 - local.set $7 + local.set $6 local.get $1 i32.load offset=12 local.set $2 @@ -27102,7 +26910,7 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $4 i32.const 0 i32.lt_s if @@ -27114,11 +26922,11 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $6 + local.get $4 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.load local.tee $0 i32.store @@ -27145,17 +26953,17 @@ i32.load i32.const 1 i32.shr_u - local.set $4 + local.set $3 loop $for-loop|010 local.get $1 - local.get $6 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add i32.load local.tee $5 @@ -27175,7 +26983,7 @@ local.tee $0 i32.store offset=4 end - local.get $4 + local.get $3 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27192,10 +27000,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add i32.load local.tee $2 @@ -27225,9 +27033,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 14096 i32.store offset=8 local.get $0 @@ -27291,7 +27100,7 @@ i32.store local.get $1 i32.load offset=4 - local.set $7 + local.set $6 local.get $1 i32.load offset=12 local.set $2 @@ -27316,7 +27125,7 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $4 i32.const 0 i32.lt_s if @@ -27328,11 +27137,11 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $6 + local.get $4 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.load local.tee $0 i32.store @@ -27359,17 +27168,17 @@ i32.load i32.const 1 i32.shr_u - local.set $4 + local.set $3 loop $for-loop|01221 local.get $1 - local.get $6 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add i32.load local.tee $5 @@ -27389,7 +27198,7 @@ local.tee $0 i32.store offset=4 end - local.get $4 + local.get $3 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27406,10 +27215,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add i32.load local.tee $2 @@ -27439,9 +27248,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 14096 i32.store offset=8 local.get $0 @@ -27513,7 +27323,7 @@ i32.store local.get $2 i32.load offset=4 - local.set $7 + local.set $6 local.get $2 i32.load offset=12 local.set $2 @@ -27538,7 +27348,7 @@ local.get $2 i32.const 1 i32.sub - local.tee $6 + local.tee $4 i32.const 0 i32.lt_s if @@ -27550,11 +27360,11 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end - local.get $6 + local.get $4 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $6 i32.load local.tee $0 i32.store @@ -27581,17 +27391,17 @@ i32.load i32.const 1 i32.shr_u - local.set $4 + local.set $3 loop $for-loop|01422 local.get $1 - local.get $6 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add i32.load local.tee $5 @@ -27611,7 +27421,7 @@ local.tee $0 i32.store offset=4 end - local.get $4 + local.get $3 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27628,10 +27438,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add i32.load local.tee $2 @@ -27661,9 +27471,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 12800 i32.store offset=8 local.get $0 @@ -27729,9 +27540,9 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $1 + local.tee $0 i32.store offset=128 - local.get $1 + local.get $0 i32.load offset=12 i32.const 10 i32.ne @@ -27744,16 +27555,16 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|115 - local.get $0 + local.get $1 i32.const 10 i32.lt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/array/Array#__get - local.get $0 + local.get $1 i32.ne if i32.const 0 @@ -27763,10 +27574,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|115 end end @@ -27777,13 +27588,13 @@ i32.const 42 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load offset=4 i32.store offset=140 - local.get $2 + local.get $3 i32.const 0 i32.const 1 i32.const 2 @@ -27791,7 +27602,7 @@ i32.const 14400 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $2 + local.get $3 i32.const 1 i32.const 3 i32.const 2 @@ -27799,7 +27610,7 @@ i32.const 14496 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $2 + local.get $3 i32.const 2 i32.const 3 i32.const 2 @@ -27807,7 +27618,7 @@ i32.const 14624 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $2 + local.get $3 i32.const 3 i32.const 1 i32.const 2 @@ -27816,15 +27627,15 @@ call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 - local.get $2 + local.get $3 i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 0 local.set $1 i32.const 0 - local.set $8 + local.set $6 i32.const 0 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -27836,21 +27647,21 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $2 + local.get $3 i32.load offset=4 - local.set $6 - local.get $2 - i32.load offset=12 local.set $5 + local.get $3 + i32.load offset=12 + local.set $3 loop $for-loop|0131 local.get $1 - local.get $5 + local.get $3 i32.lt_s if local.get $1 i32.const 2 i32.shl - local.get $6 + local.get $5 i32.add i32.load local.tee $0 @@ -27860,9 +27671,9 @@ else i32.const 0 end - local.get $8 + local.get $6 i32.add - local.set $8 + local.set $6 local.get $1 i32.const 1 i32.add @@ -27871,10 +27682,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $6 i32.const 2 i32.shl - local.tee $1 + local.tee $0 i32.const 0 call $~lib/rt/itcms/__new local.tee $7 @@ -27883,21 +27694,21 @@ i32.const 16 i32.const 30 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $8 i32.store offset=4 - local.get $0 local.get $8 + local.get $6 i32.store offset=12 + local.get $8 local.get $0 - local.get $1 i32.store offset=8 - local.get $0 + local.get $8 local.get $7 i32.store offset=4 - local.get $0 + local.get $8 local.get $7 i32.store - local.get $0 + local.get $8 local.get $7 i32.const 0 call $~lib/rt/itcms/__link @@ -27905,30 +27716,30 @@ local.set $1 loop $for-loop|1132 local.get $1 - local.get $5 + local.get $3 i32.lt_s if local.get $1 i32.const 2 i32.shl - local.get $6 + local.get $5 i32.add i32.load - local.tee $2 + local.tee $0 if - local.get $3 + local.get $4 local.get $7 i32.add - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $0 call $~lib/memory/memory.copy - local.get $2 - local.get $3 + local.get $0 + local.get $4 i32.add - local.set $3 + local.set $4 end local.get $1 i32.const 1 @@ -27941,7 +27752,7 @@ local.set $1 loop $for-loop|2 local.get $1 - local.get $8 + local.get $6 i32.lt_s if local.get $7 @@ -27964,8 +27775,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 + local.get $8 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27973,9 +27783,9 @@ i32.const 30 i32.const 14720 call $~lib/rt/__newArray - local.tee $5 + local.tee $3 i32.store offset=148 - local.get $0 + local.get $8 i32.load offset=12 i32.const 8 i32.ne @@ -27988,29 +27798,29 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|2133 - local.get $5 + local.get $3 i32.load offset=12 - local.get $0 + local.get $1 i32.gt_s if + local.get $8 local.get $1 - local.get $0 call $~lib/array/Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store - local.get $5 - local.get $0 + local.get $3 + local.get $1 call $~lib/array/Array#__get - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=8 - local.get $4 local.get $2 + local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -28021,10 +27831,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|2133 end end @@ -31697,14 +31507,12 @@ if local.get $0 i32.load offset=4 - local.tee $3 - local.set $2 + local.tee $2 local.get $1 i32.const 1 i32.sub i32.const 2 i32.shl - local.get $3 i32.add local.set $1 loop $while-continue|0 @@ -33614,12 +33422,10 @@ if local.get $0 i32.load offset=4 - local.tee $3 - local.set $2 + local.tee $2 local.get $1 i32.const 1 i32.sub - local.get $3 i32.add local.set $1 loop $while-continue|0 @@ -35647,14 +35453,12 @@ if local.get $0 i32.load offset=4 - local.tee $3 - local.set $1 + local.tee $1 local.get $2 i32.const 1 i32.sub i32.const 2 i32.shl - local.get $3 i32.add local.set $2 loop $while-continue|0 diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 7d54623bc8..73cdf8ad04 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -298,19 +298,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -381,17 +381,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -646,11 +644,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1006,13 +1001,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1101,8 +1096,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1489,8 +1484,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1614,9 +1608,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1630,7 +1623,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1639,15 +1632,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1662,64 +1655,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1727,7 +1713,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index d64c4e4f8a..e0ac8e2587 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -304,19 +304,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -387,17 +387,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -652,11 +650,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1012,13 +1007,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1107,8 +1102,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1495,8 +1490,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1620,9 +1614,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1636,7 +1629,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1645,15 +1638,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1668,64 +1661,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1733,7 +1719,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index a414c4235b..c5d958ca80 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -665,19 +665,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -748,17 +748,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -1013,11 +1011,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1373,13 +1368,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1468,8 +1463,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1856,8 +1851,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1981,9 +1975,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1997,7 +1990,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -2006,15 +1999,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -2029,64 +2022,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -2094,7 +2080,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2147,11 +2133,11 @@ local.get $0 local.get $0 i64.load offset=16 + local.tee $2 local.get $1 i64.const 1000 i64.const 0 - local.get $0 - i64.load offset=16 + local.get $2 i64.const 1000 i64.rem_s local.tee $2 @@ -2171,11 +2157,11 @@ local.get $0 local.get $0 i64.load offset=16 + local.tee $2 local.get $1 i64.const 60000 i64.const 0 - local.get $0 - i64.load offset=16 + local.get $2 i64.const 60000 i64.rem_s local.tee $2 @@ -2199,11 +2185,11 @@ local.get $0 local.get $0 i64.load offset=16 + local.tee $2 local.get $1 i64.const 3600000 i64.const 0 - local.get $0 - i64.load offset=16 + local.get $2 i64.const 3600000 i64.rem_s local.tee $2 @@ -2227,11 +2213,11 @@ local.get $0 local.get $0 i64.load offset=16 + local.tee $2 local.get $1 i64.const 86400000 i64.const 0 - local.get $0 - i64.load offset=16 + local.get $2 i64.const 86400000 i64.rem_s local.tee $2 @@ -4646,8 +4632,8 @@ (func $~lib/date/Date#toISOString (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) global.get $~lib/memory/__stack_pointer i32.const 112 i32.sub @@ -4720,7 +4706,7 @@ select if global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 1616 i32.const 1648 local.get $2 @@ -4750,7 +4736,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $4 + local.get $3 local.get $2 local.get $1 call $~lib/string/String.__concat @@ -4855,10 +4841,10 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $3 + local.tee $4 i64.const 86400000 i64.const 0 - local.get $3 + local.get $4 i64.const 0 i64.lt_s select @@ -4869,9 +4855,10 @@ call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $2 i32.store offset=68 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 1872 i32.store offset=76 local.get $2 @@ -4902,10 +4889,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $3 + local.tee $4 i64.const 3600000 i64.const 0 - local.get $3 + local.get $4 i64.const 0 i64.lt_s select @@ -4916,9 +4903,10 @@ call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $2 i32.store offset=52 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 1872 i32.store offset=60 local.get $2 @@ -4949,10 +4937,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $3 + local.tee $4 i64.const 60000 i64.const 0 - local.get $3 + local.get $4 i64.const 0 i64.lt_s select @@ -4963,9 +4951,10 @@ call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer + local.tee $3 local.get $2 i32.store offset=36 - global.get $~lib/memory/__stack_pointer + local.get $3 i32.const 1872 i32.store offset=44 local.get $2 @@ -4996,10 +4985,10 @@ i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $3 + local.tee $4 i64.const 1000 i64.const 0 - local.get $3 + local.get $4 i64.const 0 i64.lt_s select @@ -5008,9 +4997,10 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $2 local.get $0 i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 1872 i32.store offset=28 local.get $0 @@ -5106,15 +5096,18 @@ local.tee $4 local.get $0 i32.load offset=4 - local.tee $5 + local.tee $6 i32.const 3 i32.lt_s i32.sub - local.set $2 + local.tee $2 + i32.const 0 + i32.ge_s + local.set $5 local.get $0 i32.load offset=8 - local.tee $6 - local.get $5 + local.tee $7 + local.get $6 i32.const 1579 i32.add i32.load8_u @@ -5123,10 +5116,7 @@ local.get $2 i32.const 3 i32.sub - local.get $2 - i32.const 0 - i32.ge_s - local.tee $0 + local.get $5 select i32.const 4 i32.div_s @@ -5134,7 +5124,7 @@ local.get $2 i32.const 99 i32.sub - local.get $0 + local.get $5 select i32.const 100 i32.div_s @@ -5143,7 +5133,7 @@ local.get $2 i32.const 399 i32.sub - local.get $0 + local.get $5 select i32.const 400 i32.div_s @@ -5210,7 +5200,7 @@ local.tee $2 i32.store offset=32 local.get $4 - local.get $5 + local.get $6 i32.const 1 i32.sub i32.const 2 @@ -5227,7 +5217,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=24 - local.get $6 + local.get $7 call $~lib/number/I32#toString local.set $2 global.get $~lib/memory/__stack_pointer @@ -5270,8 +5260,9 @@ ) (func $~lib/date/Date#toTimeString (param $0 i32) (result i32) (local $1 i32) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 40 i32.sub @@ -5307,10 +5298,10 @@ i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $3 i64.const 86400000 i64.const 0 - local.get $2 + local.get $3 i64.const 0 i64.lt_s select @@ -5321,9 +5312,10 @@ call $~lib/number/I32#toString local.set $1 global.get $~lib/memory/__stack_pointer + local.tee $2 local.get $1 i32.store offset=32 - global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 1872 i32.store offset=36 local.get $1 @@ -5347,10 +5339,10 @@ i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $3 i64.const 3600000 i64.const 0 - local.get $2 + local.get $3 i64.const 0 i64.lt_s select @@ -5359,22 +5351,23 @@ i32.const 60000 i32.div_s call $~lib/number/I32#toString - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.tee $4 + local.get $2 i32.store offset=24 - global.get $~lib/memory/__stack_pointer + local.get $4 i32.const 1872 i32.store offset=32 - local.get $3 + local.get $2 i32.const 2 call $~lib/string/String#padStart - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=20 local.get $1 - local.get $3 + local.get $2 call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer @@ -5394,10 +5387,10 @@ i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $3 i64.const 60000 i64.const 0 - local.get $2 + local.get $3 i64.const 0 i64.lt_s select @@ -5408,9 +5401,10 @@ call $~lib/number/I32#toString local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $2 local.get $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $2 i32.const 1872 i32.store offset=16 local.get $0 @@ -5493,12 +5487,12 @@ i32.const 28 i32.const 4 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.const 5616 i32.const 28 call $~lib/memory/memory.copy local.get $1 - local.get $4 + local.get $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 48 @@ -5519,7 +5513,10 @@ i32.const 3 i32.lt_s i32.sub - local.set $3 + local.tee $4 + i32.const 0 + i32.ge_s + local.set $2 local.get $0 i32.load offset=8 local.tee $8 @@ -5527,20 +5524,17 @@ i32.const 1579 i32.add i32.load8_u - local.get $3 - local.get $3 - local.get $3 + local.get $4 + local.get $4 + local.get $4 i32.const 3 i32.sub - local.get $3 - i32.const 0 - i32.ge_s - local.tee $2 + local.get $2 select i32.const 4 i32.div_s - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 99 i32.sub local.get $2 @@ -5548,8 +5542,8 @@ i32.const 100 i32.div_s i32.sub - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 399 i32.sub local.get $2 @@ -5591,7 +5585,7 @@ local.get $2 i32.const 4 call $~lib/string/String#padStart - local.tee $3 + local.tee $4 i32.store offset=16 local.get $6 i32.const 0 @@ -5603,19 +5597,19 @@ i32.store offset=8 local.get $2 i32.const 1616 - local.get $3 + local.get $4 call $~lib/string/String.__concat - local.tee $3 + local.tee $4 i32.store offset=16 end global.get $~lib/memory/__stack_pointer local.get $9 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load - local.tee $4 + local.tee $3 i32.store offset=80 local.get $8 call $~lib/number/I32#toString @@ -5633,12 +5627,12 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=84 - local.get $4 + local.get $3 local.get $2 call $~lib/string/String.__concat - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=72 global.get $~lib/memory/__stack_pointer local.get $7 @@ -5651,7 +5645,7 @@ i32.load local.tee $1 i32.store offset=76 - local.get $4 + local.get $3 local.get $1 call $~lib/string/String.__concat local.set $1 @@ -5659,7 +5653,7 @@ local.get $1 i32.store offset=68 local.get $1 - local.get $3 + local.get $4 call $~lib/string/String.__concat local.set $1 global.get $~lib/memory/__stack_pointer @@ -5671,9 +5665,9 @@ local.get $1 i32.const 5072 call $~lib/string/String.__concat - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=52 local.get $0 i64.load offset=16 @@ -5691,21 +5685,22 @@ i32.const 3600000 i32.div_s call $~lib/number/I32#toString - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.tee $1 + local.get $3 i32.store offset=60 - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1872 i32.store offset=68 - local.get $1 + local.get $3 i32.const 2 call $~lib/string/String#padStart local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=56 - local.get $4 + local.get $2 local.get $1 call $~lib/string/String.__concat local.set $1 @@ -5718,9 +5713,9 @@ local.get $1 i32.const 3520 call $~lib/string/String.__concat - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=36 local.get $0 i64.load offset=16 @@ -5738,21 +5733,22 @@ i32.const 60000 i32.div_s call $~lib/number/I32#toString - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.tee $1 + local.get $3 i32.store offset=44 - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1872 i32.store offset=52 - local.get $1 + local.get $3 i32.const 2 call $~lib/string/String#padStart local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=40 - local.get $4 + local.get $2 local.get $1 call $~lib/string/String.__concat local.set $1 @@ -5765,9 +5761,9 @@ local.get $1 i32.const 3520 call $~lib/string/String.__concat - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=12 local.get $0 i64.load offset=16 @@ -5785,21 +5781,22 @@ i32.const 1000 i32.div_s call $~lib/number/I32#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=28 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1872 i32.store offset=36 - local.get $0 + local.get $1 i32.const 2 call $~lib/string/String#padStart local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=24 - local.get $1 + local.get $3 local.get $0 call $~lib/string/String.__concat local.set $0 @@ -6350,6 +6347,7 @@ (local $1 i64) (local $2 i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 36 i32.sub @@ -7770,14 +7768,17 @@ i32.load local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $0 + local.tee $0 + i32.const 0 + i32.ge_s + local.set $3 local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u @@ -7786,10 +7787,7 @@ local.get $0 i32.const 3 i32.sub - local.get $0 - i32.const 0 - i32.ge_s - local.tee $2 + local.get $3 select i32.const 4 i32.div_s @@ -7797,7 +7795,7 @@ local.get $0 i32.const 99 i32.sub - local.get $2 + local.get $3 select i32.const 100 i32.div_s @@ -7806,7 +7804,7 @@ local.get $0 i32.const 399 i32.sub - local.get $2 + local.get $3 select i32.const 400 i32.div_s @@ -7843,14 +7841,17 @@ i32.load local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $0 + local.tee $0 + i32.const 0 + i32.ge_s + local.set $3 local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u @@ -7859,10 +7860,7 @@ local.get $0 i32.const 3 i32.sub - local.get $0 - i32.const 0 - i32.ge_s - local.tee $2 + local.get $3 select i32.const 4 i32.div_s @@ -7870,7 +7868,7 @@ local.get $0 i32.const 99 i32.sub - local.get $2 + local.get $3 select i32.const 100 i32.div_s @@ -7879,7 +7877,7 @@ local.get $0 i32.const 399 i32.sub - local.get $2 + local.get $3 select i32.const 400 i32.div_s @@ -7916,14 +7914,17 @@ i32.load local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $0 + local.tee $0 + i32.const 0 + i32.ge_s + local.set $3 local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u @@ -7932,10 +7933,7 @@ local.get $0 i32.const 3 i32.sub - local.get $0 - i32.const 0 - i32.ge_s - local.tee $2 + local.get $3 select i32.const 4 i32.div_s @@ -7943,7 +7941,7 @@ local.get $0 i32.const 99 i32.sub - local.get $2 + local.get $3 select i32.const 100 i32.div_s @@ -7952,7 +7950,7 @@ local.get $0 i32.const 399 i32.sub - local.get $2 + local.get $3 select i32.const 400 i32.div_s @@ -7989,14 +7987,17 @@ i32.load local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $0 + local.tee $0 + i32.const 0 + i32.ge_s + local.set $3 local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u @@ -8005,10 +8006,7 @@ local.get $0 i32.const 3 i32.sub - local.get $0 - i32.const 0 - i32.ge_s - local.tee $2 + local.get $3 select i32.const 4 i32.div_s @@ -8016,7 +8014,7 @@ local.get $0 i32.const 99 i32.sub - local.get $2 + local.get $3 select i32.const 100 i32.div_s @@ -8025,7 +8023,7 @@ local.get $0 i32.const 399 i32.sub - local.get $2 + local.get $3 select i32.const 400 i32.div_s @@ -8062,14 +8060,17 @@ i32.load local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $0 + local.tee $0 + i32.const 0 + i32.ge_s + local.set $3 local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u @@ -8078,10 +8079,7 @@ local.get $0 i32.const 3 i32.sub - local.get $0 - i32.const 0 - i32.ge_s - local.tee $2 + local.get $3 select i32.const 4 i32.div_s @@ -8089,7 +8087,7 @@ local.get $0 i32.const 99 i32.sub - local.get $2 + local.get $3 select i32.const 100 i32.div_s @@ -8098,7 +8096,7 @@ local.get $0 i32.const 399 i32.sub - local.get $2 + local.get $3 select i32.const 400 i32.div_s @@ -8135,14 +8133,17 @@ i32.load local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $0 + local.tee $0 + i32.const 0 + i32.ge_s + local.set $3 local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u @@ -8151,10 +8152,7 @@ local.get $0 i32.const 3 i32.sub - local.get $0 - i32.const 0 - i32.ge_s - local.tee $2 + local.get $3 select i32.const 4 i32.div_s @@ -8162,7 +8160,7 @@ local.get $0 i32.const 99 i32.sub - local.get $2 + local.get $3 select i32.const 100 i32.div_s @@ -8171,7 +8169,7 @@ local.get $0 i32.const 399 i32.sub - local.get $2 + local.get $3 select i32.const 400 i32.div_s @@ -8208,14 +8206,17 @@ i32.load local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $0 + local.tee $0 + i32.const 0 + i32.ge_s + local.set $3 local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u @@ -8224,10 +8225,7 @@ local.get $0 i32.const 3 i32.sub - local.get $0 - i32.const 0 - i32.ge_s - local.tee $2 + local.get $3 select i32.const 4 i32.div_s @@ -8235,7 +8233,7 @@ local.get $0 i32.const 99 i32.sub - local.get $2 + local.get $3 select i32.const 100 i32.div_s @@ -8244,7 +8242,7 @@ local.get $0 i32.const 399 i32.sub - local.get $2 + local.get $3 select i32.const 400 i32.div_s @@ -8281,14 +8279,17 @@ i32.load local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $0 + local.tee $0 + i32.const 0 + i32.ge_s + local.set $3 local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u @@ -8297,10 +8298,7 @@ local.get $0 i32.const 3 i32.sub - local.get $0 - i32.const 0 - i32.ge_s - local.tee $2 + local.get $3 select i32.const 4 i32.div_s @@ -8308,7 +8306,7 @@ local.get $0 i32.const 99 i32.sub - local.get $2 + local.get $3 select i32.const 100 i32.div_s @@ -8317,7 +8315,7 @@ local.get $0 i32.const 399 i32.sub - local.get $2 + local.get $3 select i32.const 400 i32.div_s diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 4f9e559928..ece1bb0c8e 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -312,19 +312,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -395,17 +395,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -660,11 +658,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1020,13 +1015,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1115,8 +1110,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1503,8 +1498,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1628,9 +1622,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1644,7 +1637,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1653,15 +1646,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1676,64 +1669,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1741,7 +1727,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -3223,6 +3209,7 @@ end ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -3243,13 +3230,12 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 0 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $1 @@ -3260,6 +3246,7 @@ i32.store8 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -3280,13 +3267,12 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $0 @@ -7805,6 +7791,7 @@ i32.load offset=4 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -7825,13 +7812,12 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 1 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $0 @@ -15766,6 +15752,7 @@ i32.load offset=8 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -15786,13 +15773,12 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $0 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 44bab5fa41..c836c14dfb 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1171,10 +1171,11 @@ (func $~lib/math/NativeMath.log (param $0 f64) (result f64) (local $1 i64) (local $2 f64) - (local $3 f64) - (local $4 i32) + (local $3 i32) + (local $4 f64) (local $5 f64) (local $6 i64) + (local $7 i32) block $~lib/util/math/log_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 @@ -1193,7 +1194,7 @@ local.tee $2 local.get $0 f64.mul - local.tee $3 + local.tee $4 local.get $0 f64.const -0.24999999999998432 f64.mul @@ -1203,7 +1204,7 @@ f64.const 0.19999999999320328 f64.mul f64.add - local.get $3 + local.get $4 local.get $0 f64.const 0.14285715076560868 f64.mul @@ -1213,7 +1214,7 @@ f64.const -0.12499997863982555 f64.mul f64.add - local.get $3 + local.get $4 local.get $0 f64.const -0.10000486757818193 f64.mul @@ -1223,7 +1224,7 @@ f64.const 0.09181994006195467 f64.mul f64.add - local.get $3 + local.get $4 f64.const -0.08328363062289341 f64.mul f64.add @@ -1249,7 +1250,7 @@ f64.mul local.tee $5 f64.add - local.tee $3 + local.tee $4 f64.sub local.get $5 f64.add @@ -1264,7 +1265,7 @@ f64.mul f64.add f64.add - local.get $3 + local.get $4 f64.add br $~lib/util/math/log_lut|inlined.0 end @@ -1272,7 +1273,7 @@ i64.const 48 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $3 i32.const 16 i32.sub i32.const 32736 @@ -1298,17 +1299,16 @@ local.get $0 local.get $0 f64.sub - local.get $0 - local.get $0 - f64.sub + local.tee $2 + local.get $2 f64.div i32.const 1 - local.get $4 + local.get $3 i32.const 32752 i32.and i32.const 32752 i32.eq - local.get $4 + local.get $3 i32.const 32768 i32.and select @@ -1331,50 +1331,44 @@ i64.const 127 i64.and i32.wrap_i64 - local.set $4 - local.get $6 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.tee $3 - f64.const 0.6931471805598903 - f64.mul - local.get $4 - i32.const 4 - i32.shl - i32.const 1088 - i32.add - f64.load offset=8 - f64.add - local.tee $2 + local.set $3 local.get $1 local.get $6 i64.const -4503599627370496 i64.and i64.sub f64.reinterpret_i64 - local.get $4 + local.get $3 i32.const 4 i32.shl + local.tee $3 i32.const 3136 i32.add + local.tee $7 f64.load f64.sub - local.get $4 - i32.const 4 - i32.shl - i32.const 3136 - i32.add + local.get $7 f64.load offset=8 f64.sub - local.get $4 - i32.const 4 - i32.shl + local.get $3 i32.const 1088 i32.add + local.tee $3 f64.load f64.mul - local.tee $0 + local.set $0 + local.get $6 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.tee $4 + f64.const 0.6931471805598903 + f64.mul + local.get $3 + f64.load offset=8 + f64.add + local.tee $2 + local.get $0 f64.add local.set $5 local.get $2 @@ -1382,7 +1376,7 @@ f64.sub local.get $0 f64.add - local.get $3 + local.get $4 f64.const 5.497923018708371e-14 f64.mul f64.add @@ -1416,61 +1410,59 @@ end ) (func $std/math/test_acosh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) - (local $3 i64) + (local $3 f64) + (local $4 i64) block $__inlined_func$~lib/math/NativeMath.acosh (result f64) local.get $0 - local.get $0 + local.tee $3 + i64.reinterpret_f64 + local.set $4 + local.get $3 + local.get $3 f64.sub f64.const 0 f64.div - local.get $0 - i64.reinterpret_f64 - local.tee $3 + local.get $4 i64.const 4607182418800017408 i64.lt_s br_if $__inlined_func$~lib/math/NativeMath.acosh drop - local.get $3 + local.get $4 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $3 + local.tee $4 i64.const 1024 i64.lt_u if - local.get $0 - f64.const 1 - f64.sub - local.get $0 - f64.const 1 - f64.sub - local.get $0 - f64.const 1 - f64.sub - f64.mul - local.get $0 + local.get $3 f64.const 1 f64.sub - f64.const 2 + local.tee $3 + local.get $3 + local.get $3 f64.mul + local.get $3 + local.get $3 + f64.add f64.add f64.sqrt f64.add call $~lib/math/NativeMath.log1p br $__inlined_func$~lib/math/NativeMath.acosh end - local.get $3 + local.get $4 i64.const 1049 i64.lt_u if - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.add f64.const 1 - local.get $0 - local.get $0 - local.get $0 + local.get $3 + local.get $3 + local.get $3 f64.mul f64.const 1 f64.sub @@ -1481,7 +1473,7 @@ call $~lib/math/NativeMath.log br $__inlined_func$~lib/math/NativeMath.acosh end - local.get $0 + local.get $3 call $~lib/math/NativeMath.log f64.const 0.6931471805599453 f64.add @@ -1673,8 +1665,8 @@ (local $1 i32) (local $2 f64) (local $3 i32) - (local $4 i32) - (local $5 f64) + (local $4 f64) + (local $5 f32) block $~lib/util/math/logf_lut|inlined.0 (result f32) local.get $0 i32.reinterpret_f32 @@ -1700,9 +1692,8 @@ local.get $0 local.get $0 f32.sub - local.get $0 - local.get $0 - f32.sub + local.tee $5 + local.get $5 f32.div i32.const 1 local.get $1 @@ -1725,26 +1716,25 @@ local.set $1 end local.get $1 + local.get $1 i32.const 1060306944 i32.sub local.tee $3 - i32.const 19 - i32.shr_u - i32.const 15 - i32.and - local.set $4 - local.get $1 - local.get $3 i32.const -8388608 i32.and i32.sub f32.reinterpret_i32 f64.promote_f32 - local.get $4 + local.get $3 + i32.const 19 + i32.shr_u + i32.const 15 + i32.and i32.const 4 i32.shl i32.const 5184 i32.add + local.tee $1 f64.load f64.mul f64.const 1 @@ -1752,23 +1742,19 @@ local.tee $2 local.get $2 f64.mul - local.set $5 + local.set $4 local.get $2 f64.const 0.333456765744066 f64.mul f64.const -0.4999997485802103 f64.add - local.get $5 + local.get $4 f64.const -0.25089342214237154 f64.mul f64.add - local.get $5 - f64.mul local.get $4 - i32.const 4 - i32.shl - i32.const 5184 - i32.add + f64.mul + local.get $1 f64.load offset=8 local.get $3 i32.const 23 @@ -2220,9 +2206,8 @@ local.get $3 local.get $3 f64.mul + local.tee $3 local.get $3 - local.get $3 - f64.mul f64.const 1 f64.add f64.sqrt @@ -2298,9 +2283,8 @@ local.get $3 local.get $3 f32.mul + local.tee $3 local.get $3 - local.get $3 - f32.mul f32.const 1 f32.add f32.sqrt @@ -2734,6 +2718,7 @@ (func $std/math/test_atanh (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) (local $4 i64) + (local $5 f64) local.get $0 f64.abs local.set $3 @@ -2754,9 +2739,8 @@ local.get $3 local.get $3 f64.add - local.get $3 - local.get $3 - f64.add + local.tee $5 + local.get $5 local.get $3 f64.mul f64.const 1 @@ -3368,14 +3352,16 @@ (local $3 f64) (local $4 f64) (local $5 i32) - (local $6 i32) + (local $6 f64) + (local $7 i32) + (local $8 f64) block $__inlined_func$~lib/math/NativeMathf.cbrt (result f32) local.get $0 local.get $0 f32.add local.get $0 i32.reinterpret_f32 - local.tee $6 + local.tee $7 i32.const 2147483647 i32.and local.tee $5 @@ -3396,7 +3382,7 @@ f32.const 16777216 f32.mul i32.reinterpret_f32 - local.tee $6 + local.tee $7 i32.const 2147483647 i32.and i32.const 3 @@ -3410,7 +3396,7 @@ i32.const 709958130 i32.add end - local.get $6 + local.get $7 i32.const -2147483648 i32.and i32.or @@ -3425,14 +3411,14 @@ local.get $3 local.get $0 f64.promote_f32 - local.get $0 - f64.promote_f32 + local.tee $6 + local.get $6 f64.add + local.tee $8 local.get $4 f64.add f64.mul - local.get $0 - f64.promote_f32 + local.get $6 local.get $4 f64.add local.get $4 @@ -3445,16 +3431,11 @@ f64.mul local.set $4 local.get $3 - local.get $0 - f64.promote_f32 - local.get $0 - f64.promote_f32 - f64.add + local.get $8 local.get $4 f64.add f64.mul - local.get $0 - f64.promote_f32 + local.get $6 local.get $4 f64.add local.get $4 @@ -3489,7 +3470,7 @@ local.tee $2 i64.const 63 i64.and - local.set $3 + local.set $4 local.get $2 i64.const 6 i64.shr_s @@ -3507,35 +3488,35 @@ local.get $7 i64.load offset=16 local.set $1 - local.get $3 + local.get $4 i64.const 0 i64.ne if local.get $6 - local.get $3 + local.get $4 i64.shl local.get $2 i64.const 64 - local.get $3 + local.get $4 i64.sub - local.tee $4 + local.tee $3 i64.shr_u i64.or local.set $6 local.get $2 - local.get $3 + local.get $4 i64.shl local.get $1 - local.get $4 + local.get $3 i64.shr_u i64.or local.set $2 local.get $1 - local.get $3 + local.get $4 i64.shl local.get $7 i64.load offset=24 - local.get $4 + local.get $3 i64.shr_u i64.or local.set $1 @@ -3545,29 +3526,30 @@ i64.and i64.const 4503599627370496 i64.or - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $4 + local.set $3 local.get $2 i64.const 4294967295 i64.and local.tee $5 - local.get $3 + local.get $4 i64.const 32 i64.shr_u local.tee $8 + local.tee $9 i64.mul - local.get $4 + local.get $3 local.get $2 i64.const 32 i64.shr_u - local.tee $9 + local.tee $10 i64.mul - local.get $4 + local.get $3 local.get $5 i64.mul - local.tee $4 + local.tee $3 i64.const 32 i64.shr_u i64.add @@ -3576,8 +3558,8 @@ i64.and i64.add local.set $2 - local.get $8 local.get $9 + local.get $10 i64.mul local.get $5 i64.const 32 @@ -3591,12 +3573,10 @@ local.get $1 i64.const 32 i64.shr_u - local.get $3 - i64.const 32 - i64.shr_u + local.get $8 i64.mul local.tee $1 - local.get $4 + local.get $3 i64.const 4294967295 i64.and local.get $2 @@ -3609,12 +3589,12 @@ i64.lt_u i64.extend_i32_u global.get $~lib/math/res128_hi - local.get $3 + local.get $4 local.get $6 i64.mul i64.add i64.add - local.tee $8 + local.tee $9 i64.const 2 i64.shl local.get $2 @@ -3629,32 +3609,32 @@ i64.const 2 i64.shl i64.xor - local.set $3 + local.set $4 local.get $6 i64.const 1 i64.shr_s local.get $1 i64.xor - local.tee $4 + local.tee $3 i64.clz local.set $2 - local.get $4 + local.get $3 local.get $2 i64.shl - local.get $3 + local.get $4 i64.const 64 local.get $2 i64.sub i64.shr_u i64.or - local.tee $4 + local.tee $3 i64.const 4294967295 i64.and local.set $5 - local.get $4 + local.get $3 i64.const 32 i64.shr_u - local.tee $9 + local.tee $10 i64.const 560513588 i64.mul local.get $5 @@ -3663,7 +3643,7 @@ local.get $5 i64.const 560513588 i64.mul - local.tee $10 + local.tee $8 i64.const 32 i64.shr_u i64.add @@ -3672,7 +3652,7 @@ i64.and i64.add local.set $5 - local.get $9 + local.get $10 i64.const 3373259426 i64.mul local.get $11 @@ -3684,7 +3664,7 @@ i64.shr_u i64.add global.set $~lib/math/res128_hi - local.get $10 + local.get $8 i64.const 4294967295 i64.and local.get $5 @@ -3692,11 +3672,11 @@ i64.shl i64.add local.tee $5 - local.get $4 + local.get $3 f64.convert_i64_u f64.const 3.753184150245214e-04 f64.mul - local.get $3 + local.get $4 local.get $2 i64.shl f64.convert_i64_u @@ -3704,18 +3684,18 @@ f64.mul f64.add i64.trunc_f64_u - local.tee $3 + local.tee $4 i64.lt_u i64.extend_i32_u global.get $~lib/math/res128_hi - local.tee $4 + local.tee $3 i64.const 11 i64.shr_u i64.add f64.convert_i64_u global.set $~lib/math/rempio2_y0 - local.get $3 local.get $4 + local.get $3 i64.const 53 i64.shl local.get $5 @@ -3747,7 +3727,7 @@ local.get $12 f64.mul global.set $~lib/math/rempio2_y1 - local.get $8 + local.get $9 i64.const 62 i64.shr_s local.get $6 @@ -4221,10 +4201,10 @@ if local.get $0 f64.promote_f32 + local.tee $9 f64.const 3.141592653589793 f64.add - local.get $0 - f64.promote_f32 + local.get $9 f64.const 3.141592653589793 f64.sub local.get $5 @@ -4320,10 +4300,10 @@ if local.get $0 f64.promote_f32 + local.tee $9 f64.const 6.283185307179586 f64.add - local.get $0 - f64.promote_f32 + local.get $9 f64.const 6.283185307179586 f64.sub local.get $5 @@ -4406,12 +4386,13 @@ if local.get $0 f64.promote_f32 - local.get $0 - f64.promote_f32 + local.tee $8 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $9 + local.set $9 + local.get $8 + local.get $9 f64.const 1.5707963109016418 f64.mul f64.sub @@ -4959,11 +4940,11 @@ i64.const 1 i64.shl i32.wrap_i64 - local.tee $7 i32.const 3 i32.shl i32.const 5664 i32.add + local.tee $7 i64.load offset=8 local.get $5 i64.const 45 @@ -4987,10 +4968,6 @@ f64.mul local.set $2 local.get $7 - i32.const 3 - i32.shl - i32.const 5664 - i32.add f64.load local.get $0 f64.add @@ -6074,7 +6051,8 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) + (local $7 f64) + (local $8 f32) block $__inlined_func$~lib/math/NativeMathf.hypot (result f32) local.get $1 i32.reinterpret_f32 @@ -6123,13 +6101,13 @@ br_if $__inlined_func$~lib/math/NativeMathf.hypot drop f32.const 1 - local.set $7 + local.set $8 local.get $5 i32.const 1568669696 i32.ge_u if (result f32) f32.const 1237940039285380274899124e3 - local.set $7 + local.set $8 local.get $1 f32.const 8.077935669463161e-28 f32.mul @@ -6143,7 +6121,7 @@ i32.lt_u if (result f32) f32.const 8.077935669463161e-28 - local.set $7 + local.set $8 local.get $1 f32.const 1237940039285380274899124e3 f32.mul @@ -6156,16 +6134,16 @@ end end local.set $0 - local.get $7 - local.get $0 - f64.promote_f32 + local.get $8 local.get $0 f64.promote_f32 + local.tee $7 + local.get $7 f64.mul local.get $1 f64.promote_f32 - local.get $1 - f64.promote_f32 + local.tee $7 + local.get $7 f64.mul f64.add f32.demote_f64 @@ -6544,6 +6522,7 @@ (local $7 f64) (local $8 i64) (local $9 f64) + (local $10 i32) block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 @@ -6663,9 +6642,8 @@ local.get $0 local.get $0 f64.sub - local.get $0 - local.get $0 - f64.sub + local.tee $2 + local.get $2 f64.div i32.const 1 local.get $3 @@ -6697,18 +6675,6 @@ i64.and i32.wrap_i64 local.set $3 - local.get $8 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.get $3 - i32.const 4 - i32.shl - i32.const 7968 - i32.add - f64.load offset=8 - f64.add - local.tee $5 local.get $1 local.get $8 i64.const -4503599627370496 @@ -6718,22 +6684,19 @@ local.get $3 i32.const 4 i32.shl + local.tee $3 i32.const 8992 i32.add + local.tee $10 f64.load f64.sub - local.get $3 - i32.const 4 - i32.shl - i32.const 8992 - i32.add + local.get $10 f64.load offset=8 f64.sub local.get $3 - i32.const 4 - i32.shl i32.const 7968 i32.add + local.tee $3 f64.load f64.mul local.tee $0 @@ -6744,7 +6707,16 @@ local.tee $7 f64.const 1.4426950407214463 f64.mul - local.tee $4 + local.set $4 + local.get $8 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.get $3 + f64.load offset=8 + f64.add + local.tee $5 + local.get $4 f64.add local.set $6 local.get $5 @@ -6799,8 +6771,8 @@ (local $3 i32) (local $4 f64) (local $5 i32) - (local $6 i32) - (local $7 f64) + (local $6 f64) + (local $7 f32) block $~lib/util/math/log2f_lut|inlined.0 (result f32) local.get $0 i32.reinterpret_f32 @@ -6826,9 +6798,8 @@ local.get $0 local.get $0 f32.sub - local.get $0 - local.get $0 - f32.sub + local.tee $7 + local.get $7 f32.div i32.const 1 local.get $3 @@ -6851,26 +6822,25 @@ local.set $3 end local.get $3 + local.get $3 i32.const 1060306944 i32.sub local.tee $5 - i32.const 19 - i32.shr_u - i32.const 15 - i32.and - local.set $6 - local.get $3 - local.get $5 i32.const -8388608 i32.and i32.sub f32.reinterpret_i32 f64.promote_f32 - local.get $6 + local.get $5 + i32.const 19 + i32.shr_u + i32.const 15 + i32.and i32.const 4 i32.shl i32.const 10016 i32.add + local.tee $3 f64.load f64.mul f64.const 1 @@ -6878,26 +6848,22 @@ local.tee $4 local.get $4 f64.mul - local.set $7 + local.set $6 local.get $4 f64.const 0.4811247078767291 f64.mul f64.const -0.7213476299867769 f64.add - local.get $7 + local.get $6 f64.const -0.36051725506874704 f64.mul f64.add - local.get $7 + local.get $6 f64.mul local.get $4 f64.const 1.4426950186867042 f64.mul - local.get $6 - i32.const 4 - i32.shl - i32.const 10016 - i32.add + local.get $3 f64.load offset=8 local.get $5 i32.const 23 @@ -7624,9 +7590,8 @@ local.get $4 local.get $4 f64.sub - local.get $4 - local.get $4 - f64.sub + local.tee $0 + local.get $0 f64.div local.set $0 block $~lib/util/math/checkint|inlined.1 (result i32) @@ -7750,21 +7715,6 @@ i64.and i32.wrap_i64 local.set $5 - local.get $9 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.tee $12 - f64.const 0.6931471805598903 - f64.mul - local.get $5 - i32.const 5 - i32.shl - i32.const 10272 - i32.add - f64.load offset=16 - f64.add - local.tee $13 local.get $2 local.get $9 i64.const -4503599627370496 @@ -7782,12 +7732,25 @@ i32.shl i32.const 10272 i32.add + local.tee $5 f64.load local.tee $0 f64.mul f64.const 1 f64.sub - local.tee $1 + local.set $1 + local.get $9 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.tee $12 + f64.const 0.6931471805598903 + f64.mul + local.get $5 + f64.load offset=16 + f64.add + local.tee $13 + local.get $1 local.get $2 f64.reinterpret_i64 local.get $4 @@ -7821,10 +7784,6 @@ f64.const 5.497923018708371e-14 f64.mul local.get $5 - i32.const 5 - i32.shl - i32.const 10272 - i32.add f64.load offset=24 f64.add local.get $13 @@ -7973,11 +7932,11 @@ i64.const 1 i64.shl i32.wrap_i64 - local.tee $18 i32.const 3 i32.shl i32.const 5664 i32.add + local.tee $18 i64.load offset=8 local.get $5 i64.extend_i32_u @@ -8006,10 +7965,6 @@ f64.mul local.set $1 local.get $18 - i32.const 3 - i32.shl - i32.const 5664 - i32.add f64.load local.get $0 f64.add @@ -8364,9 +8319,8 @@ local.get $1 local.get $1 f32.sub - local.get $1 - local.get $1 - f32.sub + local.tee $0 + local.get $0 f32.div local.set $0 block $~lib/util/math/checkintf|inlined.1 (result i32) @@ -8463,6 +8417,7 @@ i32.shl i32.const 10016 i32.add + local.tee $4 f64.load f64.mul f64.const 1 @@ -8486,10 +8441,6 @@ f64.const 1.4426950408774342 f64.mul local.get $4 - i32.const 4 - i32.shl - i32.const 10016 - i32.add f64.load offset=8 local.get $5 i32.const 23 @@ -8595,6 +8546,8 @@ (func $~lib/math/NativeMath.seedRandom (param $0 i64) (local $1 i32) (local $2 i64) + (local $3 i64) + (local $4 i32) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -8618,6 +8571,7 @@ i64.xor global.set $~lib/math/random_state0_64 global.get $~lib/math/random_state0_64 + local.tee $3 i64.const -1 i64.xor local.tee $2 @@ -8673,6 +8627,7 @@ i32.xor global.set $~lib/math/random_state0_32 global.get $~lib/math/random_state0_32 + local.tee $4 i32.const 1831565813 i32.add local.tee $1 @@ -8707,13 +8662,13 @@ i32.const 0 i32.ne i32.const 0 - global.get $~lib/math/random_state0_32 + local.get $4 i32.const 0 global.get $~lib/math/random_state1_64 i64.const 0 i64.ne i32.const 0 - global.get $~lib/math/random_state0_64 + local.get $3 i64.const 0 i64.ne select @@ -9095,9 +9050,8 @@ local.get $0 local.get $1 f32.mul + local.tee $0 local.get $0 - local.get $1 - f32.mul f32.div return end @@ -9816,10 +9770,10 @@ end local.get $0 f64.promote_f32 + local.tee $9 f64.const 3.141592653589793 f64.add - local.get $0 - f64.promote_f32 + local.get $9 f64.const 3.141592653589793 f64.sub local.get $5 @@ -9913,10 +9867,10 @@ end local.get $0 f64.promote_f32 + local.tee $9 f64.const 6.283185307179586 f64.add - local.get $0 - f64.promote_f32 + local.get $9 f64.const 6.283185307179586 f64.sub local.get $5 @@ -9947,12 +9901,13 @@ if local.get $0 f64.promote_f32 - local.get $0 - f64.promote_f32 + local.tee $8 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $9 + local.set $9 + local.get $8 + local.get $9 f64.const 1.5707963109016418 f64.mul f64.sub @@ -10809,10 +10764,10 @@ if local.get $0 f64.promote_f32 + local.tee $9 f64.const 1.5707963267948966 f64.add - local.get $0 - f64.promote_f32 + local.get $9 f64.const 1.5707963267948966 f64.sub local.get $5 @@ -10828,10 +10783,10 @@ else local.get $0 f64.promote_f32 + local.tee $9 f64.const 3.141592653589793 f64.add - local.get $0 - f64.promote_f32 + local.get $9 f64.const 3.141592653589793 f64.sub local.get $5 @@ -10857,10 +10812,10 @@ if local.get $0 f64.promote_f32 + local.tee $9 f64.const 4.71238898038469 f64.add - local.get $0 - f64.promote_f32 + local.get $9 f64.const 4.71238898038469 f64.sub local.get $5 @@ -10876,10 +10831,10 @@ else local.get $0 f64.promote_f32 + local.tee $9 f64.const 6.283185307179586 f64.add - local.get $0 - f64.promote_f32 + local.get $9 f64.const 6.283185307179586 f64.sub local.get $5 @@ -10912,12 +10867,13 @@ if local.get $0 f64.promote_f32 - local.get $0 - f64.promote_f32 + local.tee $8 f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $9 + local.set $9 + local.get $8 + local.get $9 f64.const 1.5707963109016418 f64.mul f64.sub @@ -11305,18 +11261,17 @@ (func $~lib/math/NativeMath.sincos (param $0 f64) (local $1 f64) (local $2 f64) - (local $3 f64) - (local $4 i64) + (local $3 i64) + (local $4 f64) (local $5 i32) (local $6 i32) (local $7 f64) (local $8 i32) (local $9 f64) (local $10 f64) - (local $11 f64) local.get $0 i64.reinterpret_f64 - local.tee $4 + local.tee $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -11342,15 +11297,18 @@ return end local.get $0 - local.get $0 - local.get $0 - f64.mul local.tee $1 local.get $0 f64.mul + local.tee $0 + local.set $4 local.get $1 + local.get $4 local.get $1 - local.get $1 + f64.mul + local.get $4 + local.get $4 + local.get $4 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -11358,12 +11316,12 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $1 - local.get $1 - local.get $1 + local.get $4 + local.get $4 + local.get $4 f64.mul f64.mul - local.get $1 + local.get $4 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -11376,15 +11334,8 @@ f64.mul f64.add global.set $~lib/math/NativeMath.sincos_sin - local.get $0 - local.get $0 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $3 f64.const 1 - local.get $1 + local.get $0 f64.const 0.5 f64.mul local.tee $2 @@ -11395,10 +11346,10 @@ f64.sub local.get $2 f64.sub - local.get $1 - local.get $1 - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 + local.get $0 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -11407,11 +11358,14 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $3 - local.get $3 + local.get $0 + local.get $0 f64.mul - local.get $1 - local.get $1 + local.tee $4 + local.get $4 + f64.mul + local.get $0 + local.get $0 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -11422,7 +11376,7 @@ f64.mul f64.add f64.mul - local.get $0 + local.get $1 f64.const 0 f64.mul f64.sub @@ -11445,7 +11399,7 @@ return end block $~lib/math/rempio2|inlined.3 (result i32) - local.get $4 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -11542,12 +11496,12 @@ f64.const 0.6366197723675814 f64.mul f64.nearest - local.tee $3 + local.tee $4 f64.const 1.5707963267341256 f64.mul f64.sub local.tee $0 - local.get $3 + local.get $4 f64.const 6.077100506506192e-11 f64.mul local.tee $1 @@ -11565,13 +11519,12 @@ i32.const 16 i32.gt_u if - local.get $3 + local.get $4 f64.const 2.0222662487959506e-21 f64.mul local.get $0 - local.tee $1 - local.get $1 - local.get $3 + local.get $0 + local.get $4 f64.const 6.077100506303966e-11 f64.mul local.tee $2 @@ -11599,13 +11552,12 @@ i32.const 49 i32.gt_u if (result f64) - local.get $3 + local.get $4 f64.const 8.4784276603689e-32 f64.mul local.get $0 - local.tee $1 - local.get $1 - local.get $3 + local.get $0 + local.get $4 f64.const 2.0222662487111665e-21 f64.mul local.tee $2 @@ -11632,12 +11584,12 @@ local.get $1 f64.sub global.set $~lib/math/rempio2_y1 - local.get $3 + local.get $4 i32.trunc_f64_s br $~lib/math/rempio2|inlined.3 end i32.const 0 - local.get $4 + local.get $3 call $~lib/math/pio2_large_quot local.tee $5 i32.sub @@ -11650,17 +11602,18 @@ local.tee $2 local.get $2 f64.mul + local.tee $1 local.tee $0 local.get $2 f64.mul - local.set $1 + local.set $4 local.get $2 local.get $0 global.get $~lib/math/rempio2_y1 local.tee $7 f64.const 0.5 f64.mul - local.get $1 + local.get $4 local.get $0 local.get $0 f64.const 2.7557313707070068e-06 @@ -11687,33 +11640,25 @@ f64.mul local.get $7 f64.sub - local.get $1 + local.get $4 f64.const -0.16666666666666632 f64.mul f64.sub f64.sub - local.set $3 - local.get $2 - local.get $2 - f64.mul - local.tee $1 - local.get $1 - f64.mul - local.set $9 - local.get $3 + local.tee $4 local.set $0 f64.const 1 local.get $1 f64.const 0.5 f64.mul - local.tee $10 + local.tee $9 f64.sub - local.tee $11 + local.tee $10 f64.const 1 - local.get $11 - f64.sub local.get $10 f64.sub + local.get $9 + f64.sub local.get $1 local.get $1 local.get $1 @@ -11726,7 +11671,10 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $9 + local.get $1 + local.get $1 + f64.mul + local.tee $9 local.get $9 f64.mul local.get $1 @@ -11754,7 +11702,7 @@ if local.get $1 local.set $0 - local.get $3 + local.get $4 f64.neg local.set $1 end diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 40f1243a95..ba1cc18e75 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -288,19 +288,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -371,17 +371,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -636,11 +634,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -996,13 +991,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1091,8 +1086,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 5fec91b589..d03152ff94 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -347,19 +347,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -430,17 +430,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -695,11 +693,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1055,13 +1050,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1150,8 +1145,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/std/pointer.optimized.wat b/tests/compiler/std/pointer.optimized.wat index c286865cc4..a21e0db674 100644 --- a/tests/compiler/std/pointer.optimized.wat +++ b/tests/compiler/std/pointer.optimized.wat @@ -1043,44 +1043,44 @@ unreachable end global.get $std/pointer/one - local.set $1 + local.set $3 global.get $std/pointer/two - local.tee $0 + local.tee $2 if block $~lib/util/memory/memmove|inlined.0 i32.const 8 local.set $4 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.eq br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.sub i32.const 8 i32.sub i32.const -16 i32.le_u if - local.get $1 - local.get $0 + local.get $3 + local.get $2 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.gt_u if - local.get $0 + local.get $2 i32.const 7 i32.and - local.get $1 + local.get $3 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $1 + local.get $3 i32.const 7 i32.and if @@ -1091,18 +1091,18 @@ i32.const 1 i32.sub local.set $4 - local.get $1 - local.tee $2 + local.get $3 + local.tee $0 i32.const 1 i32.add - local.set $1 - local.get $0 - local.tee $3 + local.set $3 + local.get $2 + local.tee $1 i32.const 1 i32.add - local.set $0 - local.get $2 - local.get $3 + local.set $2 + local.get $0 + local.get $1 i32.load8_u i32.store8 br $while-continue|0 @@ -1113,22 +1113,22 @@ i32.const 8 i32.ge_u if - local.get $1 - local.get $0 + local.get $3 + local.get $2 i64.load i64.store local.get $4 i32.const 8 i32.sub local.set $4 - local.get $1 + local.get $3 i32.const 8 i32.add - local.set $1 - local.get $0 + local.set $3 + local.get $2 i32.const 8 i32.add - local.set $0 + local.set $2 br $while-continue|1 end end @@ -1136,18 +1136,18 @@ loop $while-continue|2 local.get $4 if - local.get $1 - local.tee $2 + local.get $3 + local.tee $0 i32.const 1 i32.add - local.set $1 - local.get $0 - local.tee $3 + local.set $3 + local.get $2 + local.tee $1 i32.const 1 i32.add - local.set $0 - local.get $2 - local.get $3 + local.set $2 + local.get $0 + local.get $1 i32.load8_u i32.store8 local.get $4 @@ -1158,16 +1158,16 @@ end end else - local.get $0 + local.get $2 i32.const 7 i32.and - local.get $1 + local.get $3 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $1 + local.get $3 local.get $4 i32.add i32.const 7 @@ -1180,9 +1180,9 @@ i32.const 1 i32.sub local.tee $4 - local.get $1 + local.get $3 i32.add - local.get $0 + local.get $2 local.get $4 i32.add i32.load8_u @@ -1199,9 +1199,9 @@ i32.const 8 i32.sub local.tee $4 - local.get $1 + local.get $3 i32.add - local.get $0 + local.get $2 local.get $4 i32.add i64.load @@ -1217,9 +1217,9 @@ i32.const 1 i32.sub local.tee $4 - local.get $1 + local.get $3 i32.add - local.get $0 + local.get $2 local.get $4 i32.add i32.load8_u @@ -1230,37 +1230,37 @@ end end else - local.get $1 + local.get $3 i32.const 0 i32.store8 - local.get $1 + local.get $3 i32.const 8 i32.add - local.tee $0 + local.tee $2 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $3 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $3 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $2 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $3 i32.const 0 i32.store8 offset=3 - local.get $0 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1386,14 +1386,12 @@ unreachable end global.get $std/pointer/buf - local.tee $0 i32.const 8 i32.add + local.tee $1 f32.const 1.2999999523162842 f32.store - local.get $0 - i32.const 8 - i32.add + local.get $1 f32.load f32.const 1.2999999523162842 f32.ne @@ -1432,10 +1430,10 @@ unreachable end global.get $std/pointer/buf - local.tee $0 + local.tee $1 f32.const 1.399999976158142 f32.store - local.get $0 + local.get $1 f32.load f32.const 1.399999976158142 f32.ne diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index aaf284c996..49d3c21146 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -305,19 +305,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -388,17 +388,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -653,11 +651,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1013,13 +1008,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1108,8 +1103,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1496,8 +1491,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1621,9 +1615,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1637,7 +1630,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1646,15 +1639,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1669,64 +1662,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1734,7 +1720,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -3276,6 +3262,7 @@ end ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -3296,13 +3283,12 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 0 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $1 @@ -6567,6 +6553,7 @@ end ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -6587,13 +6574,12 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 1 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $0 @@ -9833,6 +9819,7 @@ end ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -9853,13 +9840,12 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $0 @@ -13115,6 +13101,7 @@ end ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) local.get $0 i32.load offset=12 local.get $1 @@ -13135,13 +13122,12 @@ local.get $1 i32.const 1 i32.add + local.tee $3 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $3 i32.store offset=12 end local.get $0 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 0aa81e4efa..9e077318d8 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -343,19 +343,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -426,17 +426,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -691,11 +689,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1051,13 +1046,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1146,8 +1141,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -2337,7 +2332,7 @@ local.get $0 i32.const 20 i32.sub - local.tee $2 + local.tee $6 i32.load i32.const -4 i32.and @@ -2346,16 +2341,17 @@ local.get $1 i32.ge_u if - local.get $2 + local.get $6 local.get $1 i32.store offset=16 local.get $0 return end - local.get $2 + local.get $6 i32.load offset=12 - local.set $3 + local.set $7 local.get $1 + local.tee $3 i32.const 1073741804 i32.ge_u if @@ -2372,12 +2368,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $4 + local.set $1 loop $do-continue|0 - local.get $4 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $4 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -2393,37 +2389,36 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $4 + local.get $1 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $4 + local.tee $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $4 + local.get $1 i32.add global.set $~lib/rt/itcms/threshold end end - local.get $1 + local.get $3 i32.const 16 i32.add - local.set $4 + local.set $1 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $7 - local.get $7 - local.get $4 + local.tee $5 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -2434,13 +2429,13 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $4 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -2448,34 +2443,34 @@ i32.const 4 i32.sub end - local.tee $4 + local.tee $1 call $~lib/rt/tlsf/searchBlock - local.tee $5 + local.tee $4 i32.eqz if memory.size - local.tee $6 - local.get $4 + local.tee $2 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $4 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $4 + local.get $1 i32.add else - local.get $4 + local.get $1 end i32.const 4 - local.get $7 + local.get $5 i32.load offset=1568 - local.get $6 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -2489,16 +2484,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $5 - local.get $5 - local.get $6 - i32.lt_s + local.tee $4 + local.get $2 + local.get $4 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $5 + local.get $4 memory.grow i32.const 0 i32.lt_s @@ -2506,18 +2501,18 @@ unreachable end end - local.get $7 - local.get $6 + local.get $5 + local.get $2 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $7 - local.get $4 + local.get $5 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $5 + local.tee $4 i32.eqz if i32.const 0 @@ -2528,11 +2523,11 @@ unreachable end end - local.get $5 + local.get $4 i32.load i32.const -4 i32.and - local.get $4 + local.get $1 i32.lt_u if i32.const 0 @@ -2542,14 +2537,16 @@ call $~lib/builtins/abort unreachable end - local.get $7 local.get $5 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $5 - local.tee $6 - i32.load - local.set $5 + local.get $1 + local.set $2 local.get $4 + local.tee $1 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -2562,24 +2559,24 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $4 + local.get $2 i32.sub local.tee $8 i32.const 16 i32.ge_u if - local.get $6 - local.get $5 + local.get $1 + local.get $4 i32.const 2 i32.and - local.get $4 + local.get $2 i32.or i32.store - local.get $4 - local.get $6 + local.get $2 + local.get $1 i32.const 4 i32.add i32.add @@ -2590,68 +2587,61 @@ i32.const 1 i32.or i32.store - local.get $7 + local.get $5 local.get $4 call $~lib/rt/tlsf/insertBlock else - local.get $6 - local.get $5 + local.get $1 + local.get $4 i32.const -2 i32.and i32.store - local.get $6 - i32.const 4 - i32.add - local.get $6 - i32.load - i32.const -4 - i32.and - i32.add - local.get $6 + local.get $1 i32.const 4 i32.add - local.get $6 + local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $4 + local.get $4 i32.load i32.const -3 i32.and i32.store end - local.get $6 - local.tee $4 - local.get $3 + local.get $1 + local.get $7 i32.store offset=12 - local.get $4 local.get $1 + local.get $3 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $5 + local.tee $2 i32.load offset=8 - local.set $3 - local.get $4 + local.set $4 + local.get $1 global.get $~lib/rt/itcms/white - local.get $5 + local.get $2 i32.or i32.store offset=4 + local.get $1 local.get $4 - local.get $3 i32.store offset=8 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.load offset=4 i32.const 3 i32.and - local.get $4 + local.get $1 i32.or i32.store offset=4 - local.get $5 - local.get $4 + local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $4 + local.get $1 i32.load i32.const -4 i32.and @@ -2659,19 +2649,19 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $4 + local.get $1 i32.const 20 i32.add local.tee $4 - local.get $1 + local.get $3 call $~lib/memory/memory.fill - local.get $1 - local.get $2 + local.get $3 + local.get $6 i32.load offset=16 - local.tee $2 + local.tee $1 local.get $1 - local.get $2 - i32.lt_u + local.get $3 + i32.gt_u select local.set $5 block $~lib/util/memory/memmove|inlined.0 @@ -2723,17 +2713,17 @@ i32.sub local.set $5 local.get $1 - local.tee $2 + local.tee $3 i32.const 1 i32.add local.set $1 local.get $0 - local.tee $3 + local.tee $2 i32.const 1 i32.add local.set $0 - local.get $2 local.get $3 + local.get $2 i32.load8_u i32.store8 br $while-continue|0 @@ -2768,17 +2758,17 @@ local.get $5 if local.get $1 - local.tee $2 + local.tee $3 i32.const 1 i32.add local.set $1 local.get $0 - local.tee $3 + local.tee $2 i32.const 1 i32.add local.set $0 - local.get $2 local.get $3 + local.get $2 i32.load8_u i32.store8 local.get $5 @@ -3083,6 +3073,7 @@ call $start:std/static-array ) (func $start:std/static-array + (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3099,9 +3090,10 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1088 i32.store i32.const 1100 diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index e728f67218..1e37320144 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -435,19 +435,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -518,17 +518,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -783,11 +781,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1143,13 +1138,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1238,8 +1233,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1626,8 +1621,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1751,9 +1745,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1767,7 +1760,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1776,15 +1769,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1799,64 +1792,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1864,7 +1850,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -3559,10 +3545,10 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 f32) + (local $3 f32) + (local $4 f64) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 28 i32.sub @@ -3573,19 +3559,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $6 i64.const 0 i64.store - local.get $2 + local.get $6 i64.const 0 i64.store offset=8 - local.get $2 + local.get $6 i64.const 0 i64.store offset=16 - local.get $2 + local.get $6 i32.const 0 i32.store offset=24 - local.get $2 + local.get $6 i32.const 1056 i32.store i32.const 1056 @@ -3742,17 +3728,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 1312 i32.const 12 call $~lib/memory/memory.copy - local.get $2 + local.get $6 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $6 i32.store - local.get $2 + local.get $6 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -3767,9 +3753,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $6 i32.store - local.get $2 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -3784,9 +3770,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $6 i32.store - local.get $2 + local.get $6 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -3801,9 +3787,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $6 i32.store - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -3821,16 +3807,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $6 i32.store - local.get $2 + local.get $6 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $6 i32.store - local.get $2 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -3846,17 +3832,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 1312 i32.const 12 call $~lib/memory/memory.copy - local.get $2 + local.get $6 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $2 + local.tee $6 i32.store - local.get $2 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -3873,35 +3859,35 @@ i32.const 8 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $6 call $std/staticarray/Ref#constructor - local.tee $1 + local.tee $0 i32.store - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.const 1 call $~lib/rt/itcms/__link - local.get $2 + local.get $6 i32.const 4 i32.add call $std/staticarray/Ref#constructor - local.tee $1 + local.tee $0 i32.store - local.get $2 - local.get $1 + local.get $6 + local.get $0 i32.const 1 call $~lib/rt/itcms/__link - local.get $2 + local.get $6 global.set $std/staticarray/arr4 i32.const 0 global.set $std/staticarray/arr3 i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $6 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3910,25 +3896,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $6 i32.const 0 i32.store - local.get $2 + local.get $6 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.store - local.get $2 + local.get $6 i32.const 12 call $~lib/memory/memory.fill global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store offset=4 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -3945,17 +3931,17 @@ unreachable end loop $for-loop|0 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $0 + local.get $1 i32.gt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray#__get if i32.const 0 @@ -3965,10 +3951,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -3977,16 +3963,16 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.tee $2 + local.tee $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 call $~lib/staticarray/StaticArray.fromArray - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $6 i32.load offset=12 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4002,20 +3988,20 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $6 i32.load offset=12 - local.get $0 + local.get $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/staticarray/StaticArray#__get - local.set $3 - local.get $2 + local.set $2 + local.get $6 i32.load offset=12 - local.get $0 + local.get $1 i32.le_u if i32.const 1088 @@ -4025,14 +4011,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.get $3 + local.get $2 i32.ne if i32.const 0 @@ -4042,10 +4028,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end @@ -4054,15 +4040,15 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store - local.get $2 + local.get $6 call $~lib/staticarray/StaticArray.fromArray - local.tee $2 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4080,29 +4066,29 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 1856 i32.const 8 call $~lib/memory/memory.copy - local.get $2 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.const 1888 i32.const 4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray.concat - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4122,25 +4108,25 @@ i32.const 0 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.const 1920 i32.const 0 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray.concat - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4159,26 +4145,26 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2128 i32.const 20 call $~lib/memory/memory.copy - local.get $2 + local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const 0 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4194,33 +4180,33 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|2 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $0 + local.get $1 i32.gt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store - local.get $1 local.get $0 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=12 - local.get $3 - local.get $4 + local.get $2 + local.get $5 call $~lib/string/String.__eq i32.eqz if @@ -4231,21 +4217,21 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4261,18 +4247,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $1 + local.tee $2 + local.get $0 i32.store - local.get $3 + local.get $2 i32.const 1984 i32.store offset=12 - local.get $1 + local.get $0 i32.const 1984 call $~lib/string/String.__eq i32.eqz @@ -4284,18 +4270,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 2016 i32.store offset=12 - local.get $0 + local.get $1 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4308,13 +4294,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const 1 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4322,7 +4308,7 @@ i32.shr_u i32.const 1 i32.sub - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4338,19 +4324,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4366,13 +4352,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const 100 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4387,13 +4373,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const -1 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4409,18 +4395,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 2080 i32.store offset=12 - local.get $0 + local.get $1 i32.const 2080 call $~lib/string/String.__eq i32.eqz @@ -4433,13 +4419,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4454,13 +4440,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $6 i32.store offset=4 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4476,18 +4462,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.tee $1 + local.get $6 i32.store - local.get $0 + local.get $1 i32.const 2016 i32.store offset=12 - local.get $2 + local.get $6 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4503,29 +4489,29 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2304 i32.const 20 call $~lib/memory/memory.copy - local.get $2 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 9 i32.const 2352 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.load offset=12 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4545,18 +4531,18 @@ i32.const 9 i32.const 2416 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.load offset=12 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4577,16 +4563,16 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2448 i32.const 20 call $~lib/memory/memory.copy - local.get $2 + local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 1984 i32.store offset=12 - local.get $2 + local.get $6 i32.const 1984 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4603,7 +4589,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2384 i32.store offset=12 - local.get $2 + local.get $6 i32.const 2384 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4618,7 +4604,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $2 + local.get $6 i32.const 2080 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4633,7 +4619,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $2 + local.get $6 i32.const 2080 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4650,56 +4636,56 @@ i32.const 8 i32.const 10 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2496 i32.const 8 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store block $__inlined_func$~lib/staticarray/StaticArray#includes (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 3 i32.shr_u - local.tee $3 + local.tee $2 i32.const 0 - local.get $3 + local.get $2 select i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|0 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $2 + local.get $6 i32.add f64.load - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f64.ne - local.get $5 + local.get $4 f64.const nan:0x8000000000000 f64.eq select br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -4717,56 +4703,56 @@ i32.const 4 i32.const 11 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2528 i32.const 4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store block $__inlined_func$~lib/staticarray/StaticArray#includes (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $3 + local.tee $2 i32.const 0 - local.get $3 + local.get $2 select i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|07 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add f32.load - local.tee $6 - local.get $6 + local.tee $3 + local.get $3 f32.ne - local.get $6 + local.get $3 f32.const nan:0x400000 f32.eq select br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|07 end end @@ -4785,56 +4771,56 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2560 i32.const 12 call $~lib/memory/memory.copy - local.get $2 + local.get $6 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 select i32.eqz if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/staticarray/StaticArray#indexOf end loop $while-continue|013 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|013 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1216 @@ -4844,49 +4830,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf14 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 select i32.eqz if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/staticarray/StaticArray#indexOf14 end loop $while-continue|015 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 7 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf14 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|015 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -4898,50 +4884,50 @@ unreachable end i32.const 2 - local.set $0 + local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf16 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.const 2 i32.le_u i32.const 1 - local.get $1 + local.get $0 select if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/staticarray/StaticArray#indexOf16 end loop $while-continue|017 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 9 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf16 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 2 i32.ne if @@ -4953,58 +4939,58 @@ unreachable end block $__inlined_func$~lib/staticarray/StaticArray#indexOf18 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.const -1 i32.le_s i32.const 1 - local.get $1 + local.get $0 select if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/staticarray/StaticArray#indexOf18 end - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 loop $while-continue|019 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf18 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|019 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -5016,58 +5002,58 @@ unreachable end block $__inlined_func$~lib/staticarray/StaticArray#indexOf20 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.const -3 i32.le_s i32.const 1 - local.get $1 + local.get $0 select if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/staticarray/StaticArray#indexOf20 end - local.get $1 + local.get $0 i32.const 3 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 loop $while-continue|021 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf20 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|021 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1216 @@ -5081,22 +5067,22 @@ i32.const 9 i32.const 2688 call $~lib/rt/__newArray - local.tee $2 + local.tee $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 2752 i32.store offset=20 - local.get $2 + local.get $6 i32.const 2752 call $~lib/array/Array<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 2784 i32.store offset=12 - local.get $0 + local.get $1 i32.const 2784 call $~lib/string/String.__eq i32.eqz @@ -5111,17 +5097,17 @@ global.get $~lib/memory/__stack_pointer i32.const 2720 i32.store offset=20 - local.get $2 + local.get $6 i32.const 2720 call $~lib/array/Array<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 2832 i32.store offset=12 - local.get $0 + local.get $1 i32.const 2832 call $~lib/string/String.__eq i32.eqz @@ -5136,17 +5122,17 @@ global.get $~lib/memory/__stack_pointer i32.const 2880 i32.store offset=20 - local.get $2 + local.get $6 i32.const 2880 call $~lib/array/Array<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 2912 i32.store offset=12 - local.get $0 + local.get $1 i32.const 2912 call $~lib/string/String.__eq i32.eqz @@ -5161,17 +5147,17 @@ global.get $~lib/memory/__stack_pointer i32.const 2960 i32.store offset=20 - local.get $2 + local.get $6 i32.const 2960 call $~lib/array/Array<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 2992 i32.store offset=12 - local.get $0 + local.get $1 i32.const 2992 call $~lib/string/String.__eq i32.eqz @@ -5186,12 +5172,12 @@ global.get $~lib/memory/__stack_pointer i32.const 2752 i32.store offset=20 - local.get $2 + local.get $6 i32.const 2752 call $~lib/array/Array<~lib/string/String>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5202,25 +5188,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 2752 i32.store - local.get $2 + local.get $6 i32.const 2752 call $~lib/array/Array<~lib/string/String>#join - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store offset=12 - local.get $0 - local.get $2 + local.get $1 + local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -5236,64 +5222,63 @@ i32.const 6 i32.const 3056 call $~lib/rt/__newArray - local.tee $2 + local.tee $6 i32.store offset=24 - local.get $2 + local.get $6 i32.load offset=12 - local.set $0 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf local.get $2 - i32.load offset=12 - local.tee $3 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $0 - local.get $0 - local.get $3 + local.get $1 + local.get $1 + local.get $2 i32.ge_s select - local.get $0 + local.get $1 i32.const 0 i32.lt_s select - local.set $0 - local.get $2 + local.set $1 + local.get $6 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|00 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|00 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -5304,62 +5289,61 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.load offset=12 - local.set $0 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf5 local.get $2 - i32.load offset=12 - local.tee $3 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.get $0 - local.get $0 - local.get $3 + local.get $1 + local.get $1 + local.get $2 i32.ge_s select - local.get $0 + local.get $1 i32.const 0 i32.lt_s select - local.set $0 - local.get $2 + local.set $1 + local.get $6 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|06 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load i32.const 7 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|06 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -5371,52 +5355,52 @@ unreachable end block $__inlined_func$~lib/array/Array#lastIndexOf7 - local.get $2 + local.get $6 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/array/Array#lastIndexOf7 end - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_s select - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 + local.get $6 + i32.load offset=4 + local.set $0 loop $while-continue|023 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf7 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|023 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -5428,52 +5412,52 @@ unreachable end block $__inlined_func$~lib/array/Array#lastIndexOf24 - local.get $2 + local.get $6 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/array/Array#lastIndexOf24 end - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_s select - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 + local.get $6 + i32.load offset=4 + local.set $0 loop $while-continue|025 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf24 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|025 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1216 @@ -5483,47 +5467,47 @@ unreachable end block $__inlined_func$~lib/array/Array#lastIndexOf26 - local.get $2 + local.get $6 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/array/Array#lastIndexOf26 end - local.get $0 + local.get $1 i32.const 2 i32.sub - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 + local.get $6 + i32.load offset=4 + local.set $0 loop $while-continue|027 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf26 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1216 @@ -5533,47 +5517,47 @@ unreachable end block $__inlined_func$~lib/array/Array#lastIndexOf28 - local.get $2 + local.get $6 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz if i32.const -1 - local.set $0 + local.set $1 br $__inlined_func$~lib/array/Array#lastIndexOf28 end - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - local.get $2 + local.set $1 + local.get $6 i32.load offset=4 - local.set $2 + local.set $6 loop $while-continue|029 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf28 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|029 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 9dba61bc89..7f378327f0 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -736,19 +736,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -819,17 +819,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -1084,11 +1082,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1444,13 +1439,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1539,8 +1534,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1702,12 +1697,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1723,20 +1718,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1744,16 +1739,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1764,13 +1758,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1778,34 +1772,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1819,16 +1813,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1836,18 +1830,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1858,11 +1852,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1872,14 +1866,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1892,92 +1885,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1993,18 +1979,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -2013,18 +1999,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -2033,10 +2019,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -2045,20 +2031,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -2073,10 +2059,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -2093,16 +2079,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -2125,8 +2111,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 9559b00323..b51d66f973 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -321,19 +321,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -404,17 +404,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -669,11 +667,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1029,13 +1024,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1124,8 +1119,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1287,12 +1282,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1308,20 +1303,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1329,16 +1324,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1349,13 +1343,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1363,34 +1357,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1404,16 +1398,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1421,18 +1415,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1443,11 +1437,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1457,14 +1451,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1477,92 +1470,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1578,18 +1564,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1598,18 +1584,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1618,10 +1604,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1630,20 +1616,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1658,10 +1644,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1678,16 +1664,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1710,8 +1696,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index f9a7059871..77a1e6881f 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1331,19 +1331,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -1414,17 +1414,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -1679,11 +1677,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -2039,13 +2034,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -2134,8 +2129,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -2522,8 +2517,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -2647,9 +2641,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -2663,7 +2656,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -2672,15 +2665,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -2695,64 +2688,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -2760,7 +2746,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -6029,10 +6015,10 @@ i64.mul local.set $8 i64.const 32 + local.get $9 local.get $6 i64.const 32 i64.shr_u - local.get $9 i64.mul local.get $8 i64.const 32 @@ -6175,14 +6161,13 @@ local.get $2 local.get $3 i32.gt_s + local.tee $1 select call $~lib/util/string/compareImpl local.tee $0 i32.const 0 i32.lt_s - local.get $2 - local.get $3 - i32.gt_s + local.get $1 local.get $0 select ) @@ -7109,7 +7094,6 @@ i32.shl local.get $0 i32.add - local.tee $4 local.tee $0 i32.const 2 i32.add @@ -7120,7 +7104,7 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $0 i32.const 46 i32.store16 local.get $1 @@ -22279,7 +22263,11 @@ i32.shr_u i32.const 1 i32.shl - local.tee $5 + local.tee $4 + local.get $1 + i32.const 1 + i32.shl + local.tee $3 local.get $0 i32.const 20 i32.sub @@ -22288,12 +22276,8 @@ i32.shr_u i32.const 1 i32.shl - local.tee $3 - local.get $1 - i32.const 1 - i32.shl - local.tee $4 - i32.gt_u + local.tee $1 + i32.lt_u select i32.eqz if @@ -22305,50 +22289,50 @@ return end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $5 i32.store - local.get $1 + local.get $5 local.get $0 - local.get $3 + local.get $1 call $~lib/memory/memory.copy - local.get $5 - local.get $4 local.get $3 + local.get $1 i32.sub local.tee $0 - i32.lt_u + local.get $4 + i32.gt_u if - local.get $5 + local.get $4 local.get $0 i32.const 2 i32.sub - local.get $5 + local.get $4 i32.div_u local.tee $6 i32.mul - local.set $4 + local.set $3 local.get $1 - local.get $3 + local.get $5 i32.add - local.tee $3 + local.tee $1 local.get $2 - local.get $5 + local.get $4 local.get $6 call $~lib/memory/memory.repeat + local.get $1 local.get $3 - local.get $4 i32.add local.get $2 local.get $0 - local.get $4 + local.get $3 i32.sub call $~lib/memory/memory.copy else local.get $1 - local.get $3 + local.get $5 i32.add local.get $2 local.get $0 @@ -22358,7 +22342,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $5 ) (func $~lib/string/String#trimStart (param $0 i32) (result i32) (local $1 i32) @@ -23950,7 +23934,7 @@ (local $4 i64) (local $5 i32) (local $6 i64) - (local $7 i32) + (local $7 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24145,6 +24129,7 @@ block $__inlined_func$~lib/util/number/ulog_base (result i32) local.get $2 i64.extend_i32_u + local.tee $6 local.set $3 local.get $1 i32.popcnt @@ -24167,7 +24152,7 @@ end local.get $1 i64.extend_i32_s - local.tee $6 + local.tee $7 local.set $4 i32.const 1 local.set $0 @@ -24197,7 +24182,7 @@ i64.ge_u if local.get $3 - local.get $6 + local.get $7 i64.div_u local.set $3 local.get $0 @@ -24213,7 +24198,7 @@ end local.get $5 i32.add - local.tee $7 + local.tee $2 i32.const 1 i32.shl i32.const 1 @@ -24221,9 +24206,8 @@ local.tee $0 i32.store local.get $0 + local.get $6 local.get $2 - i64.extend_i32_u - local.get $7 local.get $1 call $~lib/util/number/utoa64_any_core end @@ -24241,11 +24225,11 @@ local.get $0 ) (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) (local $4 i64) (local $5 i64) - (local $6 i32) + (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24347,9 +24331,9 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 local.get $1 local.get $0 call $~lib/util/number/utoa32_dec_lut @@ -24372,11 +24356,11 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store local.get $0 i64.extend_i32_u - local.set $3 + local.set $2 local.get $1 local.set $0 loop $while-continue|0 @@ -24390,9 +24374,9 @@ local.tee $0 i32.const 1 i32.shl - local.get $2 - i32.add local.get $3 + i32.add + local.get $2 i32.wrap_i64 i32.const 255 i32.and @@ -24402,10 +24386,10 @@ i32.add i32.load i32.store - local.get $3 + local.get $2 i64.const 8 i64.shr_u - local.set $3 + local.set $2 br $while-continue|0 end end @@ -24413,8 +24397,8 @@ i32.const 1 i32.and if - local.get $2 local.get $3 + local.get $2 i32.wrap_i64 i32.const 6 i32.shl @@ -24428,14 +24412,15 @@ block $__inlined_func$~lib/util/number/ulog_base (result i32) local.get $0 i64.extend_i32_u - local.set $3 + local.tee $5 + local.set $2 local.get $1 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $3 + local.get $2 i64.clz i32.wrap_i64 i32.sub @@ -24450,61 +24435,60 @@ end local.get $1 i64.extend_i32_s - local.tee $5 + local.tee $6 local.set $4 i32.const 1 - local.set $2 + local.set $0 loop $while-continue|00 - local.get $3 + local.get $2 local.get $4 i64.ge_u if - local.get $3 + local.get $2 local.get $4 i64.div_u - local.set $3 + local.set $2 local.get $4 local.get $4 i64.mul local.set $4 - local.get $2 + local.get $0 i32.const 1 i32.shl - local.set $2 + local.set $0 br $while-continue|00 end end loop $while-continue|1 - local.get $3 + local.get $2 i64.const 1 i64.ge_u if - local.get $3 - local.get $5 - i64.div_u - local.set $3 local.get $2 + local.get $6 + i64.div_u + local.set $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $while-continue|1 end end - local.get $2 + local.get $0 i32.const 1 i32.sub end - local.tee $6 + local.tee $0 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 + local.get $5 local.get $0 - i64.extend_i32_u - local.get $6 local.get $1 call $~lib/util/number/utoa64_any_core end @@ -24513,7 +24497,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) (local $2 i64) diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 695ab5a020..7c9e6e1d46 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -389,19 +389,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -472,17 +472,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -737,11 +735,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1097,13 +1092,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1192,8 +1187,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1580,8 +1575,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1705,9 +1699,8 @@ local.get $3 call $~lib/rt/tlsf/removeBlock local.get $3 - local.tee $4 i32.load - local.set $3 + local.set $4 local.get $2 i32.const 4 i32.add @@ -1721,7 +1714,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.const -4 i32.and local.get $2 @@ -1730,15 +1723,15 @@ i32.const 16 i32.ge_u if - local.get $4 local.get $3 + local.get $4 i32.const 2 i32.and local.get $2 i32.or i32.store local.get $2 - local.get $4 + local.get $3 i32.const 4 i32.add i32.add @@ -1753,64 +1746,57 @@ local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $4 local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $3 i32.const 4 i32.add - local.get $4 + local.get $3 i32.load i32.const -4 i32.and i32.add + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 - local.get $2 - global.get $~lib/rt/itcms/white + local.set $2 local.get $3 + global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $1 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 + local.get $1 local.get $3 - local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1818,7 +1804,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -4013,10 +3999,11 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $0 global.get $~lib/symbol/idToString local.tee $2 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/trace.optimized.wat b/tests/compiler/std/trace.optimized.wat index 836b777c42..7c02ba2beb 100644 --- a/tests/compiler/std/trace.optimized.wat +++ b/tests/compiler/std/trace.optimized.wat @@ -26,6 +26,7 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~start + (local $0 i32) global.get $~started if return @@ -48,9 +49,10 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index f3f03f69a5..f63c688450 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -3,9 +3,9 @@ (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) (type $i64_i64_=>_i32 (func (param i64 i64) (result i32))) (type $f32_i32_i32_=>_i32 (func (param f32 i32 i32) (result i32))) @@ -949,19 +949,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -1032,17 +1032,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -1297,11 +1295,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1707,13 +1702,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1757,8 +1752,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1897,12 +1892,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1913,13 +1915,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1927,32 +1929,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1968,16 +1970,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1985,7 +1987,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -1993,10 +1995,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $1 i32.eqz if i32.const 0 @@ -2007,11 +2009,11 @@ unreachable end end - local.get $3 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -2021,14 +2023,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $2 - i32.load - local.set $3 local.get $1 + i32.load + local.set $2 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -2041,65 +2042,61 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if + local.get $1 local.get $2 - local.get $3 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $2 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else + local.get $1 local.get $2 - local.get $3 i32.const -2 i32.and i32.store - local.get $2 - i32.const 4 - i32.add - local.get $2 - i32.load - i32.const -4 - i32.and - i32.add - local.get $2 + local.get $1 i32.const 4 i32.add - local.get $2 + local.get $1 i32.load i32.const -4 i32.and i32.add + local.tee $0 + local.get $0 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2256,8 +2253,8 @@ local.set $2 local.get $0 i64.extend_i32_u - local.get $0 - i64.extend_i32_u + local.tee $4 + local.get $4 i64.const 32 i64.shl i64.or @@ -2354,15 +2351,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -3106,14 +3097,11 @@ i32.shl local.get $0 i32.add + local.tee $3 f64.load offset=8 local.tee $7 local.set $6 - local.get $8 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 f64.load local.set $5 i32.const 2 @@ -3237,6 +3225,7 @@ (local $4 i32) (local $5 f64) (local $6 f64) + (local $7 i32) local.get $1 local.get $2 i32.eq @@ -3277,12 +3266,9 @@ i32.shl local.get $0 i32.add + local.tee $7 f64.load offset=8 - local.get $4 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $7 f64.load i32.const 2 global.set $~argumentsLength @@ -3314,29 +3300,23 @@ i32.shl local.get $0 i32.add + local.tee $3 f64.load local.set $5 - local.get $1 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $2 i32.const 3 i32.shl local.get $0 i32.add + local.tee $3 f64.load f64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $5 f64.store local.get $2 @@ -3357,12 +3337,9 @@ i32.shl local.get $0 i32.add + local.tee $1 f64.load offset=8 - local.get $4 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $1 f64.load i32.const 2 global.set $~argumentsLength @@ -3390,68 +3367,63 @@ (local $7 f64) (local $8 f64) (local $9 i32) + (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $9 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 3 i32.shl + local.tee $10 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 3 - i32.shl local.get $0 + local.get $10 i32.add f64.load f64.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $9 - local.get $2 + local.get $6 i32.sub i32.const 3 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $0 i32.add f64.load offset=8 f64.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -3460,14 +3432,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $4 i32.add f64.load local.set $7 - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $4 @@ -3491,10 +3463,10 @@ i32.add local.get $7 f64.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 3 @@ -3503,10 +3475,10 @@ i32.add local.get $8 f64.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -3526,11 +3498,10 @@ (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 f64) + (local $12 i32) (local $13 i32) (local $14 f64) - (local $15 i32) - (local $16 f64) + (local $15 f64) local.get $1 i32.const 48 i32.le_s @@ -3544,10 +3515,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -3555,7 +3527,7 @@ end local.get $0 f64.load - local.set $16 + local.set $15 local.get $0 f64.load offset=8 local.set $14 @@ -3563,8 +3535,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $16 - local.get $16 + local.get $15 + local.get $15 local.get $14 local.get $2 i32.load @@ -3574,39 +3546,39 @@ local.tee $1 select f64.store + local.get $15 + local.get $14 + local.get $1 + select + local.set $15 local.get $0 f64.load offset=16 - local.set $12 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $16 + local.get $0 + local.get $14 + local.get $15 + local.get $15 local.get $14 - local.get $1 - select - local.tee $16 - local.get $12 local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $12 - local.get $16 - local.get $1 + local.tee $1 select f64.store offset=8 local.get $0 - local.get $16 - local.get $12 + local.get $15 + local.get $14 local.get $1 select f64.store offset=16 end local.get $0 f64.load - local.set $16 + local.set $15 local.get $0 f64.load offset=8 local.set $14 @@ -3614,8 +3586,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $16 - local.get $16 + local.get $15 + local.get $15 local.get $14 local.get $2 i32.load @@ -3626,7 +3598,7 @@ select f64.store local.get $0 - local.get $16 + local.get $15 local.get $14 local.get $1 select @@ -3635,7 +3607,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -3647,38 +3619,28 @@ local.get $1 i32.clz i32.sub - local.tee $5 + local.tee $6 i32.const 2 i32.shl local.tee $7 i32.const 1 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $13 + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 i32.add local.set $11 i32.const 0 local.set $7 loop $for-loop|1 - local.get $5 + local.get $6 local.get $7 i32.gt_u if local.get $7 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.const -1 i32.store @@ -3692,97 +3654,87 @@ local.get $1 i32.const 3 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $15 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $7 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $15 + local.get $13 i32.const 31 - local.get $15 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $7 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $15 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add - local.tee $7 - local.get $15 + local.tee $6 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $7 + local.tee $7 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $4 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $7 - local.get $15 - local.get $7 + local.get $6 + local.get $13 + local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $15 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $4 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $15 + local.get $13 i32.const 1 i32.add i64.extend_i32_u local.tee $9 i64.div_u - local.get $5 + local.get $6 local.get $7 i32.add i32.const 1 @@ -3795,25 +3747,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $4 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $6 + local.get $1 + local.get $8 i32.lt_u if - local.get $6 + local.get $8 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $6 i32.const 2 i32.shl local.tee $3 @@ -3822,54 +3776,54 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $5 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $13 + local.get $12 i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $6 + local.get $8 i32.const 1 i32.sub - local.set $6 + local.set $8 br $for-loop|3 end end - local.get $4 + local.get $1 i32.const 2 i32.shl - local.tee $6 - local.get $13 + local.tee $4 + local.get $12 i32.add local.get $3 i32.store - local.get $6 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $5 i32.store - local.get $7 + local.get $6 local.set $3 - local.get $5 - local.set $1 - local.get $4 - local.set $6 + local.get $7 + local.set $5 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.load local.tee $1 @@ -3878,7 +3832,7 @@ if local.get $0 local.get $1 - local.get $6 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -3886,21 +3840,21 @@ i32.load i32.const 1 i32.add - local.get $15 + local.get $13 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|4 end end local.get $10 call $~lib/rt/tlsf/__free - local.get $13 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) @@ -6662,14 +6616,14 @@ i32.load local.tee $1 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -6688,26 +6642,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.eqz @@ -6736,26 +6690,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 11 @@ -6787,26 +6741,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 255 @@ -6838,26 +6792,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -6889,26 +6843,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -6940,26 +6894,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 3 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -6991,26 +6945,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 4 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -7042,26 +6996,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 10 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -7091,16 +7045,16 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -7110,17 +7064,17 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -7149,26 +7103,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -7176,9 +7129,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -7186,7 +7139,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.eqz @@ -7212,26 +7165,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -7239,9 +7191,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -7249,7 +7201,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 11 @@ -7278,26 +7230,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -7305,9 +7256,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -7315,7 +7266,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 255 @@ -7344,26 +7295,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -7371,9 +7321,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -7381,7 +7331,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -7411,7 +7361,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -7425,9 +7375,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -7435,7 +7385,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -7465,7 +7415,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -7479,9 +7429,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -7489,7 +7439,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -7519,7 +7469,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -7533,9 +7483,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -7543,7 +7493,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -7573,7 +7523,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -7587,9 +7537,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -7597,7 +7547,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -7627,7 +7577,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -7636,9 +7586,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -7646,7 +7596,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -7676,7 +7626,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -7685,9 +7635,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -7695,7 +7645,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -7723,37 +7673,37 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 4 i32.const 9 call $~lib/typedarray/Int8Array#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -7785,26 +7735,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 4 @@ -7834,26 +7784,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 5 @@ -7885,26 +7835,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 9 @@ -7936,26 +7886,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 10 @@ -7987,26 +7937,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 11 @@ -8038,26 +7988,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 5 @@ -8089,26 +8039,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 5 @@ -8176,14 +8126,14 @@ i32.load local.tee $1 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -8203,26 +8153,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.eqz @@ -8251,26 +8201,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 11 @@ -8302,26 +8252,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 255 @@ -8353,26 +8303,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -8404,26 +8354,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -8455,26 +8405,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 3 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -8506,26 +8456,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 4 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -8557,26 +8507,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 10 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -8606,16 +8556,16 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -8625,17 +8575,17 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -8664,26 +8614,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -8691,9 +8640,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -8701,7 +8650,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.eqz @@ -8727,26 +8676,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -8754,9 +8702,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -8764,7 +8712,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 11 @@ -8793,26 +8741,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -8820,9 +8767,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -8830,7 +8777,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 255 @@ -8859,26 +8806,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -8886,9 +8832,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -8896,7 +8842,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -8926,7 +8872,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -8940,9 +8886,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -8950,7 +8896,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -8980,7 +8926,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -8994,9 +8940,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -9004,7 +8950,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -9034,7 +8980,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -9048,9 +8994,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -9058,7 +9004,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -9088,7 +9034,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -9102,9 +9048,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -9112,7 +9058,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -9142,7 +9088,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -9151,9 +9097,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -9161,7 +9107,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -9191,7 +9137,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -9200,9 +9146,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -9210,7 +9156,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -9238,36 +9184,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 9 call $~lib/typedarray/Uint8Array#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -9299,26 +9245,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 4 @@ -9348,26 +9294,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 5 @@ -9399,26 +9345,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 9 @@ -9450,26 +9396,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 10 @@ -9501,26 +9447,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 11 @@ -9552,26 +9498,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 5 @@ -9603,26 +9549,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 5 @@ -9690,14 +9636,14 @@ i32.load local.tee $1 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -9717,26 +9663,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.eqz @@ -9765,26 +9711,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 11 @@ -9816,26 +9762,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 255 @@ -9867,26 +9813,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -9918,26 +9864,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -9969,26 +9915,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 3 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -10020,26 +9966,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 4 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -10071,26 +10017,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 10 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -10120,16 +10066,16 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -10139,17 +10085,17 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -10178,26 +10124,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -10205,9 +10150,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -10215,7 +10160,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.eqz @@ -10241,26 +10186,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -10268,9 +10212,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -10278,7 +10222,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 11 @@ -10307,26 +10251,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -10334,9 +10277,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -10344,7 +10287,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 255 @@ -10373,26 +10316,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $3 - i32.load offset=8 - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -10400,9 +10342,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -10410,7 +10352,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -10440,7 +10382,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -10454,9 +10396,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -10464,7 +10406,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -10494,7 +10436,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -10508,9 +10450,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -10518,7 +10460,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -10548,7 +10490,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -10562,9 +10504,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -10572,7 +10514,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -10602,7 +10544,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -10616,9 +10558,9 @@ i32.le_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -10626,7 +10568,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -10656,7 +10598,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -10665,9 +10607,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -10675,7 +10617,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -10705,7 +10647,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 local.tee $0 i32.eqz @@ -10714,9 +10656,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -10724,7 +10666,7 @@ if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 1 @@ -10752,36 +10694,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 9 call $~lib/typedarray/Uint8ClampedArray#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 3 @@ -10813,26 +10755,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 4 @@ -10862,26 +10804,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 5 @@ -10913,26 +10855,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 9 @@ -10964,26 +10906,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 10 @@ -11015,26 +10957,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 11 @@ -11066,26 +11008,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 - local.get $2 + local.get $4 i32.add i32.load8_u i32.const 5 @@ -11117,26 +11059,26 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 - local.get $3 + local.get $2 i32.add i32.load8_u i32.const 5 @@ -11204,14 +11146,14 @@ i32.load local.tee $1 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -11230,29 +11172,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.eqz @@ -11281,29 +11223,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 11 @@ -11335,29 +11277,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 65535 @@ -11389,29 +11331,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -11443,30 +11385,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -11498,30 +11440,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -11553,30 +11495,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -11608,30 +11550,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 1 @@ -11661,18 +11603,18 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -11682,19 +11624,19 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 1 @@ -11723,30 +11665,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -11754,9 +11693,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -11766,7 +11705,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.eqz @@ -11792,30 +11731,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -11823,9 +11759,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -11835,7 +11771,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 11 @@ -11864,30 +11800,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -11895,9 +11828,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -11907,7 +11840,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 65535 @@ -11936,30 +11869,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -11967,9 +11897,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -11979,7 +11909,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -12009,7 +11939,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -12025,9 +11955,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -12037,7 +11967,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -12067,7 +11997,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -12083,9 +12013,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -12095,7 +12025,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -12125,7 +12055,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -12141,9 +12071,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -12153,7 +12083,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -12183,7 +12113,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -12199,9 +12129,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -12211,7 +12141,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 1 @@ -12241,7 +12171,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -12252,9 +12182,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -12264,7 +12194,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 1 @@ -12294,7 +12224,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -12305,9 +12235,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -12317,7 +12247,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 1 @@ -12345,39 +12275,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 9 call $~lib/typedarray/Int16Array#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -12409,29 +12339,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 4 @@ -12461,29 +12391,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 5 @@ -12515,29 +12445,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 9 @@ -12569,29 +12499,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 10 @@ -12623,29 +12553,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 11 @@ -12677,30 +12607,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 5 @@ -12732,30 +12662,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u i32.const 5 @@ -12823,14 +12753,14 @@ i32.load local.tee $1 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -12850,29 +12780,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.eqz @@ -12901,29 +12831,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 11 @@ -12955,29 +12885,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 65535 @@ -13009,29 +12939,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -13063,30 +12993,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -13118,30 +13048,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -13173,30 +13103,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -13228,30 +13158,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 1 @@ -13281,18 +13211,18 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -13302,19 +13232,19 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 1 @@ -13343,30 +13273,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -13374,9 +13301,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -13386,7 +13313,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.eqz @@ -13412,30 +13339,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -13443,9 +13367,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -13455,7 +13379,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 11 @@ -13484,30 +13408,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -13515,9 +13436,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -13527,7 +13448,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 65535 @@ -13556,30 +13477,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 - local.get $3 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -13587,9 +13505,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -13599,7 +13517,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -13629,7 +13547,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -13645,9 +13563,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -13657,7 +13575,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -13687,7 +13605,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -13703,9 +13621,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -13715,7 +13633,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -13745,7 +13663,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -13761,9 +13679,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -13773,7 +13691,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -13803,7 +13721,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -13819,9 +13737,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -13831,7 +13749,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 1 @@ -13861,7 +13779,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -13872,9 +13790,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -13884,7 +13802,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 1 @@ -13914,7 +13832,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -13925,9 +13843,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -13937,7 +13855,7 @@ local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 1 @@ -13965,39 +13883,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 9 call $~lib/typedarray/Uint16Array#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 3 @@ -14029,29 +13947,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 4 @@ -14081,29 +13999,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 5 @@ -14135,29 +14053,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 9 @@ -14189,29 +14107,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 10 @@ -14243,29 +14161,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 11 @@ -14297,30 +14215,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $4 i32.add i32.load16_u i32.const 5 @@ -14352,30 +14270,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $2 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u i32.const 5 @@ -14443,14 +14361,14 @@ i32.load local.tee $1 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -14468,29 +14386,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.eqz @@ -14519,29 +14437,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 11 @@ -14573,29 +14491,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const -1 @@ -14627,29 +14545,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -14681,30 +14599,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -14736,30 +14654,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -14791,30 +14709,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -14846,30 +14764,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 1 @@ -14899,18 +14817,18 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -14920,19 +14838,19 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 1 @@ -14961,30 +14879,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -14992,9 +14907,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -15004,7 +14919,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.eqz @@ -15030,30 +14945,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -15061,9 +14973,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -15073,7 +14985,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 11 @@ -15102,30 +15014,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -15133,9 +15042,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -15145,7 +15054,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const -1 @@ -15174,30 +15083,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -15205,9 +15111,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -15217,7 +15123,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -15247,7 +15153,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -15263,9 +15169,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -15275,7 +15181,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -15305,7 +15211,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -15321,9 +15227,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -15333,7 +15239,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -15363,7 +15269,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -15379,9 +15285,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -15391,7 +15297,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -15421,7 +15327,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -15437,9 +15343,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -15449,7 +15355,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 1 @@ -15479,7 +15385,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -15490,9 +15396,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -15502,7 +15408,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 1 @@ -15532,7 +15438,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -15543,9 +15449,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -15555,7 +15461,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 1 @@ -15583,40 +15489,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 4 i32.const 9 call $~lib/typedarray/Int32Array#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -15648,29 +15554,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 4 @@ -15700,29 +15606,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 5 @@ -15754,29 +15660,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 9 @@ -15808,29 +15714,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 10 @@ -15862,29 +15768,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 11 @@ -15916,30 +15822,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 5 @@ -15971,30 +15877,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load i32.const 5 @@ -16062,14 +15968,14 @@ i32.load local.tee $1 call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -16087,29 +15993,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.eqz @@ -16138,29 +16044,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 11 @@ -16192,29 +16098,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const -1 @@ -16246,29 +16152,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -16300,30 +16206,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -16355,30 +16261,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -16410,30 +16316,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -16465,30 +16371,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 1 @@ -16518,18 +16424,18 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -16539,19 +16445,19 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 1 @@ -16580,30 +16486,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -16611,9 +16514,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -16623,7 +16526,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.eqz @@ -16649,30 +16552,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -16680,9 +16580,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -16692,7 +16592,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 11 @@ -16721,30 +16621,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -16752,9 +16649,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -16764,7 +16661,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const -1 @@ -16793,30 +16690,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -16824,9 +16718,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -16836,7 +16730,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -16866,7 +16760,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -16882,9 +16776,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -16894,7 +16788,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -16924,7 +16818,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -16940,9 +16834,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -16952,7 +16846,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -16982,7 +16876,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -16998,9 +16892,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -17010,7 +16904,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -17040,7 +16934,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -17056,9 +16950,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -17068,7 +16962,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 1 @@ -17098,7 +16992,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -17109,9 +17003,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -17121,7 +17015,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 1 @@ -17151,7 +17045,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -17162,9 +17056,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -17174,7 +17068,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 1 @@ -17202,39 +17096,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 9 call $~lib/typedarray/Uint32Array#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 3 @@ -17266,29 +17160,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 4 @@ -17318,29 +17212,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 5 @@ -17372,29 +17266,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 9 @@ -17426,29 +17320,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 10 @@ -17480,29 +17374,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 11 @@ -17534,30 +17428,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load i32.const 5 @@ -17589,30 +17483,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add i32.load i32.const 5 @@ -17680,14 +17574,14 @@ i32.load local.tee $1 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -17706,29 +17600,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.eqz @@ -17757,29 +17651,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 11 @@ -17811,29 +17705,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const -1 @@ -17865,29 +17759,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -17919,30 +17813,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -17974,30 +17868,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -18029,30 +17923,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -18084,30 +17978,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 1 @@ -18137,18 +18031,18 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -18158,19 +18052,19 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 1 @@ -18199,30 +18093,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -18230,9 +18121,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -18242,7 +18133,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.eqz @@ -18268,30 +18159,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -18299,9 +18187,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -18311,7 +18199,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 11 @@ -18340,30 +18228,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -18371,9 +18256,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -18383,7 +18268,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const -1 @@ -18412,30 +18297,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -18443,9 +18325,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -18455,7 +18337,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -18485,7 +18367,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -18501,9 +18383,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -18513,7 +18395,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -18543,7 +18425,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -18559,9 +18441,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -18571,7 +18453,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -18601,7 +18483,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -18617,9 +18499,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -18629,7 +18511,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -18659,7 +18541,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -18675,9 +18557,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -18687,7 +18569,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 1 @@ -18717,7 +18599,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -18728,9 +18610,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -18740,7 +18622,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 1 @@ -18770,7 +18652,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -18781,9 +18663,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -18793,7 +18675,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 1 @@ -18821,39 +18703,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 9 call $~lib/typedarray/Int64Array#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -18885,29 +18767,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 4 @@ -18937,29 +18819,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 5 @@ -18991,29 +18873,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 9 @@ -19045,29 +18927,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 10 @@ -19099,29 +18981,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 11 @@ -19153,30 +19035,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 5 @@ -19208,30 +19090,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 5 @@ -19299,14 +19181,14 @@ i32.load local.tee $1 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -19325,29 +19207,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.eqz @@ -19376,29 +19258,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 11 @@ -19430,29 +19312,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const -1 @@ -19484,29 +19366,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -19538,30 +19420,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -19593,30 +19475,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -19648,30 +19530,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -19703,30 +19585,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 1 @@ -19756,18 +19638,18 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -19777,19 +19659,19 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 1 @@ -19818,30 +19700,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -19849,9 +19728,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -19861,7 +19740,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.eqz @@ -19887,30 +19766,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -19918,9 +19794,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -19930,7 +19806,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 11 @@ -19959,30 +19835,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -19990,9 +19863,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -20002,7 +19875,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const -1 @@ -20031,30 +19904,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -20062,9 +19932,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -20074,7 +19944,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -20104,7 +19974,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -20120,9 +19990,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -20132,7 +20002,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -20162,7 +20032,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -20178,9 +20048,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -20190,7 +20060,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -20220,7 +20090,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -20236,9 +20106,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -20248,7 +20118,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -20278,7 +20148,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -20294,9 +20164,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -20306,7 +20176,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 1 @@ -20336,7 +20206,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -20347,9 +20217,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -20359,7 +20229,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 1 @@ -20389,7 +20259,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -20400,9 +20270,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -20412,7 +20282,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 1 @@ -20440,39 +20310,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 9 call $~lib/typedarray/Uint64Array#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 3 @@ -20504,29 +20374,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 4 @@ -20556,29 +20426,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 5 @@ -20610,29 +20480,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 9 @@ -20664,29 +20534,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 10 @@ -20718,29 +20588,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 11 @@ -20772,30 +20642,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load i64.const 5 @@ -20827,30 +20697,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add i64.load i64.const 5 @@ -20918,14 +20788,14 @@ i32.load local.tee $1 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -20944,29 +20814,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 0 @@ -20996,29 +20866,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 11 @@ -21050,29 +20920,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const -1 @@ -21104,29 +20974,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 3 @@ -21158,30 +21028,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 3 @@ -21213,30 +21083,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 3 @@ -21268,30 +21138,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 3 @@ -21323,30 +21193,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 1 @@ -21376,18 +21246,18 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -21397,19 +21267,19 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 1 @@ -21438,30 +21308,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -21469,9 +21336,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -21481,7 +21348,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 0 @@ -21508,30 +21375,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -21539,9 +21403,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -21551,7 +21415,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 11 @@ -21580,30 +21444,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -21611,9 +21472,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -21623,7 +21484,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const -1 @@ -21652,30 +21513,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -21683,9 +21541,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -21695,7 +21553,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 3 @@ -21725,7 +21583,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -21741,9 +21599,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -21753,7 +21611,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 3 @@ -21783,7 +21641,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -21799,9 +21657,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -21811,7 +21669,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 3 @@ -21841,7 +21699,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -21857,9 +21715,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -21869,7 +21727,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 3 @@ -21899,7 +21757,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -21915,9 +21773,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -21927,7 +21785,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 1 @@ -21957,7 +21815,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -21968,9 +21826,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -21980,7 +21838,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 1 @@ -22010,7 +21868,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -22021,9 +21879,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -22033,7 +21891,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 1 @@ -22061,39 +21919,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 9 call $~lib/typedarray/Float32Array#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 3 @@ -22125,29 +21983,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 4 @@ -22177,29 +22035,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 5 @@ -22231,29 +22089,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 9 @@ -22285,29 +22143,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 10 @@ -22339,29 +22197,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 11 @@ -22393,30 +22251,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const 5 @@ -22448,30 +22306,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $2 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add f32.load f32.const 5 @@ -22539,14 +22397,14 @@ i32.load local.tee $1 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $2 i32.store offset=4 loop $for-loop|0 local.get $0 local.get $1 i32.lt_s if - local.get $3 + local.get $2 local.get $0 i32.const 7728 local.get $0 @@ -22565,29 +22423,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 0 @@ -22617,29 +22475,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|02 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 11 @@ -22671,29 +22529,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|05 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const -1 @@ -22725,29 +22583,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|08 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 3 @@ -22779,30 +22637,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|011 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 3 @@ -22834,30 +22692,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|014 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 3 @@ -22889,30 +22747,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|017 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 3 @@ -22944,30 +22802,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|020 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 1 @@ -22997,18 +22855,18 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -23018,19 +22876,19 @@ i32.gt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|023 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 1 @@ -23059,30 +22917,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -23090,9 +22945,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 @@ -23102,7 +22957,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 0 @@ -23129,30 +22984,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -23160,9 +23012,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 @@ -23172,7 +23024,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 11 @@ -23201,30 +23053,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -23232,9 +23081,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 @@ -23244,7 +23093,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const -1 @@ -23273,30 +23122,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 local.get $0 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $2 + local.get $4 i32.ge_s select local.get $0 @@ -23304,9 +23150,9 @@ i32.lt_s select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 @@ -23316,7 +23162,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 3 @@ -23346,7 +23192,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -23362,9 +23208,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|024 local.get $0 i32.const 0 @@ -23374,7 +23220,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 3 @@ -23404,7 +23250,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -23420,9 +23266,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|027 local.get $0 i32.const 0 @@ -23432,7 +23278,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 3 @@ -23462,7 +23308,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -23478,9 +23324,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|030 local.get $0 i32.const 0 @@ -23490,7 +23336,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 3 @@ -23520,7 +23366,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -23536,9 +23382,9 @@ i32.le_u select local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|033 local.get $0 i32.const 0 @@ -23548,7 +23394,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 1 @@ -23578,7 +23424,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -23589,9 +23435,9 @@ i32.const 10 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|036 local.get $0 i32.const 0 @@ -23601,7 +23447,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 1 @@ -23631,7 +23477,7 @@ i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -23642,9 +23488,9 @@ i32.const 11 i32.sub local.set $0 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|039 local.get $0 i32.const 0 @@ -23654,7 +23500,7 @@ local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 1 @@ -23682,40 +23528,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 4 i32.const 9 call $~lib/typedarray/Float64Array#subarray - local.tee $3 + local.tee $2 i32.store offset=8 i32.const 0 local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|042 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 3 @@ -23747,29 +23593,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|045 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 4 @@ -23799,29 +23645,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|048 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 5 @@ -23853,29 +23699,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|051 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 9 @@ -23907,29 +23753,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|054 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 10 @@ -23961,29 +23807,29 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|057 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 11 @@ -24015,30 +23861,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 loop $while-continue|060 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const 5 @@ -24070,30 +23916,30 @@ i32.const -1 local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 - local.get $3 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $2 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $2 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 - local.get $3 + local.get $2 i32.load offset=4 - local.set $3 + local.set $2 loop $while-continue|063 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add f64.load f64.const 5 @@ -24231,6 +24077,7 @@ ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) local.get $1 i32.extend8_s i32.const 0 @@ -24265,56 +24112,59 @@ i32.add return end - local.get $0 local.get $1 i32.extend8_s - local.tee $0 - local.get $0 + local.tee $3 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end + local.set $1 + local.get $0 + local.get $3 + local.get $1 local.get $2 i32.add local.tee $0 @@ -24595,6 +24445,7 @@ i32.eqz ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 i32.const 255 i32.and @@ -24611,60 +24462,62 @@ i32.const 1 return end - local.get $0 local.get $1 i32.const 255 i32.and - local.tee $0 - local.get $0 + local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 - call $~lib/util/number/utoa32_dec_lut + local.set $1 local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $1 ) (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result i32) (local $1 i32) @@ -24825,6 +24678,7 @@ ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + (local $3 i32) local.get $1 i32.extend16_s i32.const 0 @@ -24859,56 +24713,59 @@ i32.add return end - local.get $0 local.get $1 i32.extend16_s - local.tee $0 - local.get $0 + local.tee $3 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end + local.set $1 + local.get $0 + local.get $3 + local.get $1 local.get $2 i32.add local.tee $0 @@ -25079,6 +24936,7 @@ local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $1 i32.const 65535 i32.and @@ -25095,60 +24953,62 @@ i32.const 1 return end - local.get $0 local.get $1 i32.const 65535 i32.and - local.tee $0 - local.get $0 + local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 - call $~lib/util/number/utoa32_dec_lut + local.set $1 local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $1 ) (func $~lib/typedarray/Uint16Array#join (param $0 i32) (result i32) (local $1 i32) @@ -27347,7 +27207,6 @@ i32.shl local.get $0 i32.add - local.tee $4 local.tee $0 i32.const 2 i32.add @@ -27358,7 +27217,7 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $0 i32.const 46 i32.store16 local.get $1 @@ -27614,21 +27473,22 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i32) + (local $3 i64) (local $4 i64) (local $5 i64) (local $6 i64) (local $7 i64) - (local $8 i64) + (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i64) - (local $12 i32) - (local $13 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i64) local.get $1 f64.const 0 f64.lt - local.tee $10 + local.tee $9 if (result f64) local.get $0 i32.const 45 @@ -27639,74 +27499,74 @@ local.get $1 end i64.reinterpret_f64 - local.tee $2 + local.tee $14 i64.const 9218868437227405312 i64.and i64.const 52 i64.shr_u i32.wrap_i64 - local.set $3 - local.get $2 + local.set $13 + local.get $14 i64.const 4503599627370495 i64.and - local.get $3 + local.get $13 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl i64.add - local.set $2 - local.get $3 + local.set $14 + local.get $13 i32.const 1 - local.get $3 + local.get $13 select i32.const 1075 i32.sub - local.tee $3 + local.tee $13 i32.const 1 i32.sub - local.get $2 + local.get $14 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $4 + local.tee $2 i64.clz i32.wrap_i64 - local.tee $9 + local.tee $11 i32.sub - local.set $12 - local.get $4 - local.get $9 + local.set $8 + local.get $2 + local.get $11 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $2 - local.get $2 + local.get $14 + local.get $14 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $9 + local.tee $11 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $3 - local.get $9 + local.get $13 + local.get $11 i32.sub - local.get $12 + local.get $8 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $12 + local.get $8 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $9 + local.tee $11 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -27715,9 +27575,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $3 + local.tee $13 local.get $1 - local.get $3 + local.get $13 f64.convert_i32_s f64.ne i32.add @@ -27725,85 +27585,86 @@ i32.shr_s i32.const 1 i32.add - local.tee $3 + local.tee $13 i32.const 3 i32.shl + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $3 - i32.const 3 - i32.shl + local.get $8 i32.const 9864 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $3 + local.get $13 i32.const 1 i32.shl i32.const 10560 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - local.get $2 - local.get $2 + local.get $14 + local.get $14 i64.clz i64.shl - local.tee $4 + local.tee $2 i64.const 4294967295 i64.and - local.set $13 + local.set $7 global.get $~lib/util/number/_frc_pow - local.tee $2 + local.tee $12 i64.const 4294967295 i64.and - local.tee $11 - local.get $4 + local.tee $14 + local.set $3 + local.get $2 i64.const 32 i64.shr_u - local.tee $4 + local.set $6 + local.get $12 + i64.const 32 + i64.shr_u + local.tee $2 + local.set $5 + local.get $3 + local.get $6 i64.mul - local.get $11 - local.get $13 + local.get $3 + local.get $7 i64.mul i64.const 32 i64.shr_u i64.add - local.set $11 + local.set $4 global.get $~lib/util/number/_frc_plus - local.tee $6 - i64.const 4294967295 - i64.and - local.set $7 - local.get $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $5 - local.get $6 + local.set $10 + local.get $3 i64.const 32 i64.shr_u - local.tee $6 + local.tee $12 + local.get $2 + local.tee $3 i64.mul - local.get $5 - local.get $7 + local.get $12 + local.get $14 + i64.mul + local.get $10 + local.get $14 i64.mul i64.const 32 i64.shr_u i64.add - local.set $5 - local.get $6 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $8 - i64.mul - local.get $5 + local.tee $12 i64.const 32 i64.shr_u i64.add - local.get $7 - local.get $8 + local.get $3 + local.get $10 i64.mul - local.get $5 + local.get $12 i64.const 4294967295 i64.and i64.add @@ -27814,48 +27675,42 @@ i64.add i64.const 1 i64.sub - local.set $6 + local.set $12 global.get $~lib/util/number/_frc_minus - local.tee $7 - i64.const 4294967295 - i64.and - local.set $5 - local.get $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $8 - local.get $7 + local.set $10 + local.get $14 + local.get $3 i64.const 32 i64.shr_u - local.tee $7 + local.tee $3 i64.mul - local.get $5 - local.get $8 + local.get $10 + local.get $14 i64.mul i64.const 32 i64.shr_u i64.add - local.set $8 - local.get $10 + local.set $14 + local.get $9 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $4 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $4 + local.get $5 + local.get $6 i64.mul - local.get $11 + local.get $4 i64.const 32 i64.shr_u i64.add - local.get $4 - local.get $13 + local.get $5 + local.get $7 i64.mul - local.get $11 + local.get $4 i64.const 4294967295 i64.and i64.add @@ -27864,27 +27719,24 @@ i64.const 32 i64.shr_u i64.add - local.get $6 + local.get $12 global.get $~lib/util/number/_exp_pow - local.get $9 + local.get $11 i32.add i32.const -64 i32.sub - local.get $6 - local.get $7 + local.get $12 local.get $2 - i64.const 32 - i64.shr_u - local.tee $2 + local.get $3 i64.mul - local.get $8 + local.get $14 i64.const 32 i64.shr_u i64.add local.get $2 - local.get $5 + local.get $10 i64.mul - local.get $8 + local.get $14 i64.const 4294967295 i64.and i64.add @@ -27896,13 +27748,13 @@ i64.const 1 i64.add i64.sub - local.get $10 + local.get $9 call $~lib/util/number/genDigits - local.get $10 + local.get $9 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $10 + local.get $9 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -28630,6 +28482,7 @@ (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i64) + (local $5 i32) local.get $2 i32.const 0 i32.lt_s @@ -28687,6 +28540,7 @@ i64.load local.tee $4 i32.wrap_i64 + local.tee $5 i32.const 31 i32.shr_s i32.const -1 @@ -28694,8 +28548,7 @@ i64.extend_i32_s local.get $4 i32.const 255 - local.get $4 - i32.wrap_i64 + local.get $5 i32.sub i32.const 31 i32.shr_s @@ -29586,12 +29439,11 @@ local.get $0 local.get $7 i32.add + local.tee $3 i32.load8_s offset=1 local.tee $6 local.set $5 - local.get $0 - local.get $7 - i32.add + local.get $3 i32.load8_s local.set $3 i32.const 2 @@ -29737,10 +29589,9 @@ local.get $0 local.get $4 i32.add + local.tee $5 i32.load8_s offset=1 - local.get $0 - local.get $4 - i32.add + local.get $5 i32.load8_s i32.const 2 global.set $~argumentsLength @@ -29770,24 +29621,22 @@ local.get $0 local.get $1 i32.add + local.tee $3 i32.load8_s - local.set $3 - local.get $0 - local.get $1 - i32.add + local.set $5 + local.get $3 local.get $0 local.get $2 i32.add + local.tee $3 i32.load8_s i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $0 - local.get $2 - i32.add local.get $3 + local.get $5 i32.store8 local.get $2 i32.const 1 @@ -29805,10 +29654,9 @@ local.get $0 local.get $4 i32.add + local.tee $1 i32.load8_s offset=1 - local.get $0 - local.get $4 - i32.add + local.get $1 i32.load8_s i32.const 2 global.set $~argumentsLength @@ -29839,56 +29687,51 @@ local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $7 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub local.get $0 + local.get $2 i32.add i32.load8_s i32.store8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $7 - local.get $2 + local.get $6 i32.sub local.get $4 i32.add local.get $0 - local.get $2 + local.get $6 i32.add i32.load8_s offset=1 i32.store8 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -29897,20 +29740,20 @@ local.get $3 i32.le_s if - local.get $2 local.get $4 + local.get $6 i32.add i32.load8_s - local.set $7 + local.set $8 + local.get $2 local.get $4 - local.get $6 i32.add i32.load8_s - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -29920,22 +29763,22 @@ local.get $0 local.get $1 i32.add - local.get $7 + local.get $8 i32.store8 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $0 local.get $1 i32.add - local.get $8 + local.get $7 i32.store8 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -29970,10 +29813,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -29981,87 +29825,87 @@ end local.get $0 i32.load8_s - local.set $1 + local.set $3 local.get $0 i32.load8_s offset=1 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select i32.store8 + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load8_s offset=2 - local.set $5 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 + local.get $4 + local.get $3 local.get $3 local.get $4 - select - local.tee $1 - local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $3 - local.get $0 - local.get $5 - local.get $1 - local.get $3 + local.tee $1 select i32.store8 offset=1 local.get $0 - local.get $1 - local.get $5 local.get $3 + local.get $4 + local.get $1 select i32.store8 offset=2 end local.get $0 i32.load8_s - local.set $1 + local.set $3 local.get $0 i32.load8_s offset=1 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store8 local.get $0 - local.get $1 local.get $3 - local.get $2 + local.get $4 + local.get $1 select i32.store8 offset=1 return end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -30076,55 +29920,37 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $4 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -30134,10 +29960,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -30149,51 +29975,51 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 + local.get $6 local.get $9 - local.get $4 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 + local.tee $1 + local.get $1 local.get $9 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -30204,7 +30030,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -30217,25 +30043,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 @@ -30244,7 +30072,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -30253,42 +30081,42 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $10 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $7 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 - local.get $7 - local.set $5 + local.set $3 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 @@ -30300,7 +30128,7 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -30313,10 +30141,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -30335,14 +30163,14 @@ (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $1 i32.extend8_s + local.tee $1 local.get $0 i32.extend8_s + local.tee $0 i32.gt_s - local.get $1 - i32.extend8_s local.get $0 - i32.extend8_s - i32.lt_s + local.get $1 + i32.gt_s i32.sub ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) @@ -30378,12 +30206,11 @@ local.get $0 local.get $7 i32.add + local.tee $3 i32.load8_u offset=1 local.tee $6 local.set $5 - local.get $0 - local.get $7 - i32.add + local.get $3 i32.load8_u local.set $3 i32.const 2 @@ -30529,10 +30356,9 @@ local.get $0 local.get $4 i32.add + local.tee $5 i32.load8_u offset=1 - local.get $0 - local.get $4 - i32.add + local.get $5 i32.load8_u i32.const 2 global.set $~argumentsLength @@ -30562,24 +30388,22 @@ local.get $0 local.get $1 i32.add + local.tee $3 i32.load8_u - local.set $3 - local.get $0 - local.get $1 - i32.add + local.set $5 + local.get $3 local.get $0 local.get $2 i32.add + local.tee $3 i32.load8_u i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $0 - local.get $2 - i32.add local.get $3 + local.get $5 i32.store8 local.get $2 i32.const 1 @@ -30597,10 +30421,9 @@ local.get $0 local.get $4 i32.add + local.tee $1 i32.load8_u offset=1 - local.get $0 - local.get $4 - i32.add + local.get $1 i32.load8_u i32.const 2 global.set $~argumentsLength @@ -30631,56 +30454,51 @@ local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $7 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub local.get $0 + local.get $2 i32.add i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $7 - local.get $2 + local.get $6 i32.sub local.get $4 i32.add local.get $0 - local.get $2 + local.get $6 i32.add i32.load8_u offset=1 i32.store8 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -30689,20 +30507,20 @@ local.get $3 i32.le_s if - local.get $2 local.get $4 + local.get $6 i32.add i32.load8_u - local.set $7 + local.set $8 + local.get $2 local.get $4 - local.get $6 i32.add i32.load8_u - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -30712,22 +30530,22 @@ local.get $0 local.get $1 i32.add - local.get $7 + local.get $8 i32.store8 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $0 local.get $1 i32.add - local.get $8 + local.get $7 i32.store8 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -30762,10 +30580,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -30773,87 +30592,87 @@ end local.get $0 i32.load8_u - local.set $1 + local.set $3 local.get $0 i32.load8_u offset=1 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select i32.store8 + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load8_u offset=2 - local.set $5 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 + local.get $4 + local.get $3 local.get $3 local.get $4 - select - local.tee $1 - local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $3 - local.get $0 - local.get $5 - local.get $1 - local.get $3 + local.tee $1 select i32.store8 offset=1 local.get $0 - local.get $1 - local.get $5 local.get $3 + local.get $4 + local.get $1 select i32.store8 offset=2 end local.get $0 i32.load8_u - local.set $1 + local.set $3 local.get $0 i32.load8_u offset=1 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store8 local.get $0 - local.get $1 local.get $3 - local.get $2 + local.get $4 + local.get $1 select i32.store8 offset=1 return end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -30868,55 +30687,37 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $4 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -30926,10 +30727,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -30941,51 +30742,51 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 + local.get $6 local.get $9 - local.get $4 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 + local.tee $1 + local.get $1 local.get $9 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -30996,7 +30797,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -31009,25 +30810,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 @@ -31036,7 +30839,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -31045,42 +30848,42 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $10 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $7 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 - local.get $7 - local.set $5 + local.set $3 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 @@ -31092,7 +30895,7 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -31105,10 +30908,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -31121,16 +30924,14 @@ local.get $0 i32.const 255 i32.and + local.tee $0 local.get $1 i32.const 255 i32.and + local.tee $1 i32.gt_u local.get $0 - i32.const 255 - i32.and local.get $1 - i32.const 255 - i32.and i32.lt_u i32.sub ) @@ -31138,17 +30939,15 @@ local.get $1 i32.const 255 i32.and + local.tee $1 local.get $0 i32.const 255 i32.and + local.tee $0 i32.gt_u - local.get $1 - i32.const 255 - i32.and local.get $0 - i32.const 255 - i32.and - i32.lt_u + local.get $1 + i32.gt_u i32.sub ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) @@ -31186,14 +30985,11 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load16_s offset=2 local.tee $6 local.set $5 - local.get $7 - i32.const 1 - i32.shl - local.get $0 - i32.add + local.get $3 i32.load16_s local.set $3 i32.const 2 @@ -31357,12 +31153,9 @@ i32.shl local.get $0 i32.add + local.tee $5 i32.load16_s offset=2 - local.get $4 - i32.const 1 - i32.shl - local.get $0 - i32.add + local.get $5 i32.load16_s i32.const 2 global.set $~argumentsLength @@ -31394,30 +31187,24 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load16_s - local.set $3 - local.get $1 - i32.const 1 - i32.shl - local.get $0 - i32.add + local.set $5 + local.get $3 local.get $2 i32.const 1 i32.shl local.get $0 i32.add + local.tee $3 i32.load16_s i32.store16 local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 1 - i32.shl - local.get $0 - i32.add local.get $3 + local.get $5 i32.store16 local.get $2 i32.const 1 @@ -31437,12 +31224,9 @@ i32.shl local.get $0 i32.add + local.tee $1 i32.load16_s offset=2 - local.get $4 - i32.const 1 - i32.shl - local.get $0 - i32.add + local.get $1 i32.load16_s i32.const 2 global.set $~argumentsLength @@ -31473,64 +31257,58 @@ local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $7 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 1 i32.shl + local.tee $8 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 1 - i32.shl local.get $0 + local.get $8 i32.add i32.load16_s i32.store16 - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $7 - local.get $2 + local.get $6 i32.sub i32.const 1 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 1 i32.shl local.get $0 i32.add i32.load16_s offset=2 i32.store16 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -31539,14 +31317,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 1 i32.shl local.get $4 i32.add i32.load16_s local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.shl local.get $4 @@ -31570,10 +31348,10 @@ i32.add local.get $7 i32.store16 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 1 @@ -31582,10 +31360,10 @@ i32.add local.get $8 i32.store16 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -31620,10 +31398,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -31631,87 +31410,87 @@ end local.get $0 i32.load16_s - local.set $1 + local.set $3 local.get $0 i32.load16_s offset=2 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select i32.store16 + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load16_s offset=4 - local.set $5 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 + local.get $4 + local.get $3 local.get $3 local.get $4 - select - local.tee $1 - local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $3 - local.get $0 - local.get $5 - local.get $1 - local.get $3 + local.tee $1 select i32.store16 offset=2 local.get $0 - local.get $1 - local.get $5 local.get $3 + local.get $4 + local.get $1 select i32.store16 offset=4 end local.get $0 i32.load16_s - local.set $1 + local.set $3 local.get $0 i32.load16_s offset=2 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store16 local.get $0 - local.get $1 local.get $3 - local.get $2 + local.get $4 + local.get $1 select i32.store16 offset=2 return end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -31726,59 +31505,39 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $4 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 1 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -31788,10 +31547,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -31803,51 +31562,51 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 + local.get $6 local.get $9 - local.get $4 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 + local.tee $1 + local.get $1 local.get $9 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -31858,7 +31617,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -31871,25 +31630,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 @@ -31898,7 +31659,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -31907,42 +31668,42 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $10 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $7 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 - local.get $7 - local.set $5 + local.set $3 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 @@ -31954,7 +31715,7 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -31967,10 +31728,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -31989,14 +31750,14 @@ (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $1 i32.extend16_s + local.tee $1 local.get $0 i32.extend16_s + local.tee $0 i32.gt_s - local.get $1 - i32.extend16_s local.get $0 - i32.extend16_s - i32.lt_s + local.get $1 + i32.gt_s i32.sub ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) @@ -32034,14 +31795,11 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load16_u offset=2 local.tee $6 local.set $5 - local.get $7 - i32.const 1 - i32.shl - local.get $0 - i32.add + local.get $3 i32.load16_u local.set $3 i32.const 2 @@ -32205,12 +31963,9 @@ i32.shl local.get $0 i32.add + local.tee $5 i32.load16_u offset=2 - local.get $4 - i32.const 1 - i32.shl - local.get $0 - i32.add + local.get $5 i32.load16_u i32.const 2 global.set $~argumentsLength @@ -32242,30 +31997,24 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load16_u - local.set $3 - local.get $1 - i32.const 1 - i32.shl - local.get $0 - i32.add + local.set $5 + local.get $3 local.get $2 i32.const 1 i32.shl local.get $0 i32.add + local.tee $3 i32.load16_u i32.store16 local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 1 - i32.shl - local.get $0 - i32.add local.get $3 + local.get $5 i32.store16 local.get $2 i32.const 1 @@ -32285,12 +32034,9 @@ i32.shl local.get $0 i32.add + local.tee $1 i32.load16_u offset=2 - local.get $4 - i32.const 1 - i32.shl - local.get $0 - i32.add + local.get $1 i32.load16_u i32.const 2 global.set $~argumentsLength @@ -32321,64 +32067,58 @@ local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $7 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 1 i32.shl + local.tee $8 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 1 - i32.shl local.get $0 + local.get $8 i32.add i32.load16_u i32.store16 - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $7 - local.get $2 + local.get $6 i32.sub i32.const 1 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 1 i32.shl local.get $0 i32.add i32.load16_u offset=2 i32.store16 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -32387,14 +32127,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 1 i32.shl local.get $4 i32.add i32.load16_u local.set $7 - local.get $6 + local.get $2 i32.const 1 i32.shl local.get $4 @@ -32418,10 +32158,10 @@ i32.add local.get $7 i32.store16 - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 1 @@ -32430,10 +32170,10 @@ i32.add local.get $8 i32.store16 - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -32468,10 +32208,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -32479,87 +32220,87 @@ end local.get $0 i32.load16_u - local.set $1 + local.set $3 local.get $0 i32.load16_u offset=2 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select i32.store16 + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load16_u offset=4 - local.set $5 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 + local.get $4 + local.get $3 local.get $3 local.get $4 - select - local.tee $1 - local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $3 - local.get $0 - local.get $5 - local.get $1 - local.get $3 + local.tee $1 select i32.store16 offset=2 local.get $0 - local.get $1 - local.get $5 local.get $3 + local.get $4 + local.get $1 select i32.store16 offset=4 end local.get $0 i32.load16_u - local.set $1 + local.set $3 local.get $0 i32.load16_u offset=2 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store16 local.get $0 - local.get $1 local.get $3 - local.get $2 + local.get $4 + local.get $1 select i32.store16 offset=2 return end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -32574,59 +32315,39 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $4 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 1 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -32636,10 +32357,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -32651,51 +32372,51 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 + local.get $6 local.get $9 - local.get $4 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 + local.tee $1 + local.get $1 local.get $9 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -32706,7 +32427,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -32719,25 +32440,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 @@ -32746,7 +32469,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -32755,42 +32478,42 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $10 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $7 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 - local.get $7 - local.set $5 + local.set $3 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 @@ -32802,7 +32525,7 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -32815,10 +32538,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -32831,16 +32554,14 @@ local.get $0 i32.const 65535 i32.and + local.tee $0 local.get $1 i32.const 65535 i32.and + local.tee $1 i32.gt_u local.get $0 - i32.const 65535 - i32.and local.get $1 - i32.const 65535 - i32.and i32.lt_u i32.sub ) @@ -32848,17 +32569,15 @@ local.get $1 i32.const 65535 i32.and + local.tee $1 local.get $0 i32.const 65535 i32.and + local.tee $0 i32.gt_u - local.get $1 - i32.const 65535 - i32.and local.get $0 - i32.const 65535 - i32.and - i32.lt_u + local.get $1 + i32.gt_u i32.sub ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) @@ -32896,14 +32615,11 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load offset=4 local.tee $6 local.set $5 - local.get $7 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $3 i32.load local.set $3 i32.const 2 @@ -33067,12 +32783,9 @@ i32.shl local.get $0 i32.add + local.tee $5 i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $5 i32.load i32.const 2 global.set $~argumentsLength @@ -33104,30 +32817,24 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load - local.set $3 - local.get $1 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.set $5 + local.get $3 local.get $2 i32.const 2 i32.shl local.get $0 i32.add + local.tee $3 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 2 - i32.shl - local.get $0 - i32.add local.get $3 + local.get $5 i32.store local.get $2 i32.const 1 @@ -33147,12 +32854,9 @@ i32.shl local.get $0 i32.add + local.tee $1 i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $1 i32.load i32.const 2 global.set $~argumentsLength @@ -33183,64 +32887,58 @@ local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $7 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 2 i32.shl + local.tee $8 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 2 - i32.shl local.get $0 + local.get $8 i32.add i32.load i32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $7 - local.get $2 + local.get $6 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -33249,14 +32947,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 i32.add i32.load local.set $7 - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 @@ -33280,10 +32978,10 @@ i32.add local.get $7 i32.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 2 @@ -33292,10 +32990,10 @@ i32.add local.get $8 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -33330,10 +33028,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -33341,87 +33040,87 @@ end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select i32.store + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load offset=8 - local.set $5 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 + local.get $4 + local.get $3 local.get $3 local.get $4 - select - local.tee $1 - local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $3 - local.get $0 - local.get $5 - local.get $1 - local.get $3 + local.tee $1 select i32.store offset=4 local.get $0 - local.get $1 - local.get $5 local.get $3 + local.get $4 + local.get $1 select i32.store offset=8 end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store local.get $0 - local.get $1 local.get $3 - local.get $2 + local.get $4 + local.get $1 select i32.store offset=4 return end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -33436,59 +33135,39 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $4 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -33498,10 +33177,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -33513,51 +33192,51 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 + local.get $6 local.get $9 - local.get $4 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 + local.tee $1 + local.get $1 local.get $9 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -33568,7 +33247,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -33581,25 +33260,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 @@ -33608,7 +33289,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -33617,42 +33298,42 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $10 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $7 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 - local.get $7 - local.set $5 + local.set $3 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 @@ -33664,7 +33345,7 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -33677,10 +33358,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -33738,14 +33419,11 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load offset=4 local.tee $6 local.set $5 - local.get $7 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $3 i32.load local.set $3 i32.const 2 @@ -33909,12 +33587,9 @@ i32.shl local.get $0 i32.add + local.tee $5 i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $5 i32.load i32.const 2 global.set $~argumentsLength @@ -33946,30 +33621,24 @@ i32.shl local.get $0 i32.add + local.tee $3 i32.load - local.set $3 - local.get $1 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.set $5 + local.get $3 local.get $2 i32.const 2 i32.shl local.get $0 i32.add + local.tee $3 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 2 - i32.shl - local.get $0 - i32.add local.get $3 + local.get $5 i32.store local.get $2 i32.const 1 @@ -33989,12 +33658,9 @@ i32.shl local.get $0 i32.add + local.tee $1 i32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $1 i32.load i32.const 2 global.set $~argumentsLength @@ -34025,64 +33691,58 @@ local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $7 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 2 i32.shl + local.tee $8 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 2 - i32.shl local.get $0 + local.get $8 i32.add i32.load i32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $7 - local.get $2 + local.get $6 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add i32.load offset=4 i32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -34091,14 +33751,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 i32.add i32.load local.set $7 - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 @@ -34122,10 +33782,10 @@ i32.add local.get $7 i32.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 2 @@ -34134,10 +33794,10 @@ i32.add local.get $8 i32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -34172,10 +33832,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -34183,87 +33844,87 @@ end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $4 + local.tee $1 select i32.store + local.get $3 + local.get $4 + local.get $1 + select + local.set $3 local.get $0 i32.load offset=8 - local.set $5 + local.set $4 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 + local.get $4 + local.get $3 local.get $3 local.get $4 - select - local.tee $1 - local.get $5 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.set $3 - local.get $0 - local.get $5 - local.get $1 - local.get $3 + local.tee $1 select i32.store offset=4 local.get $0 - local.get $1 - local.get $5 local.get $3 + local.get $4 + local.get $1 select i32.store offset=8 end local.get $0 i32.load - local.set $1 + local.set $3 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 i32.const 2 global.set $~argumentsLength local.get $0 + local.get $4 local.get $3 - local.get $1 - local.get $1 local.get $3 + local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store local.get $0 - local.get $1 local.get $3 - local.get $2 + local.get $4 + local.get $1 select i32.store offset=4 return end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -34278,59 +33939,39 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $4 + local.get $5 i32.add local.set $11 i32.const 0 - local.set $4 + local.set $5 loop $for-loop|1 - local.get $4 + local.get $5 local.get $6 i32.lt_u if - local.get $4 + local.get $5 i32.const 2 i32.shl local.get $10 i32.add i32.const -1 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|1 end end local.get $1 i32.const 2 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -34340,10 +33981,10 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $7 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if @@ -34355,51 +33996,51 @@ i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $7 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $7 i32.const 1 i32.add - local.tee $4 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $5 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 + local.get $6 local.get $9 - local.get $4 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 + local.tee $1 + local.get $1 local.get $9 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $5 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -34410,7 +34051,7 @@ i64.extend_i32_u local.tee $13 i64.div_u - local.get $4 + local.get $5 local.get $6 i32.add i32.const 1 @@ -34423,25 +34064,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl local.get $10 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 @@ -34450,7 +34093,7 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -34459,42 +34102,42 @@ i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $10 i32.add local.get $3 i32.store - local.get $5 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $7 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 - local.get $7 - local.set $5 + local.set $3 + local.get $5 + local.set $7 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $10 @@ -34506,7 +34149,7 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -34519,10 +34162,10 @@ local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end @@ -34584,14 +34227,11 @@ i32.shl local.get $0 i32.add + local.tee $3 i64.load offset=8 local.tee $7 local.set $6 - local.get $8 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 i64.load local.set $5 i32.const 2 @@ -34715,6 +34355,7 @@ (local $4 i32) (local $5 i64) (local $6 i64) + (local $7 i32) local.get $1 local.get $2 i32.eq @@ -34755,12 +34396,9 @@ i32.shl local.get $0 i32.add + local.tee $7 i64.load offset=8 - local.get $4 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $7 i64.load i32.const 2 global.set $~argumentsLength @@ -34792,29 +34430,23 @@ i32.shl local.get $0 i32.add + local.tee $3 i64.load local.set $5 - local.get $1 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $2 i32.const 3 i32.shl local.get $0 i32.add + local.tee $3 i64.load i64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $5 i64.store local.get $2 @@ -34835,12 +34467,9 @@ i32.shl local.get $0 i32.add + local.tee $1 i64.load offset=8 - local.get $4 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $1 i64.load i32.const 2 global.set $~argumentsLength @@ -34868,68 +34497,63 @@ (local $7 i64) (local $8 i64) (local $9 i32) + (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $9 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 3 i32.shl + local.tee $10 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 3 - i32.shl local.get $0 + local.get $10 i32.add i64.load i64.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $9 - local.get $2 + local.get $6 i32.sub i32.const 3 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $0 i32.add i64.load offset=8 i64.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -34938,14 +34562,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $4 i32.add i64.load local.set $7 - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $4 @@ -34969,10 +34593,10 @@ i32.add local.get $7 i64.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 3 @@ -34981,10 +34605,10 @@ i32.add local.get $8 i64.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -35001,13 +34625,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) - (local $11 i64) + (local $11 i32) (local $12 i32) (local $13 i64) - (local $14 i32) - (local $15 i32) + (local $14 i64) local.get $1 i32.const 48 i32.le_s @@ -35021,10 +34644,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -35032,17 +34656,17 @@ end local.get $0 i64.load - local.set $9 + local.set $13 local.get $0 i64.load offset=8 - local.set $11 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $11 - local.get $9 - local.get $9 - local.get $11 + local.get $14 + local.get $13 + local.get $13 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -35051,49 +34675,49 @@ local.tee $1 select i64.store + local.get $13 + local.get $14 + local.get $1 + select + local.set $13 local.get $0 i64.load offset=16 - local.set $13 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $9 - local.get $11 - local.get $1 - select - local.tee $9 + local.get $0 + local.get $14 local.get $13 + local.get $13 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $13 - local.get $9 - local.get $1 + local.tee $1 select i64.store offset=8 local.get $0 - local.get $9 local.get $13 + local.get $14 local.get $1 select i64.store offset=16 end local.get $0 i64.load - local.set $9 + local.set $13 local.get $0 i64.load offset=8 - local.set $11 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $11 - local.get $9 - local.get $9 - local.get $11 + local.get $14 + local.get $13 + local.get $13 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -35103,8 +34727,8 @@ select i64.store local.get $0 - local.get $9 - local.get $11 + local.get $13 + local.get $14 local.get $1 select i64.store offset=8 @@ -35112,7 +34736,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -35127,226 +34751,208 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $11 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $12 - local.get $4 i32.add - local.set $14 + local.set $10 i32.const 0 - local.set $4 + local.set $7 loop $for-loop|1 - local.get $4 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $4 + local.get $7 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.const -1 i32.store - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|1 end end local.get $1 i32.const 3 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $15 + call $~lib/rt/tlsf/__alloc + local.set $9 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $10 + local.tee $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $10 + local.get $12 i32.const 31 - local.get $10 + local.get $12 i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $10 + local.get $5 + local.get $12 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add - local.tee $4 - local.get $10 + local.tee $6 + local.get $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $7 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 - local.get $10 - local.get $4 + local.get $6 + local.get $12 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 - local.get $10 + local.tee $1 + local.get $1 + local.get $12 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $10 + local.get $12 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $14 i64.div_u - local.get $4 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $14 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 - local.get $14 + local.get $10 i32.add i32.load i32.const 1 i32.add - local.get $1 - local.get $15 + local.get $5 + local.get $9 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $11 i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 - local.get $12 + local.tee $4 + local.get $11 i32.add local.get $3 i32.store - local.get $5 - local.get $14 + local.get $4 + local.get $10 i32.add - local.get $1 + local.get $5 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 + local.set $3 local.get $7 local.set $5 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.load local.tee $1 @@ -35355,29 +34961,29 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $14 + local.get $10 i32.add i32.load i32.const 1 i32.add - local.get $10 - local.get $15 + local.get $12 + local.get $9 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end - local.get $15 + local.get $9 call $~lib/rt/tlsf/__free - local.get $12 + local.get $11 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) @@ -35433,14 +35039,11 @@ i32.shl local.get $0 i32.add + local.tee $3 i64.load offset=8 local.tee $7 local.set $6 - local.get $8 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 i64.load local.set $5 i32.const 2 @@ -35564,6 +35167,7 @@ (local $4 i32) (local $5 i64) (local $6 i64) + (local $7 i32) local.get $1 local.get $2 i32.eq @@ -35604,12 +35208,9 @@ i32.shl local.get $0 i32.add + local.tee $7 i64.load offset=8 - local.get $4 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $7 i64.load i32.const 2 global.set $~argumentsLength @@ -35641,29 +35242,23 @@ i32.shl local.get $0 i32.add + local.tee $3 i64.load local.set $5 - local.get $1 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $2 i32.const 3 i32.shl local.get $0 i32.add + local.tee $3 i64.load i64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $5 i64.store local.get $2 @@ -35684,12 +35279,9 @@ i32.shl local.get $0 i32.add + local.tee $1 i64.load offset=8 - local.get $4 - i32.const 3 - i32.shl - local.get $0 - i32.add + local.get $1 i64.load i32.const 2 global.set $~argumentsLength @@ -35717,68 +35309,63 @@ (local $7 i64) (local $8 i64) (local $9 i32) + (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $9 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 3 i32.shl + local.tee $10 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 3 - i32.shl local.get $0 + local.get $10 i32.add i64.load i64.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $9 - local.get $2 + local.get $6 i32.sub i32.const 3 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $0 i32.add i64.load offset=8 i64.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -35787,14 +35374,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 3 i32.shl local.get $4 i32.add i64.load local.set $7 - local.get $6 + local.get $2 i32.const 3 i32.shl local.get $4 @@ -35818,10 +35405,10 @@ i32.add local.get $7 i64.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 3 @@ -35830,10 +35417,10 @@ i32.add local.get $8 i64.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -35850,13 +35437,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) - (local $11 i64) + (local $11 i32) (local $12 i32) (local $13 i64) - (local $14 i32) - (local $15 i32) + (local $14 i64) local.get $1 i32.const 48 i32.le_s @@ -35870,10 +35456,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -35881,17 +35468,17 @@ end local.get $0 i64.load - local.set $9 + local.set $13 local.get $0 i64.load offset=8 - local.set $11 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $11 - local.get $9 - local.get $9 - local.get $11 + local.get $14 + local.get $13 + local.get $13 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -35900,49 +35487,49 @@ local.tee $1 select i64.store + local.get $13 + local.get $14 + local.get $1 + select + local.set $13 local.get $0 i64.load offset=16 - local.set $13 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $9 - local.get $11 - local.get $1 - select - local.tee $9 + local.get $0 + local.get $14 + local.get $13 local.get $13 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $13 - local.get $9 - local.get $1 + local.tee $1 select i64.store offset=8 local.get $0 - local.get $9 local.get $13 + local.get $14 local.get $1 select i64.store offset=16 end local.get $0 i64.load - local.set $9 + local.set $13 local.get $0 i64.load offset=8 - local.set $11 + local.set $14 i32.const 2 global.set $~argumentsLength local.get $0 - local.get $11 - local.get $9 - local.get $9 - local.get $11 + local.get $14 + local.get $13 + local.get $13 + local.get $14 local.get $2 i32.load call_indirect $0 (type $i64_i64_=>_i32) @@ -35952,8 +35539,8 @@ select i64.store local.get $0 - local.get $9 - local.get $11 + local.get $13 + local.get $14 local.get $1 select i64.store offset=8 @@ -35961,7 +35548,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -35976,226 +35563,208 @@ local.tee $6 i32.const 2 i32.shl - local.tee $4 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $11 local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 i32.add - local.tee $12 - local.get $4 - i32.add - local.set $14 + local.set $10 i32.const 0 - local.set $4 + local.set $7 loop $for-loop|1 - local.get $4 local.get $6 - i32.lt_u + local.get $7 + i32.gt_u if - local.get $4 + local.get $7 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.const -1 i32.store - local.get $4 + local.get $7 i32.const 1 i32.add - local.set $4 + local.set $7 br $for-loop|1 end end local.get $1 i32.const 3 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $15 + call $~lib/rt/tlsf/__alloc + local.set $9 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $10 + local.tee $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $4 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $10 + local.get $12 i32.const 31 - local.get $10 + local.get $12 i32.const 31 i32.lt_s select - local.tee $1 - local.get $4 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $10 + local.get $5 + local.get $12 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add - local.tee $4 - local.get $10 + local.tee $6 + local.get $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 - local.get $4 + local.tee $7 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $4 - local.get $10 - local.get $4 + local.get $6 + local.get $12 + local.get $6 i32.const 31 i32.add - local.tee $6 - local.get $6 - local.get $10 + local.tee $1 + local.get $1 + local.get $12 i32.gt_s select - local.tee $6 - local.get $7 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $4 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $10 + local.get $12 i32.const 1 i32.add i64.extend_i32_u - local.tee $9 + local.tee $14 i64.div_u - local.get $4 local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $14 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $5 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $5 + local.get $8 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $5 i32.const 2 i32.shl local.tee $3 - local.get $14 + local.get $10 i32.add i32.load i32.const 1 i32.add - local.get $1 - local.get $15 + local.get $5 + local.get $9 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $12 + local.get $11 i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $5 + local.get $8 i32.const 1 i32.sub - local.set $5 + local.set $8 br $for-loop|3 end end - local.get $7 + local.get $1 i32.const 2 i32.shl - local.tee $5 - local.get $12 + local.tee $4 + local.get $11 i32.add local.get $3 i32.store - local.get $5 - local.get $14 + local.get $4 + local.get $10 i32.add - local.get $1 + local.get $5 i32.store - local.get $4 - local.set $3 local.get $6 - local.set $1 + local.set $3 local.get $7 local.set $5 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $5 + local.get $4 if - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $12 + local.get $11 i32.add i32.load local.tee $1 @@ -36204,29 +35773,29 @@ if local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $14 + local.get $10 i32.add i32.load i32.const 1 i32.add - local.get $10 - local.get $15 + local.get $12 + local.get $9 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $5 + local.get $4 i32.const 1 i32.sub - local.set $5 + local.set $4 br $for-loop|4 end end - local.get $15 + local.get $9 call $~lib/rt/tlsf/__free - local.get $12 + local.get $11 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) @@ -36282,14 +35851,11 @@ i32.shl local.get $0 i32.add + local.tee $3 f32.load offset=4 local.tee $7 local.set $6 - local.get $8 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $3 f32.load local.set $5 i32.const 2 @@ -36413,6 +35979,7 @@ (local $4 i32) (local $5 f32) (local $6 f32) + (local $7 i32) local.get $1 local.get $2 i32.eq @@ -36453,12 +36020,9 @@ i32.shl local.get $0 i32.add + local.tee $7 f32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $7 f32.load i32.const 2 global.set $~argumentsLength @@ -36490,29 +36054,23 @@ i32.shl local.get $0 i32.add + local.tee $3 f32.load local.set $5 - local.get $1 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $2 i32.const 2 i32.shl local.get $0 i32.add + local.tee $3 f32.load f32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $2 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $3 local.get $5 f32.store local.get $2 @@ -36533,12 +36091,9 @@ i32.shl local.get $0 i32.add + local.tee $1 f32.load offset=4 - local.get $4 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.get $1 f32.load i32.const 2 global.set $~argumentsLength @@ -36566,68 +36121,63 @@ (local $7 f32) (local $8 f32) (local $9 i32) + (local $10 i32) local.get $3 local.get $2 i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.add local.set $9 - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $6 + local.set $2 loop $for-loop|0 local.get $1 - local.get $6 + local.get $2 i32.lt_s if - local.get $6 + local.get $2 i32.const 1 i32.sub + local.tee $2 i32.const 2 i32.shl + local.tee $10 local.get $4 i32.add - local.get $6 - i32.const 1 - i32.sub - i32.const 2 - i32.shl local.get $0 + local.get $10 i32.add f32.load f32.store - local.get $6 - i32.const 1 - i32.sub - local.set $6 br $for-loop|0 end end loop $for-loop|1 - local.get $2 local.get $3 - i32.lt_s + local.get $6 + i32.gt_s if local.get $9 - local.get $2 + local.get $6 i32.sub i32.const 2 i32.shl local.get $4 i32.add - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $0 i32.add f32.load offset=4 f32.store - local.get $2 + local.get $6 i32.const 1 i32.add - local.set $2 + local.set $6 br $for-loop|1 end end @@ -36636,14 +36186,14 @@ local.get $3 i32.le_s if - local.get $2 + local.get $6 i32.const 2 i32.shl local.get $4 i32.add f32.load local.set $7 - local.get $6 + local.get $2 i32.const 2 i32.shl local.get $4 @@ -36667,10 +36217,10 @@ i32.add local.get $7 f32.store - local.get $2 + local.get $6 i32.const 1 i32.sub - local.set $2 + local.set $6 else local.get $1 i32.const 2 @@ -36679,10 +36229,10 @@ i32.add local.get $8 f32.store - local.get $6 + local.get $2 i32.const 1 i32.add - local.set $6 + local.set $2 end local.get $1 i32.const 1 @@ -36702,11 +36252,10 @@ (local $9 i64) (local $10 i32) (local $11 i32) - (local $12 f32) + (local $12 i32) (local $13 i32) (local $14 f32) - (local $15 i32) - (local $16 f32) + (local $15 f32) local.get $1 i32.const 48 i32.le_s @@ -36720,10 +36269,11 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 @@ -36731,7 +36281,7 @@ end local.get $0 f32.load - local.set $16 + local.set $15 local.get $0 f32.load offset=4 local.set $14 @@ -36739,8 +36289,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $16 - local.get $16 + local.get $15 + local.get $15 local.get $14 local.get $2 i32.load @@ -36750,39 +36300,39 @@ local.tee $1 select f32.store + local.get $15 + local.get $14 + local.get $1 + select + local.set $15 local.get $0 f32.load offset=8 - local.set $12 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $16 + local.get $0 + local.get $14 + local.get $15 + local.get $15 local.get $14 - local.get $1 - select - local.tee $16 - local.get $12 local.get $2 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 i32.gt_s - local.set $1 - local.get $0 - local.get $12 - local.get $16 - local.get $1 + local.tee $1 select f32.store offset=4 local.get $0 - local.get $16 - local.get $12 + local.get $15 + local.get $14 local.get $1 select f32.store offset=8 end local.get $0 f32.load - local.set $16 + local.set $15 local.get $0 f32.load offset=4 local.set $14 @@ -36790,8 +36340,8 @@ global.set $~argumentsLength local.get $0 local.get $14 - local.get $16 - local.get $16 + local.get $15 + local.get $15 local.get $14 local.get $2 i32.load @@ -36802,7 +36352,7 @@ select f32.store local.get $0 - local.get $16 + local.get $15 local.get $14 local.get $1 select @@ -36811,7 +36361,7 @@ end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -36823,38 +36373,28 @@ local.get $1 i32.clz i32.sub - local.tee $5 + local.tee $6 i32.const 2 i32.shl local.tee $7 i32.const 1 i32.shl - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $13 + call $~lib/rt/tlsf/__alloc + local.tee $12 local.get $7 i32.add local.set $11 i32.const 0 local.set $7 loop $for-loop|1 - local.get $5 + local.get $6 local.get $7 i32.gt_u if local.get $7 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.const -1 i32.store @@ -36868,97 +36408,87 @@ local.get $1 i32.const 2 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $10 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $15 + local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $5 i32.const 1 i32.add - local.tee $7 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $15 + local.get $13 i32.const 31 - local.get $15 + local.get $13 i32.const 31 i32.lt_s select - local.tee $1 - local.get $7 + local.tee $5 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $15 + local.get $5 + local.get $13 i32.lt_s if local.get $0 - local.get $1 + local.get $5 i32.const 1 i32.add - local.tee $7 - local.get $15 + local.tee $6 + local.get $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 - local.get $7 + local.tee $7 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $4 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $7 - local.get $15 - local.get $7 + local.get $6 + local.get $13 + local.get $6 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $15 + local.tee $1 + local.get $1 + local.get $13 i32.gt_s select - local.tee $5 - local.get $4 + local.tee $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $15 + local.get $13 i32.const 1 i32.add i64.extend_i32_u local.tee $9 i64.div_u - local.get $5 + local.get $6 local.get $7 i32.add i32.const 1 @@ -36971,25 +36501,27 @@ i64.xor i32.wrap_i64 i32.clz - local.set $4 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $6 + local.get $1 + local.get $8 i32.lt_u if - local.get $6 + local.get $8 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.load - local.tee $8 + local.tee $4 i32.const -1 i32.ne if local.get $0 + local.get $4 local.get $8 - local.get $6 i32.const 2 i32.shl local.tee $3 @@ -36998,54 +36530,54 @@ i32.load i32.const 1 i32.add - local.get $1 + local.get $5 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $13 + local.get $12 i32.add i32.const -1 i32.store - local.get $8 + local.get $4 local.set $3 end - local.get $6 + local.get $8 i32.const 1 i32.sub - local.set $6 + local.set $8 br $for-loop|3 end end - local.get $4 + local.get $1 i32.const 2 i32.shl - local.tee $6 - local.get $13 + local.tee $4 + local.get $12 i32.add local.get $3 i32.store - local.get $6 + local.get $4 local.get $11 i32.add - local.get $1 + local.get $5 i32.store - local.get $7 + local.get $6 local.set $3 - local.get $5 - local.set $1 - local.get $4 - local.set $6 + local.get $7 + local.set $5 + local.get $1 + local.set $4 br $while-continue|2 end end loop $for-loop|4 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.const 2 i32.shl - local.get $13 + local.get $12 i32.add i32.load local.tee $1 @@ -37054,7 +36586,7 @@ if local.get $0 local.get $1 - local.get $6 + local.get $4 i32.const 2 i32.shl local.get $11 @@ -37062,21 +36594,21 @@ i32.load i32.const 1 i32.add - local.get $15 + local.get $13 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns end - local.get $6 + local.get $4 i32.const 1 i32.sub - local.set $6 + local.set $4 br $for-loop|4 end end local.get $10 call $~lib/rt/tlsf/__free - local.get $13 + local.get $12 call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) @@ -44460,9 +43992,9 @@ i32.add i32.load16_s local.tee $5 - local.get $3 local.get $1 i32.load offset=4 + local.get $3 i32.add i32.load16_s local.tee $3 @@ -44863,9 +44395,9 @@ i32.add i32.load16_u local.tee $5 - local.get $3 local.get $1 i32.load offset=4 + local.get $3 i32.add i32.load16_u local.tee $3 @@ -45266,9 +44798,9 @@ i32.add i32.load local.tee $5 - local.get $3 local.get $1 i32.load offset=4 + local.get $3 i32.add i32.load local.tee $3 @@ -45672,9 +45204,9 @@ i32.add i32.load local.tee $5 - local.get $3 local.get $1 i32.load offset=4 + local.get $3 i32.add i32.load local.tee $3 @@ -46079,9 +45611,9 @@ i32.add i64.load local.tee $5 - local.get $4 local.get $1 i32.load offset=4 + local.get $4 i32.add i64.load local.tee $6 @@ -46483,9 +46015,9 @@ i32.add i64.load local.tee $5 - local.get $4 local.get $1 i32.load offset=4 + local.get $4 i32.add i64.load local.tee $6 @@ -46887,9 +46419,9 @@ i32.add f32.load local.tee $5 - local.get $4 local.get $1 i32.load offset=4 + local.get $4 i32.add f32.load local.tee $6 @@ -47385,9 +46917,9 @@ i32.add f64.load local.tee $5 - local.get $4 local.get $1 i32.load offset=4 + local.get $4 i32.add f64.load local.tee $6 @@ -60822,19 +60354,18 @@ i32.store local.get $1 call $~lib/typedarray/Int8Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -61068,170 +60599,201 @@ i32.const 9584 i32.store local.get $1 - call $~lib/typedarray/Int16Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 5 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint16Array#join + call $~lib/typedarray/Int16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Uint16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Uint16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=12 + local.get $1 + call $~lib/typedarray/Int32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner15 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 9584 + i32.store + local.get $1 + call $~lib/typedarray/Int32Array#join local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 9584 - i32.store - local.get $1 - call $~lib/typedarray/Uint16Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Int32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -61241,40 +60803,6 @@ i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 9584 - i32.store - local.get $1 - call $~lib/typedarray/Int32Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 - local.get $0 - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -61354,19 +60882,18 @@ i32.store local.get $1 call $~lib/typedarray/Uint32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -61449,19 +60976,18 @@ i32.store local.get $1 call $~lib/typedarray/Int64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -61544,19 +61070,18 @@ i32.store local.get $1 call $~lib/typedarray/Uint64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -61639,19 +61164,18 @@ i32.store local.get $1 call $~lib/typedarray/Float32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 10800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz @@ -61734,19 +61258,18 @@ i32.store local.get $1 call $~lib/typedarray/Float64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 10800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz @@ -61864,9 +61387,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $6 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $4 @@ -62110,9 +61633,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $6 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $4 @@ -62250,9 +61773,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $6 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -62393,9 +61916,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $6 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -62534,9 +62057,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $6 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -62675,9 +62198,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $6 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -62817,9 +62340,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $6 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -62959,9 +62482,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $6 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -63101,9 +62624,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $6 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 @@ -63243,9 +62766,9 @@ i32.load i32.sub local.tee $0 - local.get $0 local.get $6 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $3 diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index 12bf7c5bbe..9a85c05526 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -402,19 +402,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -485,17 +485,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -750,11 +748,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1110,13 +1105,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1205,8 +1200,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1368,12 +1363,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1389,20 +1384,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1410,16 +1405,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1430,13 +1424,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1444,34 +1438,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1485,16 +1479,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1502,18 +1496,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1524,11 +1518,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1538,14 +1532,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1558,92 +1551,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1659,18 +1645,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1679,18 +1665,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1699,10 +1685,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1711,20 +1697,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1739,10 +1725,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1759,16 +1745,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1791,8 +1777,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 @@ -2951,15 +2937,15 @@ local.set $3 loop $while-continue|0 local.get $1 - local.get $6 + local.get $7 i32.gt_u if block $while-break|0 - local.get $6 + local.get $7 local.set $5 loop $do-continue|1 block $do-break|1 - local.get $6 + local.get $7 i32.const 1 i32.shl local.get $0 @@ -2979,21 +2965,21 @@ i32.load8_u br_if $do-break|1 local.get $1 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $6 + local.tee $7 i32.gt_u br_if $do-continue|1 end end local.get $5 - local.get $6 + local.get $7 i32.lt_u if local.get $9 - local.get $7 local.get $6 + local.get $7 local.get $5 i32.sub i32.const 1 @@ -3003,7 +2989,7 @@ i32.lt_u if local.get $3 - local.get $7 + local.get $6 local.get $8 i32.add local.tee $9 @@ -3011,7 +2997,7 @@ local.set $3 end local.get $3 - local.get $7 + local.get $6 i32.add local.get $5 i32.const 1 @@ -3020,15 +3006,18 @@ i32.add local.get $8 call $~lib/memory/memory.copy - local.get $7 + local.get $6 local.get $8 i32.add - local.set $7 + local.set $6 local.get $1 - local.get $6 + local.get $7 i32.le_u br_if $while-break|0 end + local.get $9 + i32.const 6 + i32.const 24 local.get $4 i32.const 55296 i32.ge_u @@ -3054,7 +3043,7 @@ i32.le_u if (result i32) local.get $1 - local.get $6 + local.get $7 i32.le_u if i32.const 1584 @@ -3065,10 +3054,10 @@ unreachable end i32.const 1 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $6 + local.tee $7 i32.const 1 i32.shl local.get $0 @@ -3105,24 +3094,21 @@ end local.set $4 end - local.get $9 - local.get $7 - local.tee $5 - i32.const 6 - i32.const 24 local.get $4 i32.const 128 i32.lt_u select + local.get $6 + local.tee $5 i32.add - local.tee $7 + local.tee $6 i32.lt_u if local.get $3 - local.get $7 + local.get $6 i32.const 1 i32.shl - local.get $7 + local.get $6 local.get $1 i32.const 1 i32.gt_u @@ -3138,11 +3124,10 @@ local.get $3 local.get $5 i32.add + local.tee $6 i32.const 37 i32.store16 - local.get $3 - local.get $5 - i32.add + local.get $6 local.get $4 i32.const 4 i32.shr_u @@ -3165,7 +3150,6 @@ i32.const 6 i32.add else - local.get $3 local.get $4 i32.const 2048 i32.lt_u @@ -3173,17 +3157,16 @@ local.get $3 local.get $5 i32.add + local.tee $8 i32.const 37 i32.store16 - local.get $3 - local.get $5 - i32.add + local.get $8 local.get $4 i32.const 6 i32.shr_u i32.const 192 i32.or - local.tee $7 + local.tee $6 i32.const 4 i32.shr_u i32.const 15 @@ -3191,7 +3174,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $7 + local.get $6 i32.const 15 i32.and i32.const 1676 @@ -3213,17 +3196,16 @@ local.get $3 local.get $5 i32.add + local.tee $8 i32.const 37 i32.store16 - local.get $3 - local.get $5 - i32.add + local.get $8 local.get $4 i32.const 12 i32.shr_u i32.const 224 i32.or - local.tee $7 + local.tee $6 i32.const 4 i32.shr_u i32.const 15 @@ -3231,7 +3213,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $7 + local.get $6 i32.const 15 i32.and i32.const 1676 @@ -3248,17 +3230,16 @@ local.get $3 local.get $5 i32.add + local.tee $8 i32.const 37 i32.store16 - local.get $3 - local.get $5 - i32.add + local.get $8 local.get $4 i32.const 18 i32.shr_u i32.const 240 i32.or - local.tee $7 + local.tee $6 i32.const 4 i32.shr_u i32.const 15 @@ -3266,7 +3247,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $7 + local.get $6 i32.const 15 i32.and i32.const 1676 @@ -3280,13 +3261,12 @@ local.get $5 i32.const 6 i32.add - local.tee $7 + local.tee $6 i32.add + local.tee $8 i32.const 37 i32.store16 - local.get $3 - local.get $7 - i32.add + local.get $8 local.get $4 i32.const 12 i32.shr_u @@ -3310,17 +3290,16 @@ i32.shl i32.or i32.store offset=2 - local.get $7 + local.get $6 i32.const 6 i32.add end - local.tee $7 + local.tee $6 i32.add + local.tee $8 i32.const 37 i32.store16 - local.get $3 - local.get $7 - i32.add + local.get $8 local.get $4 i32.const 6 i32.shr_u @@ -3344,25 +3323,29 @@ i32.shl i32.or i32.store offset=2 - local.get $7 + local.get $6 i32.const 6 i32.add end - local.tee $7 - i32.add - i32.const 37 - i32.store16 - local.get $3 - local.get $7 - i32.add + local.set $6 local.get $4 i32.const 63 i32.and i32.const 128 i32.or - local.tee $5 + local.set $5 + local.get $3 + local.get $6 + i32.add + local.tee $4 + i32.const 37 + i32.store16 + local.get $4 + local.get $5 i32.const 4 i32.shr_u + i32.const 15 + i32.and i32.const 1676 i32.add i32.load8_u @@ -3376,25 +3359,25 @@ i32.shl i32.or i32.store offset=2 - local.get $7 + local.get $6 i32.const 6 i32.add end - local.set $7 - local.get $6 + local.set $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $while-continue|0 end end end - local.get $7 + local.get $6 local.get $9 i32.lt_u if (result i32) local.get $3 - local.get $7 + local.get $6 call $~lib/rt/itcms/__renew else local.get $3 @@ -3611,12 +3594,12 @@ if (result i32) i32.const 1 else - local.get $0 local.get $3 i32.const 1 i32.add i32.const 1 i32.shl + local.get $0 i32.add local.tee $4 i32.load16_u @@ -3783,12 +3766,12 @@ if (result i32) i32.const 1 else - local.get $0 local.get $3 i32.const 1 i32.add i32.const 1 i32.shl + local.get $0 i32.add local.tee $7 i32.load16_u diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index aef1076e84..623c08ee56 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -295,19 +295,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -378,17 +378,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -643,11 +641,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1003,13 +998,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1098,8 +1093,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1517,9 +1512,10 @@ local.get $0 global.set $super-inline/bar global.get $~lib/memory/__stack_pointer + local.tee $0 global.get $super-inline/bar i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/tablebase.optimized.wat b/tests/compiler/tablebase.optimized.wat index 90338ab92d..c2f7a71575 100644 --- a/tests/compiler/tablebase.optimized.wat +++ b/tests/compiler/tablebase.optimized.wat @@ -11,6 +11,7 @@ (export "memory" (memory $0)) (start $~start) (func $~start + (local $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -27,9 +28,10 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1056 i32.store i32.const 1056 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index 508723435a..adbbf628c2 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -500,19 +500,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -583,17 +583,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -848,11 +846,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1208,13 +1203,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1303,8 +1298,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state @@ -1466,12 +1461,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $2 + local.set $3 loop $do-continue|0 - local.get $2 + local.get $3 call $~lib/rt/itcms/step i32.sub - local.set $2 + local.set $3 global.get $~lib/rt/itcms/state i32.eqz if @@ -1487,20 +1482,20 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $2 + local.get $3 i32.const 0 i32.gt_s br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 + local.tee $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 + local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -1508,16 +1503,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $5 - local.get $5 - local.get $2 + local.tee $6 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -1528,13 +1522,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -1542,34 +1536,34 @@ i32.const 4 i32.sub end - local.tee $2 - call $~lib/rt/tlsf/searchBlock local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size - local.tee $4 - local.get $2 + local.tee $5 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1583,16 +1577,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $4 + local.tee $2 + local.get $2 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -1600,18 +1594,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -1622,11 +1616,11 @@ unreachable end end - local.get $3 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -1636,14 +1630,13 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $3 - local.tee $4 - i32.load - local.set $3 local.get $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1656,92 +1649,85 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store + local.get $3 local.get $2 - local.get $4 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $4 - local.get $3 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $4 - i32.const 4 - i32.add - local.get $4 - i32.load - i32.const -4 - i32.and - i32.add - local.get $4 + local.get $2 i32.const 4 i32.add - local.get $4 + local.get $2 i32.load i32.const -4 i32.and i32.add + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $4 - local.tee $2 + local.get $2 local.get $1 i32.store offset=12 local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 global.get $~lib/rt/itcms/white - local.get $3 + local.get $1 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and local.get $2 i32.or i32.store offset=4 - local.get $3 + local.get $1 local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1757,18 +1743,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1777,18 +1763,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1797,10 +1783,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1809,20 +1795,20 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 local.get $0 - local.get $2 + local.get $1 i32.sub i32.const -4 i32.and @@ -1837,10 +1823,10 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=4 - local.get $1 + local.get $4 i32.const 0 i32.store offset=8 local.get $0 @@ -1857,16 +1843,16 @@ i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $4 i32.const 0 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 - local.get $1 + local.get $4 i32.const 0 i32.store offset=24 local.get $0 @@ -1889,8 +1875,8 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.const 4 i32.and i32.const 24 @@ -3996,7 +3982,6 @@ i32.shl local.get $0 i32.add - local.tee $4 local.tee $0 i32.const 2 i32.add @@ -4007,7 +3992,7 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $0 i32.const 46 i32.store16 local.get $1 diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index 34b2b4ecf1..387dd4bbd1 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -294,19 +294,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -377,17 +377,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -642,11 +640,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1059,8 +1054,7 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.tee $1 - local.get $1 + local.get $0 i32.store offset=4 local.get $0 local.get $0 @@ -1156,8 +1150,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1167,27 +1159,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 1056 i32.store loop $while-continue|0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 10 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=4 - local.get $0 + local.get $1 i32.const 10 i32.gt_s if diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index d6956fd56f..e77ac84b56 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -426,19 +426,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -509,17 +509,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -774,11 +772,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -1134,13 +1129,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1229,8 +1224,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 3f664674ac..9f3a9eab01 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -495,19 +495,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -578,17 +578,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -843,11 +841,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -2846,7 +2841,6 @@ i32.shl local.get $0 i32.add - local.tee $4 local.tee $0 i32.const 2 i32.add @@ -2857,7 +2851,7 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $0 i32.const 46 i32.store16 local.get $1 @@ -3113,21 +3107,22 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i32) + (local $3 i64) (local $4 i64) (local $5 i64) (local $6 i64) (local $7 i64) - (local $8 i64) + (local $8 i32) (local $9 i32) - (local $10 i32) - (local $11 i64) - (local $12 i32) - (local $13 i64) + (local $10 i64) + (local $11 i32) + (local $12 i64) + (local $13 i32) + (local $14 i64) local.get $1 f64.const 0 f64.lt - local.tee $10 + local.tee $9 if (result f64) local.get $0 i32.const 45 @@ -3138,74 +3133,74 @@ local.get $1 end i64.reinterpret_f64 - local.tee $2 + local.tee $14 i64.const 9218868437227405312 i64.and i64.const 52 i64.shr_u i32.wrap_i64 - local.set $3 - local.get $2 + local.set $13 + local.get $14 i64.const 4503599627370495 i64.and - local.get $3 + local.get $13 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl i64.add - local.set $2 - local.get $3 + local.set $14 + local.get $13 i32.const 1 - local.get $3 + local.get $13 select i32.const 1075 i32.sub - local.tee $3 + local.tee $13 i32.const 1 i32.sub - local.get $2 + local.get $14 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $4 + local.tee $2 i64.clz i32.wrap_i64 - local.tee $9 + local.tee $11 i32.sub - local.set $12 - local.get $4 - local.get $9 + local.set $8 + local.get $2 + local.get $11 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $2 - local.get $2 + local.get $14 + local.get $14 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $9 + local.tee $11 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $3 - local.get $9 + local.get $13 + local.get $11 i32.sub - local.get $12 + local.get $8 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $12 + local.get $8 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $9 + local.tee $11 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3214,9 +3209,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $3 + local.tee $13 local.get $1 - local.get $3 + local.get $13 f64.convert_i32_s f64.ne i32.add @@ -3224,85 +3219,86 @@ i32.shr_s i32.const 1 i32.add - local.tee $3 + local.tee $13 i32.const 3 i32.shl + local.tee $8 i32.sub global.set $~lib/util/number/_K - local.get $3 - i32.const 3 - i32.shl + local.get $8 i32.const 1328 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $3 + local.get $13 i32.const 1 i32.shl i32.const 2024 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - local.get $2 - local.get $2 + local.get $14 + local.get $14 i64.clz i64.shl - local.tee $4 + local.tee $2 i64.const 4294967295 i64.and - local.set $13 + local.set $7 global.get $~lib/util/number/_frc_pow - local.tee $2 + local.tee $12 i64.const 4294967295 i64.and - local.tee $11 - local.get $4 + local.tee $14 + local.set $3 + local.get $2 i64.const 32 i64.shr_u - local.tee $4 + local.set $6 + local.get $12 + i64.const 32 + i64.shr_u + local.tee $2 + local.set $5 + local.get $3 + local.get $6 i64.mul - local.get $11 - local.get $13 + local.get $3 + local.get $7 i64.mul i64.const 32 i64.shr_u i64.add - local.set $11 + local.set $4 global.get $~lib/util/number/_frc_plus - local.tee $6 - i64.const 4294967295 - i64.and - local.set $7 - local.get $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $5 - local.get $6 + local.set $10 + local.get $3 i64.const 32 i64.shr_u - local.tee $6 + local.tee $12 + local.get $2 + local.tee $3 i64.mul - local.get $5 - local.get $7 + local.get $12 + local.get $14 + i64.mul + local.get $10 + local.get $14 i64.mul i64.const 32 i64.shr_u i64.add - local.set $5 - local.get $6 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $8 - i64.mul - local.get $5 + local.tee $12 i64.const 32 i64.shr_u i64.add - local.get $7 - local.get $8 + local.get $3 + local.get $10 i64.mul - local.get $5 + local.get $12 i64.const 4294967295 i64.and i64.add @@ -3313,48 +3309,42 @@ i64.add i64.const 1 i64.sub - local.set $6 + local.set $12 global.get $~lib/util/number/_frc_minus - local.tee $7 - i64.const 4294967295 - i64.and - local.set $5 - local.get $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $8 - local.get $7 + local.set $10 + local.get $14 + local.get $3 i64.const 32 i64.shr_u - local.tee $7 + local.tee $3 i64.mul - local.get $5 - local.get $8 + local.get $10 + local.get $14 i64.mul i64.const 32 i64.shr_u i64.add - local.set $8 - local.get $10 + local.set $14 + local.get $9 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $4 - local.get $2 - i64.const 32 - i64.shr_u - local.tee $4 + local.get $5 + local.get $6 i64.mul - local.get $11 + local.get $4 i64.const 32 i64.shr_u i64.add - local.get $4 - local.get $13 + local.get $5 + local.get $7 i64.mul - local.get $11 + local.get $4 i64.const 4294967295 i64.and i64.add @@ -3363,27 +3353,24 @@ i64.const 32 i64.shr_u i64.add - local.get $6 + local.get $12 global.get $~lib/util/number/_exp_pow - local.get $9 + local.get $11 i32.add i32.const -64 i32.sub - local.get $6 - local.get $7 + local.get $12 local.get $2 - i64.const 32 - i64.shr_u - local.tee $2 + local.get $3 i64.mul - local.get $8 + local.get $14 i64.const 32 i64.shr_u i64.add local.get $2 - local.get $5 + local.get $10 i64.mul - local.get $8 + local.get $14 i64.const 4294967295 i64.and i64.add @@ -3395,13 +3382,13 @@ i64.const 1 i64.add i64.sub - local.get $10 + local.get $9 call $~lib/util/number/genDigits - local.get $10 + local.get $9 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $10 + local.get $9 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -3555,24 +3542,22 @@ end end local.get $7 - local.tee $6 i32.const 56 - local.get $6 + local.get $7 i32.const 56 i32.gt_s select i32.const 13 i32.add - local.set $6 + local.set $7 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $9 - local.get $9 - local.get $6 + local.tee $9 + local.get $7 i32.const 1073741820 i32.gt_u if @@ -3583,13 +3568,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $6 + local.get $7 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $6 + local.get $7 i32.const 19 i32.add i32.const -16 @@ -3597,29 +3582,29 @@ i32.const 4 i32.sub end - local.tee $6 - call $~lib/rt/tlsf/searchBlock local.tee $7 + call $~lib/rt/tlsf/searchBlock + local.tee $6 i32.eqz if memory.size local.tee $8 - local.get $6 + local.get $7 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $6 + local.get $7 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $6 + local.get $7 i32.add else - local.get $6 + local.get $7 end i32.const 4 local.get $9 @@ -3638,8 +3623,8 @@ i32.and i32.const 16 i32.shr_u - local.tee $7 - local.get $7 + local.tee $6 + local.get $6 local.get $8 i32.lt_s select @@ -3647,7 +3632,7 @@ i32.const 0 i32.lt_s if - local.get $7 + local.get $6 memory.grow i32.const 0 i32.lt_s @@ -3664,9 +3649,9 @@ i32.shl call $~lib/rt/tlsf/addMemory local.get $9 - local.get $6 + local.get $7 call $~lib/rt/tlsf/searchBlock - local.tee $7 + local.tee $6 i32.eqz if i32.const 0 @@ -3677,11 +3662,11 @@ unreachable end end - local.get $7 + local.get $6 i32.load i32.const -4 i32.and - local.get $6 + local.get $7 i32.lt_u if i32.const 0 @@ -3692,13 +3677,15 @@ unreachable end local.get $9 - local.get $7 + local.get $6 call $~lib/rt/tlsf/removeBlock local.get $7 - local.tee $8 - i32.load - local.set $7 + local.set $8 local.get $6 + local.tee $7 + i32.load + local.set $6 + local.get $8 i32.const 4 i32.add i32.const 15 @@ -3711,24 +3698,24 @@ call $~lib/wasi/index/abort unreachable end - local.get $7 + local.get $6 i32.const -4 i32.and - local.get $6 + local.get $8 i32.sub local.tee $10 i32.const 16 i32.ge_u if - local.get $8 local.get $7 + local.get $6 i32.const 2 i32.and - local.get $6 + local.get $8 i32.or i32.store - local.get $6 local.get $8 + local.get $7 i32.const 4 i32.add i32.add @@ -3743,223 +3730,216 @@ local.get $6 call $~lib/rt/tlsf/insertBlock else - local.get $8 local.get $7 + local.get $6 i32.const -2 i32.and i32.store - local.get $8 - i32.const 4 - i32.add - local.get $8 - i32.load - i32.const -4 - i32.and - i32.add - local.get $8 + local.get $7 i32.const 4 i32.add - local.get $8 + local.get $7 i32.load i32.const -4 i32.and i32.add + local.tee $6 + local.get $6 i32.load i32.const -3 i32.and i32.store end - local.get $8 + local.get $7 i32.const 4 i32.add - local.tee $6 + local.tee $7 i32.const 8 i32.add - local.tee $9 + local.tee $8 i32.const 4 i32.add - local.set $7 - local.get $6 + local.set $6 local.get $7 + local.get $6 i32.store - local.get $7 + local.get $6 i64.const 9071406388179572 i64.store - local.get $6 + local.get $7 i32.const 7 i32.store offset=4 i32.const 2 - local.get $6 + local.get $7 i32.const 1 - local.get $9 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop i32.const 1052 i32.load i32.const 1 i32.shr_u - local.set $8 + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $6 - i32.const 1056 - local.get $8 local.get $7 + i32.const 1056 + local.get $9 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.store offset=4 i32.const 2 - local.get $6 + local.get $7 i32.const 1 - local.get $9 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 if (result i32) - local.get $7 + local.get $6 i32.const 32 i32.store8 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $7 + local.tee $6 local.get $1 call $~lib/util/number/dtoa_buffered - local.set $8 + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $7 - local.get $8 local.get $7 + local.get $6 + local.get $9 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $6 + local.get $7 i32.const 1 - local.get $9 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 1 i32.gt_s if - local.get $7 + local.get $6 local.get $2 call $~lib/util/number/dtoa_buffered - local.set $8 + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $7 - local.get $8 local.get $7 + local.get $6 + local.get $9 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $6 + local.get $7 i32.const 1 - local.get $9 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 2 i32.gt_s if - local.get $7 + local.get $6 local.get $3 call $~lib/util/number/dtoa_buffered - local.set $8 + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $7 - local.get $8 local.get $7 + local.get $6 + local.get $9 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $6 + local.get $7 i32.const 1 - local.get $9 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 3 i32.gt_s if - local.get $7 + local.get $6 local.get $4 call $~lib/util/number/dtoa_buffered - local.set $8 + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $6 - local.get $7 - local.get $8 local.get $7 + local.get $6 + local.get $9 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $6 + local.get $7 i32.const 1 - local.get $9 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop local.get $0 i32.const 4 i32.gt_s if - local.get $7 + local.get $6 local.get $5 call $~lib/util/number/dtoa_buffered local.set $0 i32.const 3 global.set $~argumentsLength - local.get $6 local.get $7 + local.get $6 local.get $0 - local.get $7 + local.get $6 call $~lib/string/String.UTF8.encodeUnsafe@varargs i32.const 1 i32.add i32.store offset=4 i32.const 2 - local.get $6 + local.get $7 i32.const 1 - local.get $9 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop end end end end - local.get $7 + local.get $6 i32.const 1 i32.sub else - local.get $7 + local.get $6 end i32.const 10 i32.store8 - local.get $6 + local.get $7 i32.const 1 i32.store offset=4 i32.const 2 - local.get $6 + local.get $7 i32.const 1 - local.get $9 + local.get $8 call $~lib/bindings/wasi_snapshot_preview1/fd_write drop - local.get $6 - local.tee $0 + local.get $7 i32.const 19024 i32.ge_u if @@ -3969,20 +3949,20 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $0 + local.get $7 i32.const 4 i32.sub - local.set $6 - local.get $0 + local.set $0 + local.get $7 i32.const 15 i32.and i32.const 1 - local.get $0 + local.get $7 select if (result i32) i32.const 1 else - local.get $6 + local.get $0 i32.load i32.const 1 i32.and @@ -3995,17 +3975,18 @@ call $~lib/wasi/index/abort unreachable end - local.get $6 - local.get $6 + local.get $0 + local.get $0 i32.load i32.const 1 i32.or i32.store - local.get $6 + local.get $0 call $~lib/rt/tlsf/insertBlock end ) (func $~start + (local $0 i32) global.get $~started if return @@ -4028,9 +4009,10 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1056 i32.store i32.const 0 diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index b126759efd..094796a907 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -283,19 +283,19 @@ i32.const 1073741820 i32.lt_u select - local.tee $3 + local.tee $2 i32.clz i32.sub - local.set $4 + local.set $3 + local.get $2 local.get $3 - local.get $4 i32.const 4 i32.sub i32.shr_u i32.const 16 i32.xor local.set $2 - local.get $4 + local.get $3 i32.const 7 i32.sub local.set $3 @@ -366,17 +366,15 @@ i32.shl local.get $0 i32.add - local.get $3 - i32.const 2 - i32.shl - local.get $0 - i32.add + local.tee $4 i32.load offset=4 i32.const -2 local.get $2 i32.rotl i32.and - local.tee $1 + local.set $1 + local.get $4 + local.get $1 i32.store offset=4 local.get $1 i32.eqz @@ -631,11 +629,8 @@ i32.shl local.get $0 i32.add - local.get $5 - i32.const 2 - i32.shl + local.tee $0 local.get $0 - i32.add i32.load offset=4 i32.const 1 local.get $3 @@ -991,13 +986,13 @@ if local.get $0 i32.load offset=4 + local.tee $1 i32.const -4 i32.and global.set $~lib/rt/itcms/iter global.get $~lib/rt/itcms/white i32.eqz - local.get $0 - i32.load offset=4 + local.get $1 i32.const 3 i32.and i32.ne @@ -1086,8 +1081,8 @@ local.tee $0 local.get $0 i32.store offset=4 - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace + local.get $0 + local.get $0 i32.store offset=8 i32.const 0 global.set $~lib/rt/itcms/state From 00d52cbb30c3aec02491680a4f7a949913dd6184 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 18 Aug 2021 08:48:44 +0300 Subject: [PATCH 10/32] better --- src/module.ts | 3 +- tests/compiler/binary.optimized.wat | 8 +--- tests/compiler/comma.optimized.wat | 11 ----- tests/compiler/resolve-binary.optimized.wat | 49 ++++++++++----------- tests/compiler/unary.optimized.wat | 18 +++----- 5 files changed, 34 insertions(+), 55 deletions(-) diff --git a/src/module.ts b/src/module.ts index 599a478043..fb2c9d1240 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2361,6 +2361,8 @@ export class Module { // precompute works best after global optimizations if (optimizeLevel >= 2 || shrinkLevel >= 1) { passes.push("precompute-propagate"); + passes.push("simplify-globals-optimizing"); + passes.push("local-cse"); } else { passes.push("precompute"); } @@ -2382,7 +2384,6 @@ export class Module { passes.push("inlining-optimizing"); passes.push("directize"); passes.push("dae-optimizing"); - passes.push("local-cse"); passes.push("merge-locals"); passes.push("coalesce-locals"); diff --git a/tests/compiler/binary.optimized.wat b/tests/compiler/binary.optimized.wat index 995c5d8b3d..5689d17f10 100644 --- a/tests/compiler/binary.optimized.wat +++ b/tests/compiler/binary.optimized.wat @@ -164,9 +164,7 @@ global.set $binary/i i32.const 1 global.set $binary/i - global.get $binary/i - i32.const 1 - i32.xor + i32.const 0 global.set $binary/i global.get $binary/i i32.const 1 @@ -212,9 +210,7 @@ global.set $binary/I i64.const 1 global.set $binary/I - global.get $binary/I - i64.const 1 - i64.xor + i64.const 0 global.set $binary/I global.get $binary/I i64.const 1 diff --git a/tests/compiler/comma.optimized.wat b/tests/compiler/comma.optimized.wat index 70ee552782..30a6004906 100644 --- a/tests/compiler/comma.optimized.wat +++ b/tests/compiler/comma.optimized.wat @@ -81,17 +81,6 @@ global.set $comma/b i32.const 2 global.set $comma/a - global.get $comma/b - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 19 - i32.const 1 - call $~lib/builtins/abort - unreachable - end loop $for-loop|0 global.get $comma/a local.get $0 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index 68b0c350c8..758824cfb8 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -4086,13 +4086,12 @@ end ) (func $~lib/number/F64#toString (result i32) - (local $0 i32) + (local $0 i64) (local $1 i64) (local $2 i64) - (local $3 i32) - (local $4 i64) - (local $5 i64) - (local $6 f64) + (local $3 i64) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4120,17 +4119,17 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $2 + local.tee $0 i64.const 4294967295 i64.and local.tee $1 i64.const 31 i64.shl - local.set $5 - local.get $2 + local.set $3 + local.get $0 i64.const 32 i64.shr_u - local.tee $2 + local.tee $0 i64.const 31 i64.shl local.get $1 @@ -4142,14 +4141,14 @@ i64.const 32 i64.shr_u i64.add - local.tee $4 + local.tee $2 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $2 i64.const 4294967295 i64.and - local.get $2 + local.get $0 i64.const 10 i64.shl i64.add @@ -4160,15 +4159,15 @@ i64.add i64.const 1 i64.sub - local.set $4 - local.get $2 + local.set $2 + local.get $0 i64.const 31 i64.shl - local.get $5 + local.get $3 i64.const 32 i64.shr_u i64.add - local.get $5 + local.get $3 i64.const 4294967295 i64.and i64.const 2147483647 @@ -4176,12 +4175,12 @@ i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $2 global.get $~lib/util/number/_exp_pow i32.const 3 i32.add - local.get $4 local.get $2 + local.get $0 i64.const 2147483647 i64.mul local.get $1 @@ -4197,7 +4196,7 @@ i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $0 i64.const 4294966784 i64.mul local.get $1 @@ -4217,22 +4216,22 @@ call $~lib/util/number/prettify i32.const 1 i32.shl - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $5 i32.store - local.get $0 + local.get $5 i32.const 9760 - local.get $3 + local.get $4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $5 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/unary.optimized.wat b/tests/compiler/unary.optimized.wat index 3406a2e03b..e2fda4418a 100644 --- a/tests/compiler/unary.optimized.wat +++ b/tests/compiler/unary.optimized.wat @@ -44,14 +44,11 @@ global.set $unary/i i32.const -1 global.set $unary/i - i32.const -1 - local.tee $0 - i32.const 1 - i32.add + i32.const 0 global.set $unary/i - local.get $0 + i32.const -1 global.set $unary/i - global.get $unary/i + i32.const -1 local.tee $0 i32.const 1 i32.sub @@ -92,14 +89,11 @@ global.set $unary/I i64.const -1 global.set $unary/I - i64.const -1 - local.tee $1 - i64.const 1 - i64.add + i64.const 0 global.set $unary/I - local.get $1 + i64.const -1 global.set $unary/I - global.get $unary/I + i64.const -1 local.tee $1 i64.const 1 i64.sub From 44a6d58cded40f31213095a83bac267b7453bc78 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 18 Aug 2021 09:38:28 +0300 Subject: [PATCH 11/32] fix --- src/module.ts | 4 +- .../extends-baseaggregate.optimized.wat | 430 ++++------- tests/compiler/heap.optimized.wat | 430 ++++------- tests/compiler/infer-array.optimized.wat | 438 ++++------- tests/compiler/issues/1699.optimized.wat | 430 ++++------- tests/compiler/memcpy.optimized.wat | 430 ++++------- tests/compiler/memset.optimized.wat | 64 +- tests/compiler/number.optimized.wat | 500 +++++-------- tests/compiler/object-literal.optimized.wat | 430 ++++------- tests/compiler/resolve-access.optimized.wat | 696 +++++++----------- tests/compiler/resolve-binary.optimized.wat | 500 +++++-------- .../resolve-elementaccess.optimized.wat | 478 +++++------- tests/compiler/resolve-ternary.optimized.wat | 500 +++++-------- tests/compiler/std-wasi/crypto.optimized.wat | 430 ++++------- tests/compiler/std-wasi/process.optimized.wat | 430 ++++------- tests/compiler/std/array-access.optimized.wat | 4 +- .../compiler/std/array-literal.optimized.wat | 16 +- tests/compiler/std/array.optimized.wat | 478 +++++------- tests/compiler/std/arraybuffer.optimized.wat | 430 ++++------- tests/compiler/std/date.optimized.wat | 430 ++++------- tests/compiler/std/map.optimized.wat | 430 ++++------- tests/compiler/std/pointer.optimized.wat | 446 ++++------- tests/compiler/std/set.optimized.wat | 430 ++++------- tests/compiler/std/static-array.optimized.wat | 430 ++++------- tests/compiler/std/staticarray.optimized.wat | 438 ++++------- .../std/string-casemapping.optimized.wat | 462 ++++-------- .../std/string-encoding.optimized.wat | 430 ++++------- tests/compiler/std/string.optimized.wat | 486 +++++------- tests/compiler/std/symbol.optimized.wat | 430 ++++------- tests/compiler/std/typedarray.optimized.wat | 478 +++++------- tests/compiler/std/uri.optimized.wat | 430 ++++------- tests/compiler/templateliteral.optimized.wat | 478 +++++------- tests/compiler/wasi/trace.optimized.wat | 478 +++++------- 33 files changed, 4747 insertions(+), 8647 deletions(-) diff --git a/src/module.ts b/src/module.ts index fb2c9d1240..f093ce0f66 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2126,11 +2126,11 @@ export class Module { } getZeroFilledMemory(): bool { - return binaryen._BinaryenGetLowMemoryUnused(); + return binaryen._BinaryenGetZeroFilledMemory(); } setZeroFilledMemory(on: bool): void { - binaryen._BinaryenSetLowMemoryUnused(on); + binaryen._BinaryenSetZeroFilledMemory(on); } getFastMath(): bool { diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index 422e52585e..223a04f53b 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -1788,8 +1788,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1834,29 +1832,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1881,13 +1867,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -1965,35 +1947,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2005,9 +1979,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2017,12 +1989,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2030,14 +1998,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2045,14 +2009,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2060,7 +2020,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2086,23 +2046,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2114,9 +2070,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2126,12 +2080,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2139,14 +2089,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2154,14 +2100,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2169,7 +2111,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2215,9 +2157,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2227,12 +2167,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2240,14 +2176,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2255,14 +2187,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2270,7 +2198,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2297,177 +2225,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2478,89 +2374,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2571,45 +2451,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2620,23 +2492,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index fcf38c83cf..11f7de4e90 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -1003,8 +1003,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1049,29 +1047,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1096,13 +1082,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -1180,35 +1162,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -1220,9 +1194,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -1232,12 +1204,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -1245,14 +1213,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -1260,14 +1224,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -1275,7 +1235,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1301,23 +1261,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -1329,9 +1285,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -1341,12 +1295,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -1354,14 +1304,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -1369,14 +1315,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -1384,7 +1326,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1430,9 +1372,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -1442,12 +1382,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -1455,14 +1391,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -1470,14 +1402,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -1485,7 +1413,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1512,177 +1440,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -1693,89 +1589,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -1786,45 +1666,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -1835,23 +1707,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index baf230cf79..494404ba46 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -1745,8 +1745,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1791,29 +1789,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1838,13 +1824,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -1922,35 +1904,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -1962,9 +1936,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -1974,12 +1946,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -1987,14 +1955,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2002,14 +1966,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2017,7 +1977,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2043,23 +2003,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2071,9 +2027,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2083,12 +2037,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2096,14 +2046,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2111,14 +2057,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2126,7 +2068,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2172,9 +2114,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2184,12 +2124,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2197,14 +2133,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2212,14 +2144,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2227,7 +2155,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2254,177 +2182,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2435,89 +2331,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2528,45 +2408,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2577,23 +2449,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -2768,9 +2636,7 @@ br_if $folding-inner0 local.get $0 i32.load offset=4 - i32.const 4 - i32.add - i32.load + i32.load offset=4 i32.const -1 i32.ne if @@ -2803,9 +2669,7 @@ br_if $folding-inner0 local.get $0 i32.load offset=4 - i32.const 4 - i32.add - f32.load + f32.load offset=4 drop global.get $~lib/memory/__stack_pointer call $infer-array/Ref#constructor diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index 83c99381a4..27183a19a6 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -1784,8 +1784,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1830,29 +1828,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1877,13 +1863,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -1961,35 +1943,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2001,9 +1975,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2013,12 +1985,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2026,14 +1994,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2041,14 +2005,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2056,7 +2016,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2082,23 +2042,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2110,9 +2066,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2122,12 +2076,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2135,14 +2085,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2150,14 +2096,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2165,7 +2107,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2211,9 +2153,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2223,12 +2163,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2236,14 +2172,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2251,14 +2183,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2266,7 +2194,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2293,177 +2221,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2474,89 +2370,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2567,45 +2447,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2616,23 +2488,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/memcpy.optimized.wat b/tests/compiler/memcpy.optimized.wat index 278bfd3509..529a532405 100644 --- a/tests/compiler/memcpy.optimized.wat +++ b/tests/compiler/memcpy.optimized.wat @@ -15,8 +15,6 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) local.get $0 local.set $5 loop $while-continue|0 @@ -63,29 +61,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -110,13 +96,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -195,35 +177,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $7 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $8 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $7 - i32.const 1 - i32.add - local.set $0 - local.get $8 - i32.const 1 - i32.add - local.set $1 - local.get $7 - local.get $8 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -235,9 +209,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -247,12 +219,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -260,14 +228,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -275,14 +239,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $6 i32.const 8 i32.shl @@ -290,7 +250,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -316,23 +276,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -344,9 +300,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -356,12 +310,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -369,14 +319,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -384,14 +330,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $6 i32.const 16 i32.shl @@ -399,7 +341,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -445,9 +387,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -457,12 +397,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -470,14 +406,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -485,14 +417,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $6 i32.const 24 i32.shl @@ -500,7 +428,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -527,177 +455,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -708,89 +604,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -801,45 +681,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -850,23 +722,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/memset.optimized.wat b/tests/compiler/memset.optimized.wat index be978183b9..6a8834cfd7 100644 --- a/tests/compiler/memset.optimized.wat +++ b/tests/compiler/memset.optimized.wat @@ -34,15 +34,11 @@ return end local.get $0 - i32.const 1 - i32.add local.get $1 - i32.store8 + i32.store8 offset=1 local.get $0 - i32.const 2 - i32.add local.get $1 - i32.store8 + i32.store8 offset=2 local.get $0 local.get $2 i32.add @@ -63,10 +59,8 @@ return end local.get $0 - i32.const 3 - i32.add local.get $1 - i32.store8 + i32.store8 offset=3 local.get $0 local.get $2 i32.add @@ -115,15 +109,11 @@ return end local.get $0 - i32.const 4 - i32.add local.get $1 - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.store + i32.store offset=8 local.get $0 local.get $2 i32.add @@ -144,25 +134,17 @@ return end local.get $0 - i32.const 12 - i32.add local.get $1 - i32.store + i32.store offset=12 local.get $0 - i32.const 16 - i32.add local.get $1 - i32.store + i32.store offset=16 local.get $0 - i32.const 20 - i32.add local.get $1 - i32.store + i32.store offset=20 local.get $0 - i32.const 24 - i32.add local.get $1 - i32.store + i32.store offset=24 local.get $0 local.get $2 i32.add @@ -216,20 +198,14 @@ local.get $4 i64.store local.get $0 - i32.const 8 - i32.add local.get $4 - i64.store + i64.store offset=8 local.get $0 - i32.const 16 - i32.add local.get $4 - i64.store + i64.store offset=16 local.get $0 - i32.const 24 - i32.add local.get $4 - i64.store + i64.store offset=24 local.get $2 i32.const 32 i32.sub @@ -262,9 +238,7 @@ unreachable end global.get $memset/dest - i32.const 15 - i32.add - i32.load8_u + i32.load8_u offset=15 i32.const 1 i32.ne if @@ -294,9 +268,7 @@ unreachable end global.get $memset/dest - i32.const 1 - i32.add - i32.load8_u + i32.load8_u offset=1 i32.const 2 i32.ne if @@ -308,9 +280,7 @@ unreachable end global.get $memset/dest - i32.const 14 - i32.add - i32.load8_u + i32.load8_u offset=14 i32.const 2 i32.ne if @@ -322,9 +292,7 @@ unreachable end global.get $memset/dest - i32.const 15 - i32.add - i32.load8_u + i32.load8_u offset=15 i32.const 1 i32.ne if diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 948047cf01..0235d29a7f 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -2522,8 +2522,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2568,29 +2566,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2615,13 +2601,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2699,35 +2681,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2739,9 +2713,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2751,12 +2723,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2764,14 +2732,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2779,14 +2743,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2794,7 +2754,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2820,23 +2780,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2848,9 +2804,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2860,12 +2814,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2873,14 +2823,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2888,14 +2834,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2903,7 +2845,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2949,9 +2891,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2961,12 +2901,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2974,14 +2910,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2989,14 +2921,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -3004,7 +2932,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3031,177 +2959,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -3212,89 +3108,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3305,45 +3185,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3354,23 +3226,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -3596,18 +3464,18 @@ local.get $0 local.get $1 i32.add - local.tee $2 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $2 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -3624,61 +3492,61 @@ br $for-loop|0 end end - local.get $2 + local.get $3 i32.const 1 i32.shl i32.const 3456 i32.add i32.const 3145774 i32.store - local.get $2 + local.get $3 i32.const 2 i32.add else - local.get $2 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.shl i32.const 3456 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.add - local.get $2 + local.get $3 i32.const 0 local.get $1 i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 + local.get $3 i32.const 46 i32.store16 local.get $0 i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $2 + local.get $3 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $2 + local.get $3 i32.sub - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 3456 @@ -3695,7 +3563,7 @@ local.set $1 loop $for-loop|1 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $1 @@ -3713,7 +3581,7 @@ end end local.get $0 - local.get $2 + local.get $3 i32.add else local.get $0 @@ -3723,13 +3591,13 @@ i32.const 3458 i32.const 101 i32.store16 - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $2 + local.tee $3 if i32.const 0 local.get $0 @@ -3794,7 +3662,7 @@ i32.const 3460 i32.const 45 i32.const 43 - local.get $2 + local.get $3 select i32.store16 local.get $0 @@ -3820,10 +3688,10 @@ i32.const 101 i32.store16 offset=2 local.get $1 + local.tee $2 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $1 @@ -3837,65 +3705,65 @@ local.set $1 end local.get $1 - local.tee $2 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.set $2 + local.set $3 local.get $1 - local.get $2 + local.get $3 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $2 i32.const 45 i32.const 43 local.get $5 select - i32.store16 + i32.store16 offset=4 local.get $0 local.get $1 i32.add diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index cf0dde1091..8ad9ac395c 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1907,8 +1907,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1953,29 +1951,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2000,13 +1986,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2084,35 +2066,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2124,9 +2098,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2136,12 +2108,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2149,14 +2117,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2164,14 +2128,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2179,7 +2139,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2205,23 +2165,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2233,9 +2189,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2245,12 +2199,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2258,14 +2208,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2273,14 +2219,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2288,7 +2230,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2334,9 +2276,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2346,12 +2286,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2359,14 +2295,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2374,14 +2306,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2389,7 +2317,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2416,177 +2344,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2597,89 +2493,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2690,45 +2570,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2739,23 +2611,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index 65682e549b..6817652a50 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -1734,15 +1734,15 @@ (local $4 i32) (local $5 i32) i32.const 8 - local.set $4 + local.set $5 i32.const 1056 - local.set $1 + local.set $3 loop $while-continue|0 - local.get $1 + local.get $3 i32.const 3 i32.and i32.const 0 - local.get $4 + local.get $5 select if local.get $0 @@ -1750,19 +1750,19 @@ i32.const 1 i32.add local.set $0 - local.get $1 - local.tee $3 + local.get $3 + local.tee $1 i32.const 1 i32.add - local.set $1 + local.set $3 local.get $2 - local.get $3 + local.get $1 i32.load8_u i32.store8 - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 br $while-continue|0 end end @@ -1772,124 +1772,108 @@ i32.eqz if loop $while-continue|1 - local.get $4 + local.get $5 i32.const 16 i32.ge_u if local.get $0 - local.get $1 + local.get $3 i32.load i32.store local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + local.get $3 + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + local.get $3 + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 12 - i32.add - i32.load - i32.store - local.get $1 + local.get $3 + i32.load offset=12 + i32.store offset=12 + local.get $3 i32.const 16 i32.add - local.set $1 + local.set $3 local.get $0 i32.const 16 i32.add local.set $0 - local.get $4 + local.get $5 i32.const 16 i32.sub - local.set $4 + local.set $5 br $while-continue|1 end end - local.get $4 + local.get $5 i32.const 8 i32.and if local.get $0 - local.get $1 + local.get $3 i32.load i32.store local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 4 - i32.add - i32.load - i32.store - local.get $1 + local.get $3 + i32.load offset=4 + i32.store offset=4 + local.get $3 i32.const 8 i32.add - local.set $1 + local.set $3 local.get $0 i32.const 8 i32.add local.set $0 end - local.get $4 + local.get $5 i32.const 4 i32.and if local.get $0 - local.get $1 + local.get $3 i32.load i32.store - local.get $1 + local.get $3 i32.const 4 i32.add - local.set $1 + local.set $3 local.get $0 i32.const 4 i32.add local.set $0 end - local.get $4 + local.get $5 i32.const 2 i32.and if local.get $0 - local.get $1 + local.get $3 i32.load16_u i32.store16 - local.get $1 + local.get $3 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $0 i32.const 2 i32.add local.set $0 end - local.get $4 + local.get $5 i32.const 1 i32.and if local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 end return end - local.get $4 + local.get $5 i32.const 32 i32.ge_u if @@ -1904,693 +1888,579 @@ i32.sub br_table $case0|2 $case1|2 $case2|2 $break|2 end - local.get $1 + local.get $3 i32.load - local.set $5 + local.set $4 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add - local.tee $0 + local.tee $2 i32.const 1 i32.add - local.set $2 - local.get $1 - i32.const 1 + local.set $0 + local.get $3 + i32.const 2 i32.add local.tee $1 i32.const 1 i32.add local.set $3 - local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 + local.get $1 i32.load8_u i32.store8 - local.get $4 + local.get $5 i32.const 3 i32.sub - local.set $4 + local.set $5 loop $while-continue|3 - local.get $4 + local.get $5 i32.const 17 i32.ge_u if local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.load + local.get $3 + i32.load offset=1 local.tee $2 i32.const 8 i32.shl - local.get $5 + local.get $4 i32.const 24 i32.shr_u i32.or i32.store local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 5 - i32.add - i32.load - local.tee $3 + local.get $3 + i32.load offset=5 + local.tee $1 i32.const 8 i32.shl local.get $2 i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 9 - i32.add - i32.load + local.get $3 + i32.load offset=9 local.tee $2 i32.const 8 i32.shl - local.get $3 + local.get $1 i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 13 - i32.add - i32.load - local.tee $5 + local.get $3 + i32.load offset=13 + local.tee $4 i32.const 8 i32.shl local.get $2 i32.const 24 i32.shr_u i32.or - i32.store - local.get $1 + i32.store offset=12 + local.get $3 i32.const 16 i32.add - local.set $1 + local.set $3 local.get $0 i32.const 16 i32.add local.set $0 - local.get $4 + local.get $5 i32.const 16 i32.sub - local.set $4 + local.set $5 br $while-continue|3 end end br $break|2 end - local.get $1 + local.get $3 i32.load - local.set $5 + local.set $4 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 - local.get $4 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $5 i32.const 2 i32.sub - local.set $4 + local.set $5 loop $while-continue|4 - local.get $4 + local.get $5 i32.const 18 i32.ge_u if local.get $0 - local.get $1 - i32.const 2 - i32.add - i32.load + local.get $3 + i32.load offset=2 local.tee $2 i32.const 16 i32.shl - local.get $5 + local.get $4 i32.const 16 i32.shr_u i32.or i32.store local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 6 - i32.add - i32.load - local.tee $3 + local.get $3 + i32.load offset=6 + local.tee $1 i32.const 16 i32.shl local.get $2 i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 10 - i32.add - i32.load + local.get $3 + i32.load offset=10 local.tee $2 i32.const 16 i32.shl - local.get $3 + local.get $1 i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 14 - i32.add - i32.load - local.tee $5 + local.get $3 + i32.load offset=14 + local.tee $4 i32.const 16 i32.shl local.get $2 i32.const 16 i32.shr_u i32.or - i32.store - local.get $1 + i32.store offset=12 + local.get $3 i32.const 16 i32.add - local.set $1 + local.set $3 local.get $0 i32.const 16 i32.add local.set $0 - local.get $4 + local.get $5 i32.const 16 i32.sub - local.set $4 + local.set $5 br $while-continue|4 end end br $break|2 end - local.get $1 + local.get $3 i32.load - local.set $5 + local.set $4 local.get $0 local.tee $2 i32.const 1 i32.add local.set $0 - local.get $1 - local.tee $3 + local.get $3 + local.tee $1 i32.const 1 i32.add - local.set $1 + local.set $3 local.get $2 - local.get $3 + local.get $1 i32.load8_u i32.store8 - local.get $4 + local.get $5 i32.const 1 i32.sub - local.set $4 + local.set $5 loop $while-continue|5 - local.get $4 + local.get $5 i32.const 19 i32.ge_u if local.get $0 - local.get $1 - i32.const 3 - i32.add - i32.load + local.get $3 + i32.load offset=3 local.tee $2 i32.const 24 i32.shl - local.get $5 + local.get $4 i32.const 8 i32.shr_u i32.or i32.store local.get $0 - i32.const 4 - i32.add - local.get $1 - i32.const 7 - i32.add - i32.load - local.tee $3 + local.get $3 + i32.load offset=7 + local.tee $1 i32.const 24 i32.shl local.get $2 i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add - local.get $1 - i32.const 11 - i32.add - i32.load - local.tee $2 - i32.const 24 - i32.shl - local.get $3 + local.get $3 + i32.load offset=11 + local.tee $2 + i32.const 24 + i32.shl + local.get $1 i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add - local.get $1 - i32.const 15 - i32.add - i32.load - local.tee $5 + local.get $3 + i32.load offset=15 + local.tee $4 i32.const 24 i32.shl local.get $2 i32.const 8 i32.shr_u i32.or - i32.store - local.get $1 + i32.store offset=12 + local.get $3 i32.const 16 i32.add - local.set $1 + local.set $3 local.get $0 i32.const 16 i32.add local.set $0 - local.get $4 + local.get $5 i32.const 16 i32.sub - local.set $4 + local.set $5 br $while-continue|5 end end end end - local.get $4 + local.get $5 i32.const 16 i32.and if local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 end - local.get $4 + local.get $5 i32.const 8 i32.and if local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 end - local.get $4 + local.get $5 i32.const 4 i32.and if local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 end - local.get $4 + local.get $5 i32.const 2 i32.and if local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.tee $1 + i32.const 2 i32.add + local.set $0 + local.get $3 local.tee $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 + local.set $3 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.add - local.set $1 local.get $2 - local.get $3 - i32.load8_u - i32.store8 + i32.load8_u offset=1 + i32.store8 offset=1 end - local.get $4 + local.get $5 i32.const 1 i32.and if local.get $0 - local.get $1 + local.get $3 i32.load8_u i32.store8 end diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index 758824cfb8..c525d2056b 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -2701,8 +2701,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2747,29 +2745,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2794,13 +2780,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2878,35 +2860,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2918,9 +2892,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2930,12 +2902,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2943,14 +2911,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2958,14 +2922,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2973,7 +2933,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2999,23 +2959,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -3027,9 +2983,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -3039,12 +2993,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -3052,14 +3002,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -3067,14 +3013,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -3082,7 +3024,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3128,9 +3070,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -3140,12 +3080,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -3153,14 +3089,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -3168,14 +3100,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -3183,7 +3111,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3210,177 +3138,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -3391,89 +3287,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3484,45 +3364,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3533,23 +3405,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -3775,18 +3643,18 @@ local.get $0 local.get $1 i32.add - local.tee $2 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $2 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -3803,61 +3671,61 @@ br $for-loop|0 end end - local.get $2 + local.get $3 i32.const 1 i32.shl i32.const 9760 i32.add i32.const 3145774 i32.store - local.get $2 + local.get $3 i32.const 2 i32.add else - local.get $2 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.shl i32.const 9760 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.add - local.get $2 + local.get $3 i32.const 0 local.get $1 i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 + local.get $3 i32.const 46 i32.store16 local.get $0 i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $2 + local.get $3 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $2 + local.get $3 i32.sub - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 9760 @@ -3874,7 +3742,7 @@ local.set $1 loop $for-loop|1 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $1 @@ -3892,7 +3760,7 @@ end end local.get $0 - local.get $2 + local.get $3 i32.add else local.get $0 @@ -3902,13 +3770,13 @@ i32.const 9762 i32.const 101 i32.store16 - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s - local.tee $2 + local.tee $3 if i32.const 0 local.get $1 @@ -3973,7 +3841,7 @@ i32.const 9764 i32.const 45 i32.const 43 - local.get $2 + local.get $3 select i32.store16 local.get $0 @@ -3999,10 +3867,10 @@ i32.const 101 i32.store16 offset=2 local.get $1 + local.tee $2 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $1 @@ -4016,65 +3884,65 @@ local.set $1 end local.get $1 - local.tee $2 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.set $2 + local.set $3 local.get $1 - local.get $2 + local.get $3 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $2 i32.const 45 i32.const 43 local.get $5 select - i32.store16 + i32.store16 offset=4 local.get $0 local.get $1 i32.add diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 400f653ae3..df60d9ef56 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -2321,8 +2321,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2367,29 +2365,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2414,13 +2400,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2498,35 +2480,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2538,9 +2512,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2550,12 +2522,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2563,14 +2531,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2578,14 +2542,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2593,7 +2553,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2619,23 +2579,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2647,9 +2603,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2659,12 +2613,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2672,14 +2622,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2687,14 +2633,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2702,7 +2644,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2748,9 +2690,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2760,12 +2700,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2773,14 +2709,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2788,14 +2720,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2803,7 +2731,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2830,177 +2758,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -3011,89 +2907,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3104,45 +2984,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3153,23 +3025,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -3499,18 +3367,18 @@ local.get $1 local.get $2 i32.add - local.tee $3 + local.tee $4 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $3 + local.get $4 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $3 + local.get $4 i32.lt_s if local.get $1 @@ -3527,27 +3395,27 @@ br $for-loop|0 end end - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $4 i32.const 2 i32.add else - local.get $3 + local.get $4 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 @@ -3569,19 +3437,19 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $4 i32.sub - local.tee $4 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -3598,7 +3466,7 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $4 + local.get $5 i32.lt_s if local.get $2 @@ -3616,7 +3484,7 @@ end end local.get $1 - local.get $4 + local.get $5 i32.add else local.get $1 @@ -3627,10 +3495,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $5 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 @@ -3697,12 +3565,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $5 + local.get $3 i32.const 45 i32.const 43 local.get $2 select - i32.store16 + i32.store16 offset=4 local.get $0 i32.const 2 i32.add @@ -3730,16 +3598,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $6 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -3800,12 +3668,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $6 + local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select - i32.store16 + i32.store16 offset=4 local.get $0 local.get $1 i32.add diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index c222646041..d1e3453d80 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -2403,8 +2403,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2449,29 +2447,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2496,13 +2482,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2580,35 +2562,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2620,9 +2594,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2632,12 +2604,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2645,14 +2613,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2660,14 +2624,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2675,7 +2635,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2701,23 +2661,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2729,9 +2685,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2741,12 +2695,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2754,14 +2704,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2769,14 +2715,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2784,7 +2726,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2830,9 +2772,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2842,12 +2782,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2855,14 +2791,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2870,14 +2802,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2885,7 +2813,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2912,177 +2840,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -3093,89 +2989,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3186,45 +3066,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3235,23 +3107,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -3477,18 +3345,18 @@ local.get $0 local.get $1 i32.add - local.tee $2 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $2 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -3505,61 +3373,61 @@ br $for-loop|0 end end - local.get $2 + local.get $3 i32.const 1 i32.shl i32.const 3472 i32.add i32.const 3145774 i32.store - local.get $2 + local.get $3 i32.const 2 i32.add else - local.get $2 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.shl i32.const 3472 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.add - local.get $2 + local.get $3 i32.const 0 local.get $1 i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 + local.get $3 i32.const 46 i32.store16 local.get $0 i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $2 + local.get $3 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $2 + local.get $3 i32.sub - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 3472 @@ -3576,7 +3444,7 @@ local.set $1 loop $for-loop|1 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $1 @@ -3594,7 +3462,7 @@ end end local.get $0 - local.get $2 + local.get $3 i32.add else local.get $0 @@ -3604,13 +3472,13 @@ i32.const 3474 i32.const 101 i32.store16 - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $2 + local.tee $3 if i32.const 0 local.get $0 @@ -3675,7 +3543,7 @@ i32.const 3476 i32.const 45 i32.const 43 - local.get $2 + local.get $3 select i32.store16 local.get $0 @@ -3701,10 +3569,10 @@ i32.const 101 i32.store16 offset=2 local.get $1 + local.tee $2 i32.const 4 i32.add - local.tee $3 - local.get $2 + local.get $3 i32.const 1 i32.sub local.tee $1 @@ -3718,65 +3586,65 @@ local.set $1 end local.get $1 - local.tee $2 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.set $2 + local.set $3 local.get $1 - local.get $2 + local.get $3 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $2 i32.const 45 i32.const 43 local.get $5 select - i32.store16 + i32.store16 offset=4 local.get $0 local.get $1 i32.add diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index 34c2b1b9bc..3bf86e182b 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -2943,8 +2943,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2989,29 +2987,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3036,13 +3022,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -3120,35 +3102,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -3160,9 +3134,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -3172,12 +3144,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -3185,14 +3153,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -3200,14 +3164,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -3215,7 +3175,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3241,23 +3201,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -3269,9 +3225,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -3281,12 +3235,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -3294,14 +3244,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -3309,14 +3255,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -3324,7 +3266,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3370,9 +3312,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -3382,12 +3322,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -3395,14 +3331,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -3410,14 +3342,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -3425,7 +3353,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3452,177 +3380,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -3633,89 +3529,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3726,45 +3606,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3775,23 +3647,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 791a367808..00bf8572b5 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -3023,8 +3023,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -3069,29 +3067,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3116,13 +3102,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -3200,35 +3182,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -3240,9 +3214,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -3252,12 +3224,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -3265,14 +3233,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -3280,14 +3244,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -3295,7 +3255,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3321,23 +3281,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -3349,9 +3305,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -3361,12 +3315,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -3374,14 +3324,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -3389,14 +3335,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -3404,7 +3346,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3450,9 +3392,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -3462,12 +3402,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -3475,14 +3411,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -3490,14 +3422,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -3505,7 +3433,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3532,177 +3460,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -3713,89 +3609,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3806,45 +3686,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3855,23 +3727,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index 70b41cad98..0f92761295 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -232,9 +232,7 @@ end local.get $0 i32.load offset=4 - i32.const 4 - i32.add - i32.load + i32.load offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index c157450e3d..a887feca7c 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -2182,20 +2182,16 @@ global.set $std/array-literal/i local.get $0 i32.load offset=4 - i32.const 1 - i32.add global.get $std/array-literal/i - i32.store8 + i32.store8 offset=1 global.get $std/array-literal/i i32.const 1 i32.add global.set $std/array-literal/i local.get $0 i32.load offset=4 - i32.const 2 - i32.add global.get $std/array-literal/i - i32.store8 + i32.store8 offset=2 local.get $0 global.set $std/array-literal/dynamicArrayI8 global.get $~lib/memory/__stack_pointer @@ -2287,20 +2283,16 @@ global.set $std/array-literal/i local.get $0 i32.load offset=4 - i32.const 4 - i32.add global.get $std/array-literal/i - i32.store + i32.store offset=4 global.get $std/array-literal/i i32.const 1 i32.add global.set $std/array-literal/i local.get $0 i32.load offset=4 - i32.const 8 - i32.add global.get $std/array-literal/i - i32.store + i32.store offset=8 local.get $0 global.set $std/array-literal/dynamicArrayI32 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index d5b68151a2..cb135dc2da 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -2496,8 +2496,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2542,29 +2540,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2589,13 +2575,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2673,35 +2655,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2713,9 +2687,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2725,12 +2697,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2738,14 +2706,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2753,14 +2717,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2768,7 +2728,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2794,23 +2754,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2822,9 +2778,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2834,12 +2788,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2847,14 +2797,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2862,14 +2808,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2877,7 +2819,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2923,9 +2865,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2935,12 +2875,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2948,14 +2884,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2963,14 +2895,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2978,7 +2906,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3005,177 +2933,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -3186,89 +3082,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3279,45 +3159,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3328,23 +3200,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -10240,18 +10108,18 @@ local.get $1 local.get $2 i32.add - local.tee $3 + local.tee $4 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $3 + local.get $4 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $3 + local.get $4 i32.lt_s if local.get $1 @@ -10268,27 +10136,27 @@ br $for-loop|0 end end - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $4 i32.const 2 i32.add else - local.get $3 + local.get $4 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 @@ -10310,19 +10178,19 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $4 i32.sub - local.tee $4 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -10339,7 +10207,7 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $4 + local.get $5 i32.lt_s if local.get $2 @@ -10357,7 +10225,7 @@ end end local.get $1 - local.get $4 + local.get $5 i32.add else local.get $1 @@ -10368,10 +10236,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $5 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 @@ -10438,12 +10306,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $5 + local.get $3 i32.const 45 i32.const 43 local.get $2 select - i32.store16 + i32.store16 offset=4 local.get $0 i32.const 2 i32.add @@ -10471,16 +10339,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $6 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -10541,12 +10409,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $6 + local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select - i32.store16 + i32.store16 offset=4 local.get $0 local.get $1 i32.add diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 73cdf8ad04..daa594766c 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -1725,8 +1725,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1771,29 +1769,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1818,13 +1804,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -1902,35 +1884,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -1942,9 +1916,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -1954,12 +1926,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -1967,14 +1935,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -1982,14 +1946,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -1997,7 +1957,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2023,23 +1983,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2051,9 +2007,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2063,12 +2017,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2076,14 +2026,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2091,14 +2037,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2106,7 +2048,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2152,9 +2094,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2164,12 +2104,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2177,14 +2113,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2192,14 +2124,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2207,7 +2135,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2234,177 +2162,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2415,89 +2311,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2508,45 +2388,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2557,23 +2429,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index c5d958ca80..233de2ac6b 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -2723,8 +2723,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2769,29 +2767,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2816,13 +2802,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2900,35 +2882,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2940,9 +2914,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2952,12 +2924,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2965,14 +2933,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2980,14 +2944,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2995,7 +2955,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3021,23 +2981,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -3049,9 +3005,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -3061,12 +3015,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -3074,14 +3024,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -3089,14 +3035,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -3104,7 +3046,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3150,9 +3092,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -3162,12 +3102,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -3175,14 +3111,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -3190,14 +3122,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -3205,7 +3133,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3232,177 +3160,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -3413,89 +3309,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3506,45 +3386,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3555,23 +3427,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index ece1bb0c8e..a229df008e 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -2039,8 +2039,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2085,29 +2083,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2132,13 +2118,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2216,35 +2198,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2256,9 +2230,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2268,12 +2240,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2281,14 +2249,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2296,14 +2260,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2311,7 +2271,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2337,23 +2297,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2365,9 +2321,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2377,12 +2331,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2390,14 +2340,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2405,14 +2351,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2420,7 +2362,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2466,9 +2408,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2478,12 +2418,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2491,14 +2427,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2506,14 +2438,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2521,7 +2449,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2548,177 +2476,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2729,89 +2625,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2822,45 +2702,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2871,23 +2743,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/std/pointer.optimized.wat b/tests/compiler/std/pointer.optimized.wat index a21e0db674..8868412514 100644 --- a/tests/compiler/std/pointer.optimized.wat +++ b/tests/compiler/std/pointer.optimized.wat @@ -65,29 +65,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -112,13 +100,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -196,28 +180,20 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 1 - i32.add - local.set $2 local.get $1 - i32.const 1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.add - local.set $3 - local.get $0 + local.set $0 local.get $1 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 + i32.const 2 i32.add - local.set $0 - local.get $3 + local.tee $3 i32.const 1 i32.add local.set $1 @@ -236,9 +212,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $2 i32.const 8 i32.shl @@ -248,12 +222,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $3 i32.const 8 i32.shl @@ -261,14 +231,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $2 i32.const 8 i32.shl @@ -276,14 +242,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -291,7 +253,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -317,23 +279,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $4 i32.const 2 i32.sub @@ -345,9 +303,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $2 i32.const 16 i32.shl @@ -357,12 +313,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $3 i32.const 16 i32.shl @@ -370,14 +322,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $2 i32.const 16 i32.shl @@ -385,14 +333,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -400,7 +344,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -446,9 +390,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $2 i32.const 24 i32.shl @@ -458,12 +400,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $3 i32.const 24 i32.shl @@ -471,14 +409,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $2 i32.const 24 i32.shl @@ -486,14 +420,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -501,7 +431,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -528,177 +458,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $4 i32.const 8 @@ -709,89 +607,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $4 i32.const 4 @@ -802,45 +684,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $4 i32.const 2 @@ -851,23 +725,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $2 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $2 + i32.const 2 i32.add local.set $1 - local.get $2 local.get $3 - i32.load8_u - i32.store8 + local.get $2 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $4 i32.const 1 @@ -1322,9 +1192,7 @@ unreachable end global.get $std/pointer/buf - i32.const 4 - i32.add - f32.load + f32.load offset=4 f32.const 1.2000000476837158 f32.ne if @@ -1348,9 +1216,7 @@ unreachable end global.get $std/pointer/buf - i32.const 4 - i32.add - f32.load + f32.load offset=4 f32.const 1.2000000476837158 f32.ne if @@ -1386,13 +1252,13 @@ unreachable end global.get $std/pointer/buf + local.tee $3 i32.const 8 i32.add - local.tee $1 f32.const 1.2999999523162842 f32.store - local.get $1 - f32.load + local.get $3 + f32.load offset=8 f32.const 1.2999999523162842 f32.ne if @@ -1404,9 +1270,7 @@ unreachable end global.get $std/pointer/buf - i32.const 8 - i32.add - f32.load + f32.load offset=8 f32.const 1.2999999523162842 f32.ne if diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 49d3c21146..eca28f9084 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -2092,8 +2092,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2138,29 +2136,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2185,13 +2171,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2269,35 +2251,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2309,9 +2283,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2321,12 +2293,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2334,14 +2302,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2349,14 +2313,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2364,7 +2324,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2390,23 +2350,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2418,9 +2374,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2430,12 +2384,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2443,14 +2393,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2458,14 +2404,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2473,7 +2415,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2519,9 +2461,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2531,12 +2471,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2544,14 +2480,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2559,14 +2491,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2574,7 +2502,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2601,177 +2529,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2782,89 +2678,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2875,45 +2755,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2924,23 +2796,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 9e077318d8..b00cdc08c5 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -1461,8 +1461,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1507,29 +1505,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1554,13 +1540,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -1638,35 +1620,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -1678,9 +1652,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -1690,12 +1662,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -1703,14 +1671,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -1718,14 +1682,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -1733,7 +1693,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1759,23 +1719,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -1787,9 +1743,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -1799,12 +1753,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -1812,14 +1762,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -1827,14 +1773,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -1842,7 +1784,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1888,9 +1830,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -1900,12 +1840,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -1913,14 +1849,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -1928,14 +1860,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -1943,7 +1871,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1970,177 +1898,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2151,89 +2047,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2244,45 +2124,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2293,23 +2165,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index 1e37320144..1118bb31ce 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -158,10 +158,8 @@ unreachable end local.get $0 - i32.const 4 - i32.add local.get $1 - i32.store + i32.store offset=4 ) (func $~lib/rt/itcms/visitRoots (local $0 i32) @@ -1862,8 +1860,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1908,29 +1904,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1955,13 +1939,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2039,35 +2019,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2079,9 +2051,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2091,12 +2061,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2104,14 +2070,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2119,14 +2081,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2134,7 +2092,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2160,23 +2118,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2188,9 +2142,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2200,12 +2152,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2213,14 +2161,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2228,14 +2172,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2243,7 +2183,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2289,9 +2229,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2301,12 +2239,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2314,14 +2248,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2329,14 +2259,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2344,7 +2270,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2371,177 +2297,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2552,89 +2446,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2645,45 +2523,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2694,23 +2564,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -3870,11 +3736,9 @@ i32.const 1 call $~lib/rt/itcms/__link local.get $6 - i32.const 4 - i32.add call $std/staticarray/Ref#constructor local.tee $0 - i32.store + i32.store offset=4 local.get $6 local.get $0 i32.const 1 diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 7f378327f0..c62779b7b9 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -2322,8 +2322,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2368,29 +2366,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2415,13 +2401,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2499,35 +2481,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2539,9 +2513,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2551,12 +2523,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2564,14 +2532,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2579,14 +2543,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2594,7 +2554,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2620,23 +2580,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2648,9 +2604,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2660,12 +2614,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2673,14 +2623,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2688,14 +2634,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2703,7 +2645,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2749,9 +2691,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2761,12 +2701,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2774,14 +2710,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2789,14 +2721,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2804,7 +2732,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2831,177 +2759,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -3012,89 +2908,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3105,45 +2985,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3154,23 +3026,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -6465,9 +6333,7 @@ i32.const 2 i32.eq local.get $5 - i32.const 2 - i32.add - i32.load16_u + i32.load16_u offset=2 local.tee $9 i32.const 64512 i32.and @@ -6476,9 +6342,7 @@ select br_if $__inlined_func$~lib/string/String#codePointAt0 local.get $5 - i32.const 2 - i32.add - i32.load16_u offset=2 + i32.load16_u offset=4 local.tee $7 i32.const 64512 i32.and @@ -6527,9 +6391,7 @@ i32.const 3 i32.eq local.get $5 - i32.const 4 - i32.add - i32.load16_u + i32.load16_u offset=4 local.tee $9 i32.const 64512 i32.and @@ -6538,9 +6400,7 @@ select br_if $__inlined_func$~lib/string/String#codePointAt1 local.get $5 - i32.const 4 - i32.add - i32.load16_u offset=2 + i32.load16_u offset=6 local.tee $5 i32.const 64512 i32.and @@ -6637,9 +6497,7 @@ i32.const 2 i32.eq local.get $5 - i32.const 2 - i32.add - i32.load16_u + i32.load16_u offset=2 local.tee $9 i32.const 64512 i32.and @@ -6648,9 +6506,7 @@ select br_if $__inlined_func$~lib/string/String#codePointAt3 local.get $5 - i32.const 2 - i32.add - i32.load16_u offset=2 + i32.load16_u offset=4 local.tee $4 i32.const 64512 i32.and @@ -6699,9 +6555,7 @@ i32.const 3 i32.eq local.get $5 - i32.const 4 - i32.add - i32.load16_u + i32.load16_u offset=4 local.tee $9 i32.const 64512 i32.and @@ -6710,9 +6564,7 @@ select br_if $__inlined_func$~lib/string/String#codePointAt4 local.get $5 - i32.const 4 - i32.add - i32.load16_u offset=2 + i32.load16_u offset=6 local.tee $5 i32.const 64512 i32.and diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index b51d66f973..4552bec4db 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -1744,8 +1744,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1790,29 +1788,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1837,13 +1823,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -1921,35 +1903,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -1961,9 +1935,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -1973,12 +1945,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -1986,14 +1954,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2001,14 +1965,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2016,7 +1976,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2042,23 +2002,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2070,9 +2026,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2082,12 +2036,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2095,14 +2045,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2110,14 +2056,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2125,7 +2067,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2171,9 +2113,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2183,12 +2123,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2196,14 +2132,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2211,14 +2143,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2226,7 +2154,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2253,177 +2181,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2434,89 +2330,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2527,45 +2407,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2576,23 +2448,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 77a1e6881f..c3b9280971 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -2817,8 +2817,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2863,29 +2861,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2910,13 +2896,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2994,35 +2976,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -3034,9 +3008,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -3046,12 +3018,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -3059,14 +3027,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -3074,14 +3038,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -3089,7 +3049,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3115,23 +3075,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -3143,9 +3099,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -3155,12 +3109,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -3168,14 +3118,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -3183,14 +3129,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -3198,7 +3140,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3244,9 +3186,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -3256,12 +3196,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -3269,14 +3205,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -3284,14 +3216,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -3299,7 +3227,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -3326,177 +3254,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -3507,89 +3403,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3600,45 +3480,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3649,23 +3521,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -7041,18 +6909,18 @@ local.get $1 local.get $2 i32.add - local.tee $3 + local.tee $4 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $3 + local.get $4 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $3 + local.get $4 i32.lt_s if local.get $1 @@ -7069,27 +6937,27 @@ br $for-loop|0 end end - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $4 i32.const 2 i32.add else - local.get $3 + local.get $4 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 @@ -7111,19 +6979,19 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $4 i32.sub - local.tee $4 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -7140,7 +7008,7 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $4 + local.get $5 i32.lt_s if local.get $2 @@ -7158,7 +7026,7 @@ end end local.get $1 - local.get $4 + local.get $5 i32.add else local.get $1 @@ -7169,10 +7037,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $5 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 @@ -7239,12 +7107,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $5 + local.get $3 i32.const 45 i32.const 43 local.get $2 select - i32.store16 + i32.store16 offset=4 local.get $0 i32.const 2 i32.add @@ -7272,16 +7140,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $6 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -7342,12 +7210,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $6 + local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select - i32.store16 + i32.store16 offset=4 local.get $0 local.get $1 i32.add @@ -8194,9 +8062,7 @@ i32.const 2 i32.eq local.get $1 - i32.const 2 - i32.add - i32.load16_u + i32.load16_u offset=2 local.tee $0 i32.const 64512 i32.and @@ -8205,9 +8071,7 @@ select br_if $__inlined_func$~lib/string/String#codePointAt local.get $1 - i32.const 2 - i32.add - i32.load16_u offset=2 + i32.load16_u offset=4 local.tee $1 i32.const 64512 i32.and diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 7c9e6e1d46..5fd9c9e52e 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -2266,8 +2266,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -2312,29 +2310,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2359,13 +2345,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2443,35 +2425,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2483,9 +2457,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2495,12 +2467,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2508,14 +2476,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2523,14 +2487,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2538,7 +2498,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2564,23 +2524,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2592,9 +2548,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2604,12 +2558,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2617,14 +2567,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2632,14 +2578,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2647,7 +2589,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2693,9 +2635,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2705,12 +2645,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2718,14 +2654,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2733,14 +2665,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2748,7 +2676,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2775,177 +2703,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2956,89 +2852,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -3049,45 +2929,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -3098,23 +2970,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index f63c688450..b53211db20 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -4051,8 +4051,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -4097,29 +4095,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -4144,13 +4130,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -4228,35 +4210,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -4268,9 +4242,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -4280,12 +4252,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -4293,14 +4261,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -4308,14 +4272,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -4323,7 +4283,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -4349,23 +4309,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -4377,9 +4333,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -4389,12 +4343,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -4402,14 +4352,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -4417,14 +4363,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -4432,7 +4374,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -4478,9 +4420,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -4490,12 +4430,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -4503,14 +4439,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -4518,14 +4450,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -4533,7 +4461,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -4560,177 +4488,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -4741,89 +4637,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -4834,45 +4714,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -4883,23 +4755,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -27154,18 +27022,18 @@ local.get $1 local.get $2 i32.add - local.tee $3 + local.tee $4 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $3 + local.get $4 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $3 + local.get $4 i32.lt_s if local.get $1 @@ -27182,27 +27050,27 @@ br $for-loop|0 end end - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $4 i32.const 2 i32.add else - local.get $3 + local.get $4 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 @@ -27224,19 +27092,19 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $4 i32.sub - local.tee $4 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -27253,7 +27121,7 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $4 + local.get $5 i32.lt_s if local.get $2 @@ -27271,7 +27139,7 @@ end end local.get $1 - local.get $4 + local.get $5 i32.add else local.get $1 @@ -27282,10 +27150,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $5 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 @@ -27352,12 +27220,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $5 + local.get $3 i32.const 45 i32.const 43 local.get $2 select - i32.store16 + i32.store16 offset=4 local.get $0 i32.const 2 i32.add @@ -27385,16 +27253,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $6 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -27455,12 +27323,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $6 + local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select - i32.store16 + i32.store16 offset=4 local.get $0 local.get $1 i32.add diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index 9a85c05526..b5163d3bf2 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -1825,8 +1825,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1871,29 +1869,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1918,13 +1904,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2002,35 +1984,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2042,9 +2016,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2054,12 +2026,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2067,14 +2035,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2082,14 +2046,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2097,7 +2057,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2123,23 +2083,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2151,9 +2107,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2163,12 +2117,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2176,14 +2126,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2191,14 +2137,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2206,7 +2148,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2252,9 +2194,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2264,12 +2204,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2277,14 +2213,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2292,14 +2224,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2307,7 +2235,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2334,177 +2262,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2515,89 +2411,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2608,45 +2488,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2657,23 +2529,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index adbbf628c2..0f292704ec 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -1923,8 +1923,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1969,29 +1967,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2016,13 +2002,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -2100,35 +2082,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -2140,9 +2114,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -2152,12 +2124,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -2165,14 +2133,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -2180,14 +2144,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -2195,7 +2155,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2221,23 +2181,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -2249,9 +2205,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -2261,12 +2215,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -2274,14 +2224,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -2289,14 +2235,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -2304,7 +2246,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2350,9 +2292,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2362,12 +2302,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2375,14 +2311,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2390,14 +2322,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2405,7 +2333,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2432,177 +2360,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2613,89 +2509,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2706,45 +2586,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2755,23 +2627,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -3929,18 +3797,18 @@ local.get $1 local.get $2 i32.add - local.tee $3 + local.tee $4 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $3 + local.get $4 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $3 + local.get $4 i32.lt_s if local.get $1 @@ -3957,27 +3825,27 @@ br $for-loop|0 end end - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $4 i32.const 2 i32.add else - local.get $3 + local.get $4 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 @@ -3999,19 +3867,19 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $4 i32.sub - local.tee $4 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -4028,7 +3896,7 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $4 + local.get $5 i32.lt_s if local.get $2 @@ -4046,7 +3914,7 @@ end end local.get $1 - local.get $4 + local.get $5 i32.add else local.get $1 @@ -4057,10 +3925,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $5 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 @@ -4127,12 +3995,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $5 + local.get $3 i32.const 45 i32.const 43 local.get $2 select - i32.store16 + i32.store16 offset=4 local.get $0 i32.const 2 i32.add @@ -4160,16 +4028,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $6 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -4230,12 +4098,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $6 + local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select - i32.store16 + i32.store16 offset=4 local.get $0 local.get $1 i32.add diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 9f3a9eab01..79b43e2320 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -1610,8 +1610,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) loop $while-continue|0 local.get $1 i32.const 3 @@ -1656,29 +1654,17 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 8 - i32.add - i32.load - i32.store + i32.load offset=8 + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 12 - i32.add - i32.load - i32.store + i32.load offset=12 + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1703,13 +1689,9 @@ i32.load i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 4 - i32.add - i32.load - i32.store + i32.load offset=4 + i32.store offset=4 local.get $1 i32.const 8 i32.add @@ -1787,35 +1769,27 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 + local.get $1 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $0 + i32.const 2 i32.add local.tee $3 i32.const 1 i32.add - local.set $6 + local.set $0 local.get $1 - i32.const 1 + i32.const 2 i32.add local.tee $4 i32.const 1 i32.add - local.set $7 + local.set $1 local.get $3 local.get $4 i32.load8_u i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $0 - local.get $7 - i32.const 1 - i32.add - local.set $1 - local.get $6 - local.get $7 - i32.load8_u - i32.store8 local.get $2 i32.const 3 i32.sub @@ -1827,9 +1801,7 @@ if local.get $0 local.get $1 - i32.const 1 - i32.add - i32.load + i32.load offset=1 local.tee $3 i32.const 8 i32.shl @@ -1839,12 +1811,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 5 - i32.add - i32.load + i32.load offset=5 local.tee $4 i32.const 8 i32.shl @@ -1852,14 +1820,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 9 - i32.add - i32.load + i32.load offset=9 local.tee $3 i32.const 8 i32.shl @@ -1867,14 +1831,10 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 13 - i32.add - i32.load + i32.load offset=13 local.tee $5 i32.const 8 i32.shl @@ -1882,7 +1842,7 @@ i32.const 24 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -1908,23 +1868,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $2 i32.const 2 i32.sub @@ -1936,9 +1892,7 @@ if local.get $0 local.get $1 - i32.const 2 - i32.add - i32.load + i32.load offset=2 local.tee $3 i32.const 16 i32.shl @@ -1948,12 +1902,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 6 - i32.add - i32.load + i32.load offset=6 local.tee $4 i32.const 16 i32.shl @@ -1961,14 +1911,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 10 - i32.add - i32.load + i32.load offset=10 local.tee $3 i32.const 16 i32.shl @@ -1976,14 +1922,10 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 14 - i32.add - i32.load + i32.load offset=14 local.tee $5 i32.const 16 i32.shl @@ -1991,7 +1933,7 @@ i32.const 16 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2037,9 +1979,7 @@ if local.get $0 local.get $1 - i32.const 3 - i32.add - i32.load + i32.load offset=3 local.tee $3 i32.const 24 i32.shl @@ -2049,12 +1989,8 @@ i32.or i32.store local.get $0 - i32.const 4 - i32.add local.get $1 - i32.const 7 - i32.add - i32.load + i32.load offset=7 local.tee $4 i32.const 24 i32.shl @@ -2062,14 +1998,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=4 local.get $0 - i32.const 8 - i32.add local.get $1 - i32.const 11 - i32.add - i32.load + i32.load offset=11 local.tee $3 i32.const 24 i32.shl @@ -2077,14 +2009,10 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=8 local.get $0 - i32.const 12 - i32.add local.get $1 - i32.const 15 - i32.add - i32.load + i32.load offset=15 local.tee $5 i32.const 24 i32.shl @@ -2092,7 +2020,7 @@ i32.const 8 i32.shr_u i32.or - i32.store + i32.store offset=12 local.get $1 i32.const 16 i32.add @@ -2119,177 +2047,145 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 8 @@ -2300,89 +2196,73 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 4 @@ -2393,45 +2273,37 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 local.get $0 local.get $1 i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 2 @@ -2442,23 +2314,19 @@ i32.load8_u i32.store8 local.get $0 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 + local.tee $4 + i32.const 2 i32.add local.set $0 local.get $1 - i32.const 1 - i32.add - local.tee $4 - i32.const 1 + local.tee $3 + i32.const 2 i32.add local.set $1 - local.get $3 local.get $4 - i32.load8_u - i32.store8 + local.get $3 + i32.load8_u offset=1 + i32.store8 offset=1 end local.get $2 i32.const 1 @@ -2788,18 +2656,18 @@ local.get $1 local.get $2 i32.add - local.tee $3 + local.tee $4 i32.const 21 i32.le_s i32.const 0 local.get $1 - local.get $3 + local.get $4 i32.le_s select if (result i32) loop $for-loop|0 local.get $1 - local.get $3 + local.get $4 i32.lt_s if local.get $1 @@ -2816,27 +2684,27 @@ br $for-loop|0 end end - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $4 i32.const 2 i32.add else - local.get $3 + local.get $4 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $4 i32.const 1 i32.shl local.get $0 @@ -2858,19 +2726,19 @@ i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $4 i32.sub - local.tee $4 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -2887,7 +2755,7 @@ local.set $2 loop $for-loop|1 local.get $2 - local.get $4 + local.get $5 i32.lt_s if local.get $2 @@ -2905,7 +2773,7 @@ end end local.get $1 - local.get $4 + local.get $5 i32.add else local.get $1 @@ -2916,10 +2784,10 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $5 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 @@ -2986,12 +2854,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $5 + local.get $3 i32.const 45 i32.const 43 local.get $2 select - i32.store16 + i32.store16 offset=4 local.get $0 i32.const 2 i32.add @@ -3019,16 +2887,16 @@ i32.const 101 i32.store16 offset=2 local.get $0 + local.tee $3 i32.const 4 i32.add - local.tee $6 - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -3089,12 +2957,12 @@ i32.add local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $6 + local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select - i32.store16 + i32.store16 offset=4 local.get $0 local.get $1 i32.add From 0b09203c8e1260dc2682d32f8086d2d694ef2266 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 18 Aug 2021 10:29:47 +0300 Subject: [PATCH 12/32] add ArrayCopy --- src/module.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/module.ts b/src/module.ts index f093ce0f66..1b07c5ea48 100644 --- a/src/module.ts +++ b/src/module.ts @@ -146,6 +146,7 @@ export enum ExpressionId { ArrayGet = 62 /* _BinaryenArrayGetId */, ArraySet = 63 /* _BinaryenArraySetId */, ArrayLen = 64 /* _BinaryenArrayLenId */, + ArrayCopy = 65 /* _BinaryenArrayCopyId */, RefAs = 66 /* _BinaryenRefAsId */ } From 54ccc1d552df5278e80208ae6cc2ac19428eaff2 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 18 Aug 2021 10:50:53 +0300 Subject: [PATCH 13/32] use local-cse only for optimizeLevel >= 2 || shrinkLevel >= 1 --- src/module.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/module.ts b/src/module.ts index 1b07c5ea48..64517147f8 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2300,8 +2300,9 @@ export class Module { } passes.push("simplify-locals-notee-nostructure"); passes.push("vacuum"); - passes.push("local-cse"); - + if (optimizeLevel >= 2 || shrinkLevel >= 1) { + passes.push("local-cse"); + } passes.push("reorder-locals"); passes.push("remove-unused-brs"); passes.push("coalesce-locals"); From 55a51b8859212b99286f9fd60490f580902a7c55 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 18 Aug 2021 11:03:32 +0300 Subject: [PATCH 14/32] better? --- src/module.ts | 1 + tests/compiler/builtins.optimized.wat | 3 +- tests/compiler/call-super.optimized.wat | 5 +- tests/compiler/class-implements.optimized.wat | 5 +- .../class-overloading-cast.optimized.wat | 5 +- .../compiler/class-overloading.optimized.wat | 5 +- tests/compiler/class.optimized.wat | 5 +- tests/compiler/constructor.optimized.wat | 5 +- tests/compiler/do.optimized.wat | 5 +- .../empty-exportruntime.optimized.wat | 5 +- tests/compiler/empty-new.optimized.wat | 5 +- tests/compiler/exports.optimized.wat | 5 +- .../exportstar-rereexport.optimized.wat | 5 +- .../extends-baseaggregate.optimized.wat | 5 +- .../compiler/extends-recursive.optimized.wat | 5 +- .../field-initialization.optimized.wat | 5 +- tests/compiler/for.optimized.wat | 5 +- tests/compiler/function-call.optimized.wat | 5 +- .../function-expression.optimized.wat | 5 +- tests/compiler/getter-call.optimized.wat | 5 +- .../implicit-getter-setter.optimized.wat | 5 +- tests/compiler/infer-array.optimized.wat | 5 +- tests/compiler/infer-generic.optimized.wat | 37 +- tests/compiler/inlining.optimized.wat | 5 +- tests/compiler/instanceof-class.optimized.wat | 5 +- tests/compiler/issues/1095.optimized.wat | 5 +- tests/compiler/issues/1225.optimized.wat | 5 +- tests/compiler/issues/1699.optimized.wat | 85 +- tests/compiler/logical.optimized.wat | 5 +- tests/compiler/managed-cast.optimized.wat | 5 +- tests/compiler/memset.optimized.wat | 2 +- tests/compiler/new.optimized.wat | 5 +- tests/compiler/number.optimized.wat | 5 +- tests/compiler/object-literal.optimized.wat | 5 +- .../optional-typeparameters.optimized.wat | 5 +- tests/compiler/reexport.optimized.wat | 5 +- tests/compiler/rereexport.optimized.wat | 5 +- tests/compiler/resolve-access.optimized.wat | 5 +- tests/compiler/resolve-binary.optimized.wat | 10 +- .../resolve-elementaccess.optimized.wat | 5 +- .../resolve-function-expression.optimized.wat | 5 +- tests/compiler/resolve-nested.optimized.wat | 5 +- tests/compiler/resolve-new.optimized.wat | 5 +- .../resolve-propertyaccess.optimized.wat | 5 +- tests/compiler/resolve-ternary.optimized.wat | 5 +- tests/compiler/resolve-unary.optimized.wat | 5 +- tests/compiler/rt/finalize.optimized.wat | 5 +- tests/compiler/rt/instanceof.optimized.wat | 5 +- .../runtime-incremental-export.optimized.wat | 5 +- .../rt/runtime-stub-export.optimized.wat | 4 +- tests/compiler/std-wasi/console.optimized.wat | 5 +- tests/compiler/std-wasi/crypto.optimized.wat | 5 +- tests/compiler/std-wasi/process.optimized.wat | 5 +- .../compiler/std/array-literal.optimized.wat | 5 +- tests/compiler/std/array.optimized.wat | 2576 +++++++++-------- tests/compiler/std/arraybuffer.optimized.wat | 5 +- tests/compiler/std/dataview.optimized.wat | 5 +- tests/compiler/std/date.optimized.wat | 5 +- tests/compiler/std/map.optimized.wat | 5 +- tests/compiler/std/math.optimized.wat | 777 +++-- tests/compiler/std/new.optimized.wat | 5 +- .../std/operator-overloading.optimized.wat | 313 +- tests/compiler/std/pointer.optimized.wat | 115 +- tests/compiler/std/set.optimized.wat | 5 +- tests/compiler/std/static-array.optimized.wat | 5 +- tests/compiler/std/staticarray.optimized.wat | 5 +- .../std/string-casemapping.optimized.wat | 5 +- .../std/string-encoding.optimized.wat | 5 +- tests/compiler/std/string.optimized.wat | 5 +- tests/compiler/std/symbol.optimized.wat | 5 +- tests/compiler/std/typedarray.optimized.wat | 268 +- tests/compiler/std/uri.optimized.wat | 78 +- tests/compiler/super-inline.optimized.wat | 5 +- tests/compiler/templateliteral.optimized.wat | 5 +- tests/compiler/throw.optimized.wat | 14 +- tests/compiler/typeof.optimized.wat | 5 +- tests/compiler/wasi/trace.optimized.wat | 8 +- tests/compiler/while.optimized.wat | 5 +- 78 files changed, 2337 insertions(+), 2269 deletions(-) diff --git a/src/module.ts b/src/module.ts index 64517147f8..d852c6d2d8 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2264,6 +2264,7 @@ export class Module { if (optimizeLevel >= 3 || shrinkLevel >= 1) { passes.push("rse"); passes.push("vacuum"); + passes.push("local-cse"); passes.push("ssa-nomerge"); passes.push("simplify-globals-optimizing"); passes.push("remove-unused-brs"); diff --git a/tests/compiler/builtins.optimized.wat b/tests/compiler/builtins.optimized.wat index e51cfe4916..df61b5b695 100644 --- a/tests/compiler/builtins.optimized.wat +++ b/tests/compiler/builtins.optimized.wat @@ -691,9 +691,10 @@ f64.const 24 call $~lib/builtins/trace global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 1376 i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 1376 i32.store offset=4 i32.const 1376 diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index 0347d4aa18..c1a35f7016 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -1079,7 +1079,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1272,13 +1273,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index 47d0e59ad4..3bb34d32c7 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -1101,7 +1101,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1210,13 +1211,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index a476c25ea6..2a0569c480 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -1115,7 +1115,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1224,13 +1225,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index 67e7a6d41b..80ec4e221b 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -1139,7 +1139,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1248,13 +1249,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index f19ff074c9..6b28ef8193 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -1091,7 +1091,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1460,13 +1461,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index 5046a115b0..8681487ce4 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -1156,7 +1156,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1349,13 +1350,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index 0ec719b7d6..769ebdd80b 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -1079,7 +1079,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1684,13 +1685,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 627194dd04..1fe41540de 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -1097,7 +1097,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1290,13 +1291,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index 52cfbbde86..53bb82de6d 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -1075,7 +1075,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1242,13 +1243,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index 33752af084..c891abccb7 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -1129,7 +1129,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1238,13 +1239,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index 6ed7bd9500..98532485b9 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -1130,7 +1130,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1427,13 +1428,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index 751deb1aed..21397c72fe 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -1097,7 +1097,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1466,13 +1467,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index 169c8e6ab5..d9e47c1ab2 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -1086,7 +1086,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1195,13 +1196,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 76eef70f93..698c7420d1 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -1104,7 +1104,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1473,13 +1474,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index c9d712467e..3714775f39 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -1079,7 +1079,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1686,13 +1687,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index c78c80542e..4a8e784af0 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -1117,7 +1117,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1375,13 +1376,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index 0a4c710fde..a26ecf5317 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -1150,7 +1150,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1358,13 +1359,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 292a3ae456..01065000cb 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -1082,7 +1082,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1290,13 +1291,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index c267287ad2..bc89635562 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -1092,7 +1092,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1201,13 +1202,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index 328ff3b96e..cce194c89f 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -1118,7 +1118,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1311,13 +1312,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index b86e3e69ea..1420feb0b8 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -1104,7 +1104,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1234,51 +1235,51 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 0 i32.store offset=8 - local.get $0 + local.get $3 i32.const 1152 i32.store - local.get $0 + local.get $3 i32.const 1200 i32.store offset=4 i32.const 1164 i32.load - local.set $1 + local.set $0 loop $for-loop|0 - local.get $1 + local.get $0 i32.const 1164 i32.load - local.tee $0 + local.tee $3 local.get $0 - local.get $1 - i32.gt_s + local.get $3 + i32.lt_s select - local.get $2 + local.get $1 i32.gt_s if - local.get $3 + local.get $2 i32.const 1156 i32.load - local.get $2 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.get $2 + local.get $1 i32.const 1152 i32.const 1200 i32.load call_indirect $0 (type $i32_f32_i32_i32_=>_i32) - local.set $3 - local.get $2 + local.set $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end @@ -1362,13 +1363,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index 905e916232..50cca54290 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -1091,7 +1091,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1284,13 +1285,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index 7de59f9f16..ef47c477d7 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -1093,7 +1093,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1202,13 +1203,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index 0a124e1d68..3463ebbed7 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -1086,7 +1086,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1334,13 +1335,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index d03b93fedb..eb12e5c29e 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -1088,7 +1088,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1197,13 +1198,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index 2be465e829..9509eed460 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -1093,7 +1093,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1462,13 +1463,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2522,6 +2523,7 @@ (local $9 i32) (local $10 i32) (local $11 i32) + (local $12 i32) local.get $0 i32.load offset=12 local.get $1 @@ -2541,10 +2543,11 @@ local.get $1 i32.const 1 i32.add + local.tee $9 local.tee $7 local.get $0 i32.load offset=8 - local.tee $10 + local.tee $11 i32.const 2 i32.shr_u i32.gt_u @@ -2561,7 +2564,7 @@ unreachable end block $__inlined_func$~lib/rt/itcms/__renew - local.get $10 + local.get $11 i32.const 1 i32.shl local.tee $6 @@ -2584,8 +2587,8 @@ local.get $6 i32.gt_u select - local.tee $9 - local.tee $11 + local.tee $10 + local.tee $12 local.get $0 i32.load local.tee $8 @@ -2601,25 +2604,25 @@ i32.le_u if local.get $5 - local.get $11 + local.get $12 i32.store offset=16 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $11 + local.get $12 local.get $5 i32.load offset=12 call $~lib/rt/itcms/__new local.tee $7 local.set $6 - local.get $11 + local.get $12 local.get $5 i32.load offset=16 local.tee $4 local.get $4 - local.get $11 + local.get $12 i32.gt_u select - local.set $11 + local.set $12 block $~lib/util/memory/memmove|inlined.0 local.get $3 local.get $6 @@ -2628,10 +2631,10 @@ local.get $3 local.get $6 i32.sub - local.get $11 + local.get $12 i32.sub i32.const 0 - local.get $11 + local.get $12 i32.const 1 i32.shl i32.sub @@ -2639,7 +2642,7 @@ if local.get $6 local.get $3 - local.get $11 + local.get $12 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end @@ -2660,13 +2663,13 @@ i32.const 7 i32.and if - local.get $11 + local.get $12 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $11 + local.get $12 i32.const 1 i32.sub - local.set $11 + local.set $12 local.get $6 local.tee $5 i32.const 1 @@ -2685,7 +2688,7 @@ end end loop $while-continue|1 - local.get $11 + local.get $12 i32.const 8 i32.ge_u if @@ -2693,10 +2696,10 @@ local.get $3 i64.load i64.store - local.get $11 + local.get $12 i32.const 8 i32.sub - local.set $11 + local.set $12 local.get $6 i32.const 8 i32.add @@ -2710,7 +2713,7 @@ end end loop $while-continue|2 - local.get $11 + local.get $12 if local.get $6 local.tee $5 @@ -2726,10 +2729,10 @@ local.get $4 i32.load8_u i32.store8 - local.get $11 + local.get $12 i32.const 1 i32.sub - local.set $11 + local.set $12 br $while-continue|2 end end @@ -2744,22 +2747,22 @@ if loop $while-continue|3 local.get $6 - local.get $11 + local.get $12 i32.add i32.const 7 i32.and if - local.get $11 + local.get $12 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 local.get $6 - local.get $11 + local.get $12 i32.const 1 i32.sub - local.tee $11 + local.tee $12 i32.add local.get $3 - local.get $11 + local.get $12 i32.add i32.load8_u i32.store8 @@ -2767,18 +2770,18 @@ end end loop $while-continue|4 - local.get $11 + local.get $12 i32.const 8 i32.ge_u if local.get $6 - local.get $11 + local.get $12 i32.const 8 i32.sub - local.tee $11 + local.tee $12 i32.add local.get $3 - local.get $11 + local.get $12 i32.add i64.load i64.store @@ -2787,16 +2790,16 @@ end end loop $while-continue|5 - local.get $11 + local.get $12 if local.get $6 - local.get $11 + local.get $12 i32.const 1 i32.sub - local.tee $11 + local.tee $12 i32.add local.get $3 - local.get $11 + local.get $12 i32.add i32.load8_u i32.store8 @@ -2809,10 +2812,10 @@ local.set $3 end local.get $3 - local.get $10 + local.get $11 i32.add - local.get $9 local.get $10 + local.get $11 i32.sub call $~lib/memory/memory.fill local.get $3 @@ -2831,13 +2834,11 @@ call $~lib/rt/itcms/__link end local.get $0 - local.get $9 + local.get $10 i32.store offset=8 end local.get $0 - local.get $1 - i32.const 1 - i32.add + local.get $9 i32.store offset=12 end local.get $0 diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index fd87ff05f0..fa16156fa7 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -1079,7 +1079,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1359,13 +1360,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index fa950d9502..83fc6606a2 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -1083,7 +1083,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1192,13 +1193,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/memset.optimized.wat b/tests/compiler/memset.optimized.wat index 6a8834cfd7..e439105230 100644 --- a/tests/compiler/memset.optimized.wat +++ b/tests/compiler/memset.optimized.wat @@ -184,9 +184,9 @@ local.get $1 i64.extend_i32_u local.tee $4 - local.get $4 i64.const 32 i64.shl + local.get $4 i64.or local.set $4 loop $while-continue|0 diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index e9dc8e3bdd..45d4e832e8 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -1119,7 +1119,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1228,13 +1229,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 0235d29a7f..bb9b2ac4ca 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -1126,7 +1126,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1319,13 +1320,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 8ad9ac395c..3b56c2d3c3 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1156,7 +1156,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1552,13 +1553,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index a3fad92ebd..8216c35134 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -1091,7 +1091,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1200,13 +1201,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 45f2901ca7..679ede0cba 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -1168,7 +1168,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1277,13 +1278,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index e1e6eda025..92939e7d2e 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -1130,7 +1130,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1425,13 +1426,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index 939cc263b4..42486f7099 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -1104,7 +1104,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1297,13 +1298,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index c525d2056b..dfc783c803 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -1420,7 +1420,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1613,13 +1614,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -5091,11 +5092,12 @@ local.get $0 global.set $resolve-binary/foo global.get $~lib/memory/__stack_pointer - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 10880 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index f013164c4a..82dbfd0f0c 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -1156,7 +1156,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1525,13 +1526,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index 4680dd477e..445a7cab22 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -1119,7 +1119,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1312,13 +1313,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index 228f69b74d..8916357988 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -1088,7 +1088,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1197,13 +1198,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index f76e0c9eda..aa996c86d2 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -1084,7 +1084,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1306,13 +1307,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index e959f3e024..a90ff9db80 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -1119,7 +1119,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1312,13 +1313,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index d1e3453d80..f6f313285d 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -1123,7 +1123,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1316,13 +1317,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 41154ad3cc..8856bdb4eb 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -1139,7 +1139,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1332,13 +1333,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index 745c4833bb..520c7591bc 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -1097,7 +1097,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1258,13 +1259,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index a7ae982fd0..6b303de27f 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -1122,7 +1122,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1231,13 +1232,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index 627194dd04..1fe41540de 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -1097,7 +1097,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1290,13 +1291,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/rt/runtime-stub-export.optimized.wat b/tests/compiler/rt/runtime-stub-export.optimized.wat index 5ba5db73ae..d55fbb4dbe 100644 --- a/tests/compiler/rt/runtime-stub-export.optimized.wat +++ b/tests/compiler/rt/runtime-stub-export.optimized.wat @@ -53,8 +53,7 @@ unreachable end global.get $~lib/rt/stub/offset - local.tee $3 - local.get $3 + local.tee $5 i32.const 4 i32.add local.tee $2 @@ -109,6 +108,7 @@ end local.get $6 global.set $~lib/rt/stub/offset + local.get $5 local.get $4 i32.store local.get $2 diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 80024871f6..7fab83c9f5 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -2642,7 +2642,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -2879,13 +2880,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index 7b55e3e13f..bcee34f52c 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -1727,7 +1727,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -2299,13 +2300,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 16f977566b..4197f8e8af 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -2659,7 +2659,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -2896,13 +2897,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 290000435b..2d1c9258ee 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -1177,7 +1177,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1370,13 +1371,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 0e8872027f..2381372011 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1793,7 +1793,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -2297,9 +2298,9 @@ local.get $0 i64.extend_i32_u local.tee $4 - local.get $4 i64.const 32 i64.shl + local.get $4 i64.or local.set $4 loop $while-continue|0 @@ -2380,13 +2381,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -5093,14 +5094,14 @@ i32.shl local.get $0 i32.add - local.tee $3 + local.tee $7 f32.load f32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 f32.store local.get $2 @@ -5168,6 +5169,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -5175,7 +5177,6 @@ i32.const 2 i32.shl local.tee $10 - local.get $4 i32.add local.get $0 local.get $10 @@ -5551,11 +5552,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -5579,11 +5580,11 @@ br $for-loop|3 end end + local.get $12 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $12 i32.add local.get $3 i32.store @@ -5982,14 +5983,14 @@ i32.shl local.get $0 i32.add - local.tee $3 + local.tee $7 f64.load f64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 f64.store local.get $2 @@ -6057,6 +6058,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -6064,7 +6066,6 @@ i32.const 3 i32.shl local.tee $10 - local.get $4 i32.add local.get $0 local.get $10 @@ -6440,11 +6441,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -6468,11 +6469,11 @@ br $for-loop|3 end end + local.get $12 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $12 i32.add local.get $3 i32.store @@ -6819,22 +6820,22 @@ i32.add local.tee $3 i32.load - local.set $5 + local.set $6 local.get $3 local.get $2 i32.const 2 i32.shl local.get $0 i32.add - local.tee $3 + local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store local.get $2 i32.const 1 @@ -6899,6 +6900,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -6906,7 +6908,6 @@ i32.const 2 i32.shl local.tee $8 - local.get $4 i32.add local.get $0 local.get $8 @@ -6953,18 +6954,18 @@ local.get $4 i32.add i32.load - local.set $7 + local.set $8 local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -6976,7 +6977,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store local.get $6 i32.const 1 @@ -6988,7 +6989,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store local.get $2 i32.const 1 @@ -7280,11 +7281,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -7308,11 +7309,11 @@ br $for-loop|3 end end + local.get $10 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $10 i32.add local.get $3 i32.store @@ -7614,22 +7615,22 @@ i32.add local.tee $3 i32.load - local.set $5 + local.set $6 local.get $3 local.get $2 i32.const 2 i32.shl local.get $0 i32.add - local.tee $3 + local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store local.get $2 i32.const 1 @@ -7694,6 +7695,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -7701,7 +7703,6 @@ i32.const 2 i32.shl local.tee $8 - local.get $4 i32.add local.get $0 local.get $8 @@ -7748,18 +7749,18 @@ local.get $4 i32.add i32.load - local.set $7 + local.set $8 local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -7771,7 +7772,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store local.get $6 i32.const 1 @@ -7783,7 +7784,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store local.get $2 i32.const 1 @@ -8075,11 +8076,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -8103,11 +8104,11 @@ br $for-loop|3 end end + local.get $10 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $10 i32.add local.get $3 i32.store @@ -10802,7 +10803,7 @@ i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $11 + local.tee $8 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -10824,10 +10825,10 @@ local.tee $13 i32.const 3 i32.shl - local.tee $8 + local.tee $11 i32.sub global.set $~lib/util/number/_K - local.get $8 + local.get $11 i32.const 12008 i32.add i64.load @@ -10957,7 +10958,7 @@ i64.add local.get $12 global.get $~lib/util/number/_exp_pow - local.get $11 + local.get $8 i32.add i32.const -64 i32.sub @@ -13356,20 +13357,20 @@ i32.add local.tee $3 i32.load8_u - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.add - local.tee $3 + local.tee $5 i32.load8_u i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store8 local.get $2 i32.const 1 @@ -13432,11 +13433,11 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub local.tee $2 - local.get $4 i32.add local.get $0 local.get $2 @@ -13796,11 +13797,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -13824,11 +13825,11 @@ br $for-loop|3 end end + local.get $10 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $10 i32.add local.get $3 i32.store @@ -14804,70 +14805,70 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i64.const 0 i64.store offset=16 - local.get $1 + local.get $0 i64.const 0 i64.store offset=24 - local.get $1 + local.get $0 i64.const 0 i64.store offset=32 - local.get $1 + local.get $0 i64.const 0 i64.store offset=40 - local.get $1 + local.get $0 i64.const 0 i64.store offset=48 - local.get $1 + local.get $0 i64.const 0 i64.store offset=56 - local.get $1 + local.get $0 i64.const 0 i64.store offset=64 - local.get $1 + local.get $0 i64.const 0 i64.store offset=72 - local.get $1 + local.get $0 i64.const 0 i64.store offset=80 - local.get $1 + local.get $0 i64.const 0 i64.store offset=88 - local.get $1 + local.get $0 i64.const 0 i64.store offset=96 - local.get $1 + local.get $0 i64.const 0 i64.store offset=104 - local.get $1 + local.get $0 i64.const 0 i64.store offset=112 - local.get $1 + local.get $0 i64.const 0 i64.store offset=120 - local.get $1 + local.get $0 i64.const 0 i64.store offset=128 - local.get $1 + local.get $0 i64.const 0 i64.store offset=136 - local.get $1 + local.get $0 i64.const 0 i64.store offset=144 - local.get $1 + local.get $0 i64.const 0 i64.store offset=152 - local.get $1 + local.get $0 i64.const 0 i64.store offset=160 - local.get $1 + local.get $0 i32.const 0 i32.store offset=168 memory.size @@ -14907,9 +14908,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -14920,14 +14921,14 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14941,74 +14942,74 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store end - local.get $1 + local.get $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.const 1 call $~lib/memory/memory.fill - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.store - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 + local.tee $1 + local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1664 i32.store - local.get $2 + local.get $1 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -15024,9 +15025,9 @@ i32.const 6 i32.const 1696 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1 i32.const 1 i32.const 3 @@ -15037,12 +15038,12 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15053,7 +15054,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 0 i32.const 0 i32.const 2147483647 @@ -15064,12 +15065,12 @@ i32.const 6 i32.const 1760 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15080,7 +15081,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.const 0 i32.const -3 @@ -15091,12 +15092,12 @@ i32.const 6 i32.const 1792 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15107,7 +15108,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 2 i32.const -2 i32.const 2147483647 @@ -15118,12 +15119,12 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15134,7 +15135,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 0 i32.const 1 i32.const 0 @@ -15145,12 +15146,12 @@ i32.const 6 i32.const 1856 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15167,43 +15168,43 @@ i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.tee $2 + local.tee $0 i32.store offset=12 - local.get $2 + local.get $0 i32.load offset=4 - local.set $5 + local.set $4 i32.const 1 - local.get $2 + local.get $0 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 1 i32.gt_s select - local.set $3 + local.set $1 i32.const 3 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 3 i32.gt_s select - local.set $1 + local.set $2 loop $for-loop|0 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $3 + local.get $1 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add i32.const 1 i32.store - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|0 end end @@ -15216,7 +15217,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $0 local.get $1 call $std/array/isArraysEqual i32.eqz @@ -15228,34 +15229,35 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 + local.tee $1 i32.load offset=4 - local.set $1 + local.set $0 i32.const 0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select - local.set $7 + local.set $5 loop $for-loop|03 - local.get $3 - local.get $7 + local.get $2 + local.get $5 i32.gt_s if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.const 0 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|03 end end @@ -15264,12 +15266,12 @@ i32.const 7 i32.const 1984 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15280,44 +15282,44 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=4 - local.set $5 + local.set $4 i32.const 0 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select - local.set $1 - local.get $3 + local.set $0 + local.get $2 i32.const 3 i32.sub - local.tee $3 + local.tee $2 i32.const 0 - local.get $3 + local.get $2 i32.const 0 i32.gt_s select - local.set $3 + local.set $2 loop $for-loop|05 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add i32.const 1 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|05 end end @@ -15326,12 +15328,12 @@ i32.const 7 i32.const 2032 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15342,37 +15344,37 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=4 - local.set $5 - local.get $2 + local.set $4 + local.get $1 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 2 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $7 + local.set $5 loop $for-loop|07 - local.get $3 - local.get $7 + local.get $2 + local.get $5 i32.gt_s if - local.get $7 + local.get $5 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add i32.const 2 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|07 end end @@ -15381,12 +15383,12 @@ i32.const 7 i32.const 2080 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15397,41 +15399,41 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=4 - local.set $5 + local.set $4 i32.const 1 - local.get $2 + local.get $1 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 1 i32.gt_s select - local.set $1 + local.set $0 i32.const 0 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 0 i32.gt_s select - local.set $3 + local.set $2 loop $for-loop|09 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|09 end end @@ -15440,12 +15442,12 @@ i32.const 7 i32.const 2128 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15458,9 +15460,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -15472,9 +15474,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15488,17 +15490,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 42 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -15513,9 +15515,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 1 i32.ne @@ -15529,9 +15531,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15545,9 +15547,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -15561,9 +15563,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -15575,9 +15577,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15591,17 +15593,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 1 i32.ne @@ -15615,9 +15617,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15631,9 +15633,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15648,17 +15650,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 44 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -15672,9 +15674,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15688,9 +15690,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15705,9 +15707,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15722,17 +15724,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 45 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -15746,9 +15748,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15762,9 +15764,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15779,9 +15781,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15796,9 +15798,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15812,40 +15814,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=4 i32.store offset=16 - local.get $2 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $2 + local.get $1 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset + local.get $0 local.get $1 - local.get $2 i32.store offset=16 - local.get $2 + local.get $1 i32.const 0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 - local.get $2 + local.get $1 i32.load offset=12 if i32.const 0 @@ -15861,9 +15863,9 @@ i32.const 3 i32.const 2224 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -15876,7 +15878,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -15889,7 +15891,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -15902,7 +15904,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -15918,23 +15920,23 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $3 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $3 + local.get $0 + local.get $2 call $~lib/array/Array#concat - local.tee $2 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15948,9 +15950,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -15962,7 +15964,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -15979,19 +15981,19 @@ i32.const 3 i32.const 2272 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16003,7 +16005,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -16016,7 +16018,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -16029,7 +16031,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -16042,30 +16044,30 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 46 call $~lib/array/Array#push drop - local.get $3 + local.get $2 i32.const 47 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $2 local.get $1 - local.get $3 + local.get $0 + local.get $2 call $~lib/array/Array#concat - local.tee $2 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16077,7 +16079,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load offset=12 i32.const 2 i32.ne @@ -16089,7 +16091,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=12 i32.const 5 i32.ne @@ -16101,7 +16103,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -16114,7 +16116,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -16127,7 +16129,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -16140,7 +16142,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -16153,7 +16155,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -16166,10 +16168,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 call $~lib/array/Array#pop drop - local.get $2 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -16187,9 +16189,9 @@ i32.const 3 i32.const 2304 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $3 + local.get $2 i32.load offset=12 if i32.const 0 @@ -16200,17 +16202,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store offset=8 - local.get $2 - local.get $3 local.get $1 + local.get $2 + local.get $0 call $~lib/array/Array#concat - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -16222,7 +16224,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.load offset=12 if i32.const 0 @@ -16238,28 +16240,28 @@ i32.const 3 i32.const 2336 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2384 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16277,28 +16279,28 @@ i32.const 3 i32.const 2432 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2480 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16316,28 +16318,28 @@ i32.const 3 i32.const 2528 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2576 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16355,28 +16357,28 @@ i32.const 3 i32.const 2624 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2672 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16394,28 +16396,28 @@ i32.const 3 i32.const 2720 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2768 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16433,28 +16435,28 @@ i32.const 3 i32.const 2816 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2864 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16472,28 +16474,28 @@ i32.const 3 i32.const 2912 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2960 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16511,28 +16513,28 @@ i32.const 3 i32.const 3008 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3056 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16550,28 +16552,28 @@ i32.const 3 i32.const 3104 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3152 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16589,28 +16591,28 @@ i32.const 3 i32.const 3200 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3248 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16628,28 +16630,28 @@ i32.const 3 i32.const 3296 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3344 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16667,28 +16669,28 @@ i32.const 3 i32.const 3392 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3440 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16702,17 +16704,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 42 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -16726,9 +16728,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16742,9 +16744,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16759,9 +16761,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16776,9 +16778,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16793,9 +16795,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -16810,17 +16812,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 41 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 5 i32.ne @@ -16834,9 +16836,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16850,9 +16852,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -16867,9 +16869,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -16884,9 +16886,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -16901,9 +16903,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -16918,9 +16920,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -16935,11 +16937,11 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1 i32.lt_s if @@ -16950,29 +16952,29 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.load offset=4 - local.tee $5 + local.tee $4 i32.load - local.get $5 - local.get $5 + local.get $4 + local.get $4 i32.const 4 i32.add - local.get $1 + local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $1 i32.const 2 i32.shl - local.tee $1 + local.tee $0 call $~lib/memory/memory.copy - local.get $1 - local.get $5 + local.get $0 + local.get $4 i32.add i32.const 0 i32.store - local.get $4 - local.get $2 + local.get $5 + local.get $1 i32.store offset=12 global.set $std/array/i global.get $std/array/i @@ -16988,9 +16990,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -17004,9 +17006,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17020,9 +17022,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -17037,9 +17039,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17054,9 +17056,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -17071,9 +17073,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -17088,9 +17090,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -17106,9 +17108,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -17122,9 +17124,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17138,9 +17140,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -17155,9 +17157,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17172,9 +17174,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -17193,26 +17195,26 @@ i32.const 3 i32.const 3488 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 3 i32.const 2 i32.const 3 i32.const 3536 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17225,23 +17227,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3568 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17254,23 +17256,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 4 i32.const 2 i32.const 3 i32.const 3600 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17283,14 +17285,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17303,23 +17305,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const -2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3648 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17332,23 +17334,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3680 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17361,23 +17363,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3712 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 + local.get $0 local.get $1 - local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17389,15 +17391,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -17407,15 +17409,15 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 10 i32.const 2147483647 call $~lib/array/Array#slice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -17431,7 +17433,9 @@ i32.store local.get $1 i32.load offset=4 - local.set $4 + local.set $6 + i32.const 0 + local.set $0 local.get $1 i32.load offset=12 local.tee $1 @@ -17445,7 +17449,7 @@ local.get $1 i32.const 1 i32.sub - local.set $3 + local.set $4 loop $while-continue|0 local.get $0 local.get $5 @@ -17454,18 +17458,18 @@ local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $6 i32.add local.tee $1 i32.load local.set $2 local.get $1 - local.get $3 + local.get $4 local.get $0 i32.sub i32.const 2 i32.shl - local.get $4 + local.get $6 i32.add local.tee $1 i32.load @@ -17595,21 +17599,21 @@ local.tee $2 i32.store offset=16 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|010 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/array/Array#__get local.get $2 i32.load offset=12 - local.get $1 + local.get $0 i32.sub i32.const 1 i32.sub @@ -17622,10 +17626,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|010 end end @@ -17644,21 +17648,21 @@ local.tee $2 i32.store offset=4 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|1 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/array/Array#__get local.get $2 i32.load offset=12 - local.get $1 + local.get $0 i32.sub i32.const 1 i32.sub @@ -17671,10 +17675,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end @@ -17693,21 +17697,21 @@ local.tee $2 i32.store offset=12 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|2 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/array/Array#__get local.get $2 i32.load offset=12 - local.get $1 + local.get $0 i32.sub i32.const 1 i32.sub @@ -17720,10 +17724,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|2 end end @@ -17742,21 +17746,21 @@ local.tee $2 i32.store offset=20 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|3 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/array/Array#__get local.get $2 i32.load offset=12 - local.get $1 + local.get $0 i32.sub i32.const 1 i32.sub @@ -17769,10 +17773,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end @@ -17791,21 +17795,21 @@ local.tee $2 i32.store offset=24 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|4 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/array/Array#__get local.get $2 i32.load offset=12 - local.get $1 + local.get $0 i32.sub i32.const 1 i32.sub @@ -17818,10 +17822,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|4 end end @@ -17840,21 +17844,21 @@ local.tee $2 i32.store offset=28 i32.const 0 - local.set $1 + local.set $0 local.get $2 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|5 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 call $~lib/array/Array#__get local.get $2 i32.load offset=12 - local.get $1 + local.get $0 i32.sub i32.const 1 i32.sub @@ -17867,10 +17871,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|5 end end @@ -18506,29 +18510,29 @@ local.get $2 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=4 local.set $2 loop $while-continue|010 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -18537,17 +18541,17 @@ f32.const nan:0x400000 f32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|010 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18568,29 +18572,29 @@ local.get $2 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=4 local.set $2 loop $while-continue|037 - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -18599,17 +18603,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|037 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18632,23 +18636,23 @@ global.set $~argumentsLength local.get $0 i32.load offset=12 - local.tee $3 + local.tee $4 local.set $2 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf - local.get $3 + local.get $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf local.get $2 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $2 local.get $2 - local.get $3 + local.get $4 i32.ge_s select local.get $2 @@ -18658,7 +18662,7 @@ local.set $2 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|00 local.get $2 i32.const 0 @@ -18668,7 +18672,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load i32.const 2 @@ -18699,23 +18703,23 @@ global.set $~argumentsLength local.get $0 i32.load offset=12 - local.tee $3 + local.tee $4 local.set $2 i32.const -1 local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $3 + local.get $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf5 local.get $2 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $2 local.get $2 - local.get $3 + local.get $4 i32.ge_s select local.get $2 @@ -18725,7 +18729,7 @@ local.set $2 local.get $0 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|06 local.get $2 i32.const 0 @@ -18735,7 +18739,7 @@ local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load i32.const 7 @@ -19586,15 +19590,15 @@ i32.const 10 i32.const 4112 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const 0 @@ -19604,20 +19608,20 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|047 - local.get $1 + local.get $0 local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add f32.load local.tee $11 @@ -19629,10 +19633,10 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|047 end end @@ -19652,15 +19656,15 @@ i32.const 11 i32.const 4144 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const 0 @@ -19670,20 +19674,20 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.load offset=4 - local.set $0 + local.set $1 loop $while-continue|04857 - local.get $1 + local.get $0 local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $1 i32.add f64.load local.tee $9 @@ -19695,10 +19699,10 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|04857 end end @@ -20849,15 +20853,15 @@ i32.const 0 local.get $0 i32.load offset=12 - local.tee $8 - local.get $8 + local.tee $3 + local.get $3 i32.const 0 i32.gt_s select local.set $5 local.get $1 i32.const 1 - local.get $8 + local.get $3 local.get $5 i32.sub local.tee $1 @@ -20871,14 +20875,14 @@ i32.const 0 i32.gt_s select - local.tee $4 + local.tee $6 i32.const 2 i32.const 12 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.load offset=4 local.get $0 i32.load offset=4 @@ -20888,13 +20892,13 @@ i32.shl i32.add local.tee $1 - local.get $4 + local.get $6 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $8 - local.get $4 + local.get $3 local.get $5 + local.get $6 i32.add local.tee $5 i32.ne @@ -20905,7 +20909,7 @@ i32.shl local.get $2 i32.add - local.get $8 + local.get $3 local.get $5 i32.sub i32.const 2 @@ -20913,17 +20917,17 @@ call $~lib/memory/memory.copy end local.get $0 - local.get $8 - local.get $4 + local.get $3 + local.get $6 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=4 - local.get $6 + local.get $7 i32.load offset=12 i32.const 1 i32.ne @@ -20936,7 +20940,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.const 0 call $~lib/array/Array#__get local.tee $1 @@ -21048,20 +21052,20 @@ call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 6144 i32.store offset=8 i32.const 0 local.set $0 - local.get $3 + local.get $4 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex loop $for-loop|059 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 local.tee $1 local.get $1 @@ -21071,7 +21075,7 @@ local.get $0 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -21081,7 +21085,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6144 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21110,20 +21114,20 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 6176 i32.store offset=8 i32.const 0 local.set $0 - local.get $3 + local.get $4 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex60 loop $for-loop|061 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 local.tee $1 local.get $1 @@ -21133,7 +21137,7 @@ local.get $0 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -21143,7 +21147,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6176 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21174,20 +21178,20 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 6208 i32.store offset=8 i32.const 0 local.set $0 - local.get $3 + local.get $4 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex62 loop $for-loop|063 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 local.tee $1 local.get $1 @@ -21197,7 +21201,7 @@ local.get $0 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -21207,7 +21211,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6208 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21238,20 +21242,20 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 6240 i32.store offset=8 i32.const 0 local.set $0 - local.get $3 + local.get $4 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex64 loop $for-loop|065 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 local.tee $1 local.get $1 @@ -21261,7 +21265,7 @@ local.get $0 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -21271,7 +21275,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6240 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21318,20 +21322,20 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 6272 i32.store offset=8 i32.const 0 local.set $0 - local.get $3 + local.get $4 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex66 loop $for-loop|067 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 local.tee $1 local.get $1 @@ -21341,7 +21345,7 @@ local.get $0 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -21351,7 +21355,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6272 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21409,20 +21413,20 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 6304 i32.store offset=8 i32.const 0 local.set $0 - local.get $3 + local.get $4 i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex68 loop $for-loop|069 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 local.tee $1 local.get $1 @@ -21432,7 +21436,7 @@ local.get $0 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -21442,7 +21446,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) @@ -21729,14 +21733,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|070 - local.get $3 + local.get $4 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $4 i32.gt_s select local.get $1 @@ -21793,14 +21797,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|072 - local.get $3 + local.get $4 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $4 i32.gt_s select local.get $1 @@ -21856,14 +21860,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|074 - local.get $3 + local.get $4 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $4 i32.gt_s select local.get $1 @@ -21936,14 +21940,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|076 - local.get $3 + local.get $4 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $4 i32.gt_s select local.get $1 @@ -22026,14 +22030,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|078 - local.get $3 + local.get $4 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $4 i32.gt_s select local.get $1 @@ -22121,14 +22125,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|079 - local.get $3 + local.get $4 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $4 i32.gt_s select local.get $1 @@ -22184,14 +22188,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|081 - local.get $3 + local.get $4 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $4 i32.gt_s select local.get $1 @@ -22246,14 +22250,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|083 - local.get $3 + local.get $4 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $4 i32.gt_s select local.get $1 @@ -22324,14 +22328,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|085 - local.get $3 + local.get $4 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $4 i32.gt_s select local.get $1 @@ -22414,14 +22418,14 @@ local.set $1 local.get $5 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|087 - local.get $3 + local.get $4 local.get $5 i32.load offset=12 local.tee $0 local.get $0 - local.get $3 + local.get $4 i32.gt_s select local.get $1 @@ -22499,46 +22503,46 @@ global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 6832 i32.store offset=8 i32.const 0 - local.set $0 - local.get $3 + local.set $1 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|06988 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|06988 end end @@ -22558,19 +22562,19 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 6864 i32.store offset=8 i32.const 0 local.set $0 - local.get $3 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|071 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 local.tee $1 local.get $1 @@ -22580,7 +22584,7 @@ local.get $0 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -22590,7 +22594,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6864 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) @@ -22633,19 +22637,19 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 6896 i32.store offset=8 i32.const 0 local.set $0 - local.get $3 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|07489 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 local.tee $1 local.get $1 @@ -22655,7 +22659,7 @@ local.get $0 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.const 2 @@ -22665,7 +22669,7 @@ i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $4 i32.const 6896 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) @@ -22719,46 +22723,46 @@ global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 6928 i32.store offset=8 i32.const 0 - local.set $0 - local.get $3 + local.set $1 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|07690 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.const 6928 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|07690 end end @@ -22807,46 +22811,46 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 6960 i32.store offset=8 i32.const 0 - local.set $0 - local.get $3 + local.set $1 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|07991 local.get $2 - local.get $3 + local.get $4 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.const 6960 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|07991 end end @@ -22867,23 +22871,23 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|6 - local.get $1 + local.get $0 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|6 end end @@ -22921,14 +22925,14 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer i32.const 6992 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22942,55 +22946,55 @@ i32.const 0 i32.store local.get $0 - local.get $8 + local.get $3 i32.load offset=12 - local.tee $4 + local.tee $6 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $6 + local.tee $7 i32.store - local.get $6 + local.get $7 i32.load offset=4 - local.set $2 + local.set $4 loop $for-loop|08193 - local.get $4 - local.get $8 + local.get $6 + local.get $3 i32.load offset=12 local.tee $0 local.get $0 - local.get $4 + local.get $6 i32.gt_s select - local.get $3 + local.get $1 i32.gt_s if - local.get $3 + local.get $1 i32.const 2 i32.shl - local.tee $1 - local.get $8 + local.tee $2 + local.get $3 i32.load offset=4 i32.add i32.load local.set $0 i32.const 3 global.set $~argumentsLength - local.get $1 local.get $2 + local.get $4 i32.add local.get $0 + local.get $1 local.get $3 - local.get $8 i32.const 6992 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|08193 end end @@ -22998,9 +23002,9 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.store offset=12 - local.get $6 + local.get $7 i32.load offset=12 i32.const 4 i32.ne @@ -23012,7 +23016,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $7 i32.const 0 call $~lib/array/Array#__get local.set $11 @@ -23358,21 +23362,21 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 7248 i32.store offset=8 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|094 local.get $2 - local.get $5 + local.get $4 i32.load offset=12 local.tee $0 local.get $0 @@ -23382,7 +23386,7 @@ local.get $1 i32.gt_s if - local.get $5 + local.get $4 i32.load offset=4 local.get $1 i32.const 2 @@ -23392,14 +23396,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 + local.set $5 local.get $1 i32.const 1 i32.add @@ -23407,7 +23411,7 @@ br $for-loop|094 end end - local.get $3 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23423,21 +23427,21 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $5 + local.tee $4 i32.store local.get $0 i32.const 7280 i32.store offset=8 i32.const 4 - local.set $3 + local.set $5 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|096 local.get $2 - local.get $5 + local.get $4 i32.load offset=12 local.tee $0 local.get $0 @@ -23447,7 +23451,7 @@ local.get $1 i32.gt_s if - local.get $5 + local.get $4 i32.load offset=4 local.get $1 i32.const 2 @@ -23457,14 +23461,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 + local.set $5 local.get $1 i32.const 1 i32.add @@ -23472,7 +23476,7 @@ br $for-loop|096 end end - local.get $3 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23488,21 +23492,21 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $5 + local.tee $4 i32.store local.get $0 i32.const 7312 i32.store offset=8 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|098 local.get $2 - local.get $5 + local.get $4 i32.load offset=12 local.tee $0 local.get $0 @@ -23512,7 +23516,7 @@ local.get $1 i32.gt_s if - local.get $5 + local.get $4 i32.load offset=4 local.get $1 i32.const 2 @@ -23522,14 +23526,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 + local.set $5 local.get $1 i32.const 1 i32.add @@ -23537,7 +23541,7 @@ br $for-loop|098 end end - local.get $3 + local.get $5 i32.eqz if i32.const 0 @@ -23550,21 +23554,21 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $5 + local.tee $4 i32.store local.get $0 i32.const 7344 i32.store offset=8 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|0100 local.get $2 - local.get $5 + local.get $4 i32.load offset=12 local.tee $0 local.get $0 @@ -23574,7 +23578,7 @@ local.get $1 i32.gt_s if - local.get $5 + local.get $4 i32.load offset=4 local.get $1 i32.const 2 @@ -23584,14 +23588,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 + local.set $5 local.get $1 i32.const 1 i32.add @@ -23599,7 +23603,7 @@ br $for-loop|0100 end end - local.get $3 + local.get $5 if i32.const 0 i32.const 1552 @@ -23611,21 +23615,21 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $5 + local.tee $4 i32.store local.get $0 i32.const 7376 i32.store offset=8 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|0102 local.get $2 - local.get $5 + local.get $4 i32.load offset=12 local.tee $0 local.get $0 @@ -23635,7 +23639,7 @@ local.get $1 i32.gt_s if - local.get $5 + local.get $4 i32.load offset=4 local.get $1 i32.const 2 @@ -23645,14 +23649,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 + local.set $5 local.get $1 i32.const 1 i32.add @@ -23660,7 +23664,7 @@ br $for-loop|0102 end end - local.get $3 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23692,21 +23696,21 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $5 + local.tee $4 i32.store local.get $0 i32.const 7408 i32.store offset=8 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|0104 local.get $2 - local.get $5 + local.get $4 i32.load offset=12 local.tee $0 local.get $0 @@ -23716,7 +23720,7 @@ local.get $1 i32.gt_s if - local.get $5 + local.get $4 i32.load offset=4 local.get $1 i32.const 2 @@ -23726,14 +23730,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 + local.set $5 local.get $1 i32.const 1 i32.add @@ -23741,7 +23745,7 @@ br $for-loop|0104 end end - local.get $3 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23784,21 +23788,21 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $5 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 7440 i32.store offset=8 i32.const 0 - local.set $3 + local.set $5 i32.const 0 local.set $1 - local.get $5 + local.get $4 i32.load offset=12 local.set $2 loop $for-loop|0106 local.get $2 - local.get $5 + local.get $4 i32.load offset=12 local.tee $0 local.get $0 @@ -23808,7 +23812,7 @@ local.get $1 i32.gt_s if - local.get $5 + local.get $4 i32.load offset=4 local.get $1 i32.const 2 @@ -23818,14 +23822,14 @@ local.set $0 i32.const 4 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $0 local.get $1 - local.get $5 + local.get $4 i32.const 7440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $3 + local.set $5 local.get $1 i32.const 1 i32.add @@ -23833,7 +23837,7 @@ br $for-loop|0106 end end - local.get $3 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -23880,26 +23884,26 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 7472 i32.store offset=8 i32.const 0 - local.set $1 - local.get $3 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|090 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -23907,22 +23911,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 - local.get $3 + local.get $2 + local.get $1 + local.get $4 i32.const 7472 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|090 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23938,26 +23942,26 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 7504 i32.store offset=8 i32.const 4 - local.set $1 - local.get $3 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|092 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -23965,22 +23969,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 - local.get $3 + local.get $2 + local.get $1 + local.get $4 i32.const 7504 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|092 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23996,26 +24000,26 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 7536 i32.store offset=8 i32.const 0 - local.set $1 - local.get $3 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|094107 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -24023,22 +24027,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 - local.get $3 + local.get $2 + local.get $1 + local.get $4 i32.const 7536 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|094107 end end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -24051,26 +24055,26 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 7568 i32.store offset=8 i32.const 0 - local.set $1 - local.get $3 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|096108 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -24078,22 +24082,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 - local.get $3 + local.get $2 + local.get $1 + local.get $4 i32.const 7568 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|096108 end end - local.get $1 + local.get $0 if i32.const 0 i32.const 1552 @@ -24105,26 +24109,26 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 7600 i32.store offset=8 i32.const 0 - local.set $1 - local.get $3 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|098109 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -24132,22 +24136,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 - local.get $3 + local.get $2 + local.get $1 + local.get $4 i32.const 7600 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|098109 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -24179,26 +24183,26 @@ global.get $~lib/memory/__stack_pointer local.tee $0 global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store local.get $0 i32.const 7632 i32.store offset=8 i32.const 0 - local.set $1 - local.get $3 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|0101 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -24206,22 +24210,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 - local.get $3 + local.get $2 + local.get $1 + local.get $4 i32.const 7632 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0101 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -24264,26 +24268,26 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $3 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 7664 i32.store offset=8 i32.const 0 - local.set $1 - local.get $3 + local.set $0 + local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|0103 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -24291,22 +24295,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 - local.get $3 + local.get $2 + local.get $1 + local.get $4 i32.const 7664 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|0103 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -24809,7 +24813,7 @@ i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24830,7 +24834,7 @@ unreachable end i32.const 8256 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8256 i32.store @@ -24839,7 +24843,7 @@ i32.load offset=4 local.get $5 i32.load offset=12 - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24850,9 +24854,9 @@ i32.const 11 i32.const 8288 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 block $__inlined_func$std/array/isArraysEqual (result i32) i32.const 0 @@ -24861,13 +24865,13 @@ local.get $5 i32.load offset=12 local.tee $1 - local.get $3 + local.get $4 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual drop i32.const 1 - local.get $3 + local.get $4 local.get $5 i32.eq br_if $__inlined_func$std/array/isArraysEqual @@ -24884,7 +24888,7 @@ local.get $9 f64.ne if (result i32) - local.get $3 + local.get $4 local.get $0 call $~lib/array/Array#__get local.tee $9 @@ -24899,7 +24903,7 @@ local.get $5 local.get $0 call $~lib/array/Array#__get - local.get $3 + local.get $4 local.get $0 call $~lib/array/Array#__get f64.ne @@ -24930,12 +24934,12 @@ i32.const 3 i32.const 8384 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=116 i32.const 0 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24956,16 +24960,16 @@ unreachable end i32.const 8432 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8432 i32.store end - local.get $2 + local.get $1 i32.load offset=4 - local.get $2 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24980,7 +24984,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 i32.const 0 call $std/array/isArraysEqual @@ -25042,7 +25046,7 @@ i32.const 3 i32.const 8672 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -25050,7 +25054,7 @@ i32.const 3 i32.const 8704 call $~lib/rt/__newArray - local.tee $8 + local.tee $3 i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25058,7 +25062,7 @@ i32.const 3 i32.const 8736 call $~lib/rt/__newArray - local.tee $6 + local.tee $7 i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25071,7 +25075,7 @@ global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $4 + local.tee $6 i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 @@ -25081,7 +25085,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $3 + local.tee $4 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 10000 @@ -25095,7 +25099,7 @@ i32.store offset=160 local.get $1 call $std/array/assertSortedDefault - local.get $7 + local.get $8 call $std/array/assertSortedDefault i32.const 1 i32.const 2 @@ -25106,7 +25110,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $7 + local.get $8 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -25119,7 +25123,7 @@ call $~lib/builtins/abort unreachable end - local.get $8 + local.get $3 call $std/array/assertSortedDefault i32.const 2 i32.const 2 @@ -25130,7 +25134,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $8 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -25143,9 +25147,9 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $7 call $std/array/assertSortedDefault - local.get $6 + local.get $7 local.get $10 i32.const 0 call $std/array/isArraysEqual @@ -25158,9 +25162,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $6 call $std/array/assertSortedDefault - local.get $4 + local.get $6 local.get $10 i32.const 4 call $std/array/isArraysEqual @@ -25188,9 +25192,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 call $std/array/assertSortedDefault - local.get $3 + local.get $4 local.get $10 i32.const 4 call $std/array/isArraysEqual @@ -25221,9 +25225,9 @@ local.get $0 call $std/array/assertSortedDefault i32.const 0 - local.set $7 + local.set $8 i32.const 0 - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -25233,20 +25237,20 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $6 i64.const 0 i64.store - local.get $4 + local.get $6 i64.const 0 i64.store offset=8 - local.get $4 + local.get $6 i64.const 0 i64.store offset=16 - local.get $4 + local.get $6 global.get $std/array/inputStabArr local.tee $5 i32.store offset=8 - local.get $4 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -25282,11 +25286,11 @@ i32.const 20 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $3 i32.store - local.get $8 + local.get $3 i32.load offset=4 - local.set $3 + local.set $4 local.get $5 i32.load offset=4 local.get $1 @@ -25300,26 +25304,26 @@ local.set $1 loop $while-continue|012 local.get $1 - local.get $7 + local.get $8 i32.gt_u if - local.get $3 - local.get $7 + local.get $4 + local.get $8 i32.add local.get $2 - local.get $7 + local.get $8 i32.add i32.load local.tee $0 i32.store - local.get $8 + local.get $3 local.get $0 i32.const 1 call $~lib/rt/itcms/__link - local.get $7 + local.get $8 i32.const 4 i32.add - local.set $7 + local.set $8 br $while-continue|012 end end @@ -25329,22 +25333,22 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $8 + local.get $3 i32.store local.get $0 i32.const 8928 i32.store offset=4 - local.get $8 + local.get $3 i32.load offset=4 - local.get $8 + local.get $3 i32.load offset=12 i32.const 8928 call $~lib/util/sort/SORT - local.get $4 - local.get $8 + local.get $6 + local.get $3 i32.store offset=12 i32.const 1 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr local.tee $0 @@ -25354,13 +25358,13 @@ local.set $1 loop $for-loop|013 local.get $1 - local.get $6 + local.get $7 i32.gt_s if block $for-break0 global.get $~lib/memory/__stack_pointer - local.get $8 - local.get $6 + local.get $3 + local.get $7 call $~lib/array/Array#__get local.tee $2 i32.store offset=16 @@ -25370,7 +25374,7 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 + local.get $7 call $~lib/array/Array#__get local.tee $0 i32.store offset=20 @@ -25390,18 +25394,18 @@ end if i32.const 0 - local.set $7 + local.set $8 br $for-break0 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|013 end end end - local.get $7 + local.get $8 i32.eqz if i32.const 0 @@ -25451,7 +25455,7 @@ call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25461,10 +25465,10 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -25473,10 +25477,10 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 16 i32.const 26 call $~lib/rt/itcms/__new @@ -25502,21 +25506,21 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 32 call $~lib/memory/memory.fill local.get $5 - local.get $1 + local.get $0 i32.store local.get $5 - local.get $1 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link local.get $5 - local.get $1 + local.get $0 i32.store offset=4 local.get $5 i32.const 32 @@ -25528,33 +25532,33 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 local.get $5 i32.store loop $for-loop|0154 - local.get $0 + local.get $1 i32.const 2 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 - local.get $0 + local.get $1 i32.sub call $~lib/array/Array#__set local.get $5 - local.get $0 local.get $1 - call $~lib/array/Array<~lib/array/Array>#__set local.get $0 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0154 end end @@ -25623,21 +25627,21 @@ i32.const 2048 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $4 i32.const 0 i32.const 2048 call $~lib/memory/memory.fill local.get $0 - local.get $3 + local.get $4 i32.store local.get $0 - local.get $3 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $3 + local.get $4 i32.store offset=4 local.get $0 i32.const 2048 @@ -25724,12 +25728,10 @@ i32.const 31 i32.const 9360 call $~lib/rt/__newArray - local.tee $4 + local.tee $6 i32.store offset=152 i32.const 1 global.set $~argumentsLength - local.get $0 - local.set $1 i32.const 0 local.set $5 global.get $~lib/memory/__stack_pointer @@ -25770,18 +25772,18 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load offset=12 local.get $5 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $1 + local.get $0 i32.store block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $0 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -25793,26 +25795,26 @@ i64.const 0 i64.store i32.const 1 - local.set $6 - local.get $1 + local.set $7 + local.get $0 i32.load offset=12 - local.set $0 + local.set $1 loop $for-loop|020 - local.get $0 - local.get $6 + local.get $1 + local.get $7 i32.gt_s if - local.get $1 - local.get $6 + local.get $0 + local.get $7 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $1 - local.get $6 + local.get $0 + local.get $7 call $~lib/array/Array#__get local.set $2 global.get $~lib/memory/__stack_pointer @@ -25820,7 +25822,7 @@ i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $3 + local.get $4 local.get $2 local.get $5 i32.load @@ -25835,10 +25837,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|020 end end @@ -25867,7 +25869,7 @@ global.set $~lib/memory/__stack_pointer block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25881,45 +25883,45 @@ i64.store block $folding-inner1 block $folding-inner021 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $2 - local.get $4 + local.tee $1 + local.get $6 i32.load offset=12 i32.ne br_if $folding-inner021 - local.get $1 - local.get $4 + local.get $0 + local.get $6 i32.eq br_if $folding-inner1 loop $for-loop|049 - local.get $0 - local.get $2 - i32.lt_s + local.get $1 + local.get $3 + i32.gt_s if - local.get $1 local.get $0 + local.get $3 call $~lib/array/Array#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store local.get $4 - local.get $0 + i32.store + local.get $6 + local.get $3 call $~lib/array/Array#__get - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $5 - local.get $3 + local.get $4 + local.get $2 call $~lib/string/String.__eq i32.eqz br_if $folding-inner021 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|049 end end @@ -25967,7 +25969,7 @@ i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $7 + local.tee $2 i32.store loop $for-loop|0155 local.get $3 @@ -25978,9 +25980,9 @@ f64.const 32 f64.mul i32.trunc_f64_s - local.set $6 + local.set $5 i32.const 0 - local.set $0 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -25990,26 +25992,26 @@ i32.lt_s br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 i32.const 9280 - local.set $1 - local.get $2 + local.set $0 + local.get $1 i32.const 9280 i32.store loop $for-loop|00 - local.get $0 - local.get $6 - i32.lt_s + local.get $5 + local.get $8 + i32.gt_s if + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $4 - local.get $1 - local.get $4 i32.const 7744 i32.store offset=4 call $~lib/math/NativeMath.random @@ -26024,7 +26026,7 @@ f64.mul f64.floor i32.trunc_f64_s - local.set $4 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26041,7 +26043,7 @@ i32.load i32.const 1 i32.shr_u - local.get $4 + local.get $7 i32.le_u if global.get $~lib/memory/__stack_pointer @@ -26049,17 +26051,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $1 + local.set $0 br $__inlined_func$~lib/string/String#charAt end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $4 + local.get $0 + local.get $7 i32.const 1 i32.shl i32.const 7744 @@ -26072,16 +26074,18 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $4 local.get $1 + local.get $0 call $~lib/string/String.__concat - local.tee $1 + local.tee $0 i32.store - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|00 end end @@ -26090,11 +26094,11 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $7 + local.get $2 local.get $3 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#__set local.get $3 i32.const 1 @@ -26107,12 +26111,13 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $2 + local.tee $0 i32.store offset=156 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26135,13 +26140,13 @@ unreachable end i32.const 9440 - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 9440 i32.store end - local.get $7 - local.get $3 + local.get $0 + local.get $1 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26160,30 +26165,32 @@ local.get $2 i32.const 9568 i32.store offset=168 - block $__inlined_func$~lib/util/string/joinBooleanArray (result i32) - local.get $0 - i32.load offset=4 - local.set $8 - local.get $0 - i32.load offset=12 - i32.const 0 - local.set $3 - i32.const 0 - local.set $0 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=12 + local.set $1 + i32.const 0 + local.set $0 + i32.const 0 + local.set $8 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinBooleanArray + local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -26192,22 +26199,23 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 + local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end block $folding-inner01 - local.get $7 + local.get $3 i32.eqz if i32.const 9504 i32.const 9536 - local.get $8 + local.get $7 i32.load8_u select - local.set $3 + local.set $1 br $folding-inner01 end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.const 9564 i32.load i32.const 1 @@ -26218,7 +26226,7 @@ i32.mul i32.const 5 i32.add - local.tee $5 + local.tee $4 i32.const 1 i32.shl i32.const 1 @@ -26226,11 +26234,11 @@ local.tee $1 i32.store loop $for-loop|13 - local.get $0 - local.get $7 - i32.lt_s + local.get $3 + local.get $8 + i32.gt_s if - local.get $0 + local.get $7 local.get $8 i32.add i32.load8_u @@ -26238,8 +26246,8 @@ i32.eqz i32.const 4 i32.add - local.set $4 - local.get $3 + local.set $5 + local.get $0 i32.const 1 i32.shl local.get $1 @@ -26248,17 +26256,17 @@ i32.const 9536 local.get $2 select - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 - local.get $4 + local.get $0 + local.get $5 i32.add - local.set $3 + local.set $0 local.get $6 if - local.get $3 + local.get $0 i32.const 1 i32.shl local.get $1 @@ -26268,43 +26276,43 @@ i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $0 local.get $6 i32.add - local.set $3 + local.set $0 end - local.get $0 + local.get $8 i32.const 1 i32.add - local.set $0 + local.set $8 br $for-loop|13 end end + local.get $3 local.get $7 - local.get $8 i32.add i32.load8_u - local.tee $0 + local.tee $2 i32.eqz i32.const 4 i32.add - local.set $2 - local.get $3 + local.set $5 + local.get $0 i32.const 1 i32.shl local.get $1 i32.add i32.const 9504 i32.const 9536 - local.get $0 - select local.get $2 + select + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy + local.get $4 + local.get $0 local.get $5 - local.get $2 - local.get $3 i32.add local.tee $0 i32.gt_s @@ -26312,31 +26320,28 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $3 + local.set $1 br $folding-inner01 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 br $__inlined_func$~lib/util/string/joinBooleanArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 end - local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 9600 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9600 call $~lib/string/String.__eq i32.eqz @@ -26632,7 +26637,7 @@ i32.const 3 i32.const 13376 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -26658,16 +26663,16 @@ call $~lib/rt/__newArray local.tee $1 i32.store offset=144 - local.get $3 + local.get $4 call $~lib/array/Array#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 9280 i32.store offset=8 - local.get $3 + local.get $4 i32.const 9280 call $~lib/string/String.__eq i32.eqz @@ -26681,15 +26686,15 @@ end local.get $0 call $~lib/array/Array#toString - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $3 + local.get $4 i32.store local.get $0 i32.const 13056 i32.store offset=8 - local.get $3 + local.get $4 i32.const 13056 call $~lib/string/String.__eq i32.eqz @@ -26772,14 +26777,14 @@ i32.store local.get $1 i32.load offset=4 - local.set $4 + local.set $5 local.get $1 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $3 + local.set $8 local.get $2 i32.const 4 i32.sub @@ -26804,17 +26809,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner04 local.get $6 i32.eqz if - local.get $4 + local.get $5 i32.load8_s call $~lib/util/number/itoa32 - local.set $0 + local.set $1 br $folding-inner04 end global.get $~lib/memory/__stack_pointer @@ -26823,7 +26828,7 @@ i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 11 i32.add i32.mul @@ -26837,24 +26842,24 @@ local.tee $1 i32.store loop $for-loop|06 - local.get $3 local.get $6 - i32.lt_s + local.get $8 + i32.gt_s if local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $3 - local.get $4 + local.get $5 + local.get $8 i32.add i32.load8_s call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $4 if local.get $0 i32.const 1 @@ -26862,19 +26867,19 @@ local.get $1 i32.add i32.const 9568 - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $4 i32.add local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|06 end end @@ -26884,7 +26889,7 @@ i32.shl local.get $1 i32.add - local.get $4 + local.get $5 local.get $6 i32.add i32.load8_s @@ -26897,15 +26902,13 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner04 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -26918,13 +26921,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 13632 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13632 call $~lib/string/String.__eq i32.eqz @@ -26963,14 +26966,14 @@ i32.store local.get $1 i32.load offset=4 - local.set $4 + local.set $5 local.get $1 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $3 + local.set $8 local.get $2 i32.const 4 i32.sub @@ -26995,17 +26998,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner07 local.get $6 i32.eqz if - local.get $4 + local.get $5 i32.load16_u call $~lib/util/number/utoa32 - local.set $0 + local.set $1 br $folding-inner07 end global.get $~lib/memory/__stack_pointer @@ -27014,7 +27017,7 @@ i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 10 i32.add i32.mul @@ -27028,26 +27031,26 @@ local.tee $1 i32.store loop $for-loop|09124 - local.get $3 local.get $6 - i32.lt_s + local.get $8 + i32.gt_s if local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $3 + local.get $8 i32.const 1 i32.shl - local.get $4 + local.get $5 i32.add i32.load16_u call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $4 if local.get $0 i32.const 1 @@ -27055,19 +27058,19 @@ local.get $1 i32.add i32.const 9568 - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $4 i32.add local.set $0 end - local.get $3 + local.get $8 i32.const 1 i32.add - local.set $3 + local.set $8 br $for-loop|09124 end end @@ -27080,7 +27083,7 @@ local.get $6 i32.const 1 i32.shl - local.get $4 + local.get $5 i32.add i32.load16_u call $~lib/util/number/itoa_buffered @@ -27092,15 +27095,13 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner07 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -27113,13 +27114,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 13696 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13696 call $~lib/string/String.__eq i32.eqz @@ -27339,7 +27340,7 @@ i32.store local.get $1 i32.load offset=4 - local.set $6 + local.set $7 local.get $1 i32.load offset=12 local.set $2 @@ -27364,7 +27365,7 @@ local.get $2 i32.const 1 i32.sub - local.tee $4 + local.tee $6 i32.const 0 i32.lt_s if @@ -27376,11 +27377,11 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $4 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.load local.tee $0 i32.store @@ -27407,17 +27408,17 @@ i32.load i32.const 1 i32.shr_u - local.set $3 + local.set $4 loop $for-loop|011 local.get $1 - local.get $4 + local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load local.tee $5 @@ -27437,7 +27438,7 @@ local.tee $0 i32.store offset=4 end - local.get $3 + local.get $4 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27454,10 +27455,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load local.tee $2 @@ -27554,7 +27555,7 @@ i32.store local.get $1 i32.load offset=4 - local.set $6 + local.set $7 local.get $1 i32.load offset=12 local.set $2 @@ -27579,7 +27580,7 @@ local.get $2 i32.const 1 i32.sub - local.tee $4 + local.tee $6 i32.const 0 i32.lt_s if @@ -27591,11 +27592,11 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $4 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.load local.tee $0 i32.store @@ -27622,17 +27623,17 @@ i32.load i32.const 1 i32.shr_u - local.set $3 + local.set $4 loop $for-loop|01322 local.get $1 - local.get $4 + local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load local.tee $5 @@ -27652,7 +27653,7 @@ local.tee $0 i32.store offset=4 end - local.get $3 + local.get $4 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27669,10 +27670,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load local.tee $2 @@ -27777,7 +27778,7 @@ i32.store local.get $2 i32.load offset=4 - local.set $6 + local.set $7 local.get $2 i32.load offset=12 local.set $2 @@ -27802,7 +27803,7 @@ local.get $2 i32.const 1 i32.sub - local.tee $4 + local.tee $6 i32.const 0 i32.lt_s if @@ -27814,11 +27815,11 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end - local.get $4 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $7 i32.load local.tee $0 i32.store @@ -27845,17 +27846,17 @@ i32.load i32.const 1 i32.shr_u - local.set $3 + local.set $4 loop $for-loop|01523 local.get $1 - local.get $4 + local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $1 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load local.tee $5 @@ -27875,7 +27876,7 @@ local.tee $0 i32.store offset=4 end - local.get $3 + local.get $4 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27892,10 +27893,10 @@ end end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load local.tee $2 @@ -27994,9 +27995,9 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $0 + local.tee $1 i32.store offset=128 - local.get $0 + local.get $1 i32.load offset=12 i32.const 10 i32.ne @@ -28009,16 +28010,16 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|7 - local.get $1 + local.get $0 i32.const 10 i32.lt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array#__get - local.get $1 + local.get $0 i32.ne if i32.const 0 @@ -28028,10 +28029,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|7 end end @@ -28042,13 +28043,13 @@ i32.const 42 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.load offset=4 i32.store offset=140 - local.get $3 + local.get $2 i32.const 0 i32.const 1 i32.const 2 @@ -28056,7 +28057,7 @@ i32.const 14656 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $3 + local.get $2 i32.const 1 i32.const 3 i32.const 2 @@ -28064,7 +28065,7 @@ i32.const 14752 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $3 + local.get $2 i32.const 2 i32.const 3 i32.const 2 @@ -28072,7 +28073,7 @@ i32.const 14880 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $3 + local.get $2 i32.const 3 i32.const 1 i32.const 2 @@ -28081,15 +28082,15 @@ call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 - local.get $3 + local.get $2 i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 0 local.set $1 i32.const 0 - local.set $7 + local.set $8 i32.const 0 - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -28101,21 +28102,21 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $3 + local.get $2 i32.load offset=4 - local.set $5 - local.get $3 + local.set $6 + local.get $2 i32.load offset=12 - local.set $3 + local.set $5 loop $for-loop|0133 local.get $1 - local.get $3 + local.get $5 i32.lt_s if local.get $1 i32.const 2 i32.shl - local.get $5 + local.get $6 i32.add i32.load local.tee $0 @@ -28125,9 +28126,9 @@ else i32.const 0 end - local.get $7 + local.get $8 i32.add - local.set $7 + local.set $8 local.get $1 i32.const 1 i32.add @@ -28136,64 +28137,64 @@ end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.const 2 i32.shl - local.tee $0 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 31 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $0 i32.store offset=4 + local.get $0 local.get $8 - local.get $7 i32.store offset=12 - local.get $8 local.get $0 + local.get $1 i32.store offset=8 - local.get $8 - local.get $6 + local.get $0 + local.get $7 i32.store offset=4 - local.get $8 - local.get $6 + local.get $0 + local.get $7 i32.store - local.get $8 - local.get $6 + local.get $0 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 local.set $1 loop $for-loop|1134 local.get $1 - local.get $3 + local.get $5 i32.lt_s if local.get $1 i32.const 2 i32.shl - local.get $5 + local.get $6 i32.add i32.load - local.tee $0 + local.tee $2 if - local.get $4 - local.get $6 + local.get $3 + local.get $7 i32.add - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 - local.tee $0 + local.tee $2 call $~lib/memory/memory.copy - local.get $0 - local.get $4 + local.get $2 + local.get $3 i32.add - local.set $4 + local.set $3 end local.get $1 i32.const 1 @@ -28206,14 +28207,14 @@ local.set $1 loop $for-loop|2135 local.get $1 - local.get $7 + local.get $8 i32.lt_s if - local.get $6 + local.get $7 local.get $1 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add i32.load i32.const 1 @@ -28229,7 +28230,8 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $0 + local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28237,9 +28239,9 @@ i32.const 31 i32.const 14976 call $~lib/rt/__newArray - local.tee $3 + local.tee $5 i32.store offset=148 - local.get $8 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -28252,29 +28254,29 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|8 - local.get $3 + local.get $5 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if - local.get $8 local.get $1 + local.get $0 call $~lib/array/Array#__get - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store - local.get $3 - local.get $1 + local.get $5 + local.get $0 call $~lib/array/Array#__get - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=8 + local.get $4 local.get $2 - local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -28285,10 +28287,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|8 end end diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index daa594766c..6c7fb075c0 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -1094,7 +1094,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1463,13 +1464,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index e8e14a4204..79fa20cf26 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -1100,7 +1100,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1469,13 +1470,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 304b311ca3..d6f9003a21 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -1461,7 +1461,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1830,13 +1831,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 2bf50347b2..df3ffe25a2 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -1108,7 +1108,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1477,13 +1478,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index c836c14dfb..25f9686147 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1171,8 +1171,8 @@ (func $~lib/math/NativeMath.log (param $0 f64) (result f64) (local $1 i64) (local $2 f64) - (local $3 i32) - (local $4 f64) + (local $3 f64) + (local $4 i32) (local $5 f64) (local $6 i64) (local $7 i32) @@ -1194,7 +1194,7 @@ local.tee $2 local.get $0 f64.mul - local.tee $4 + local.tee $3 local.get $0 f64.const -0.24999999999998432 f64.mul @@ -1204,7 +1204,7 @@ f64.const 0.19999999999320328 f64.mul f64.add - local.get $4 + local.get $3 local.get $0 f64.const 0.14285715076560868 f64.mul @@ -1214,7 +1214,7 @@ f64.const -0.12499997863982555 f64.mul f64.add - local.get $4 + local.get $3 local.get $0 f64.const -0.10000486757818193 f64.mul @@ -1224,7 +1224,7 @@ f64.const 0.09181994006195467 f64.mul f64.add - local.get $4 + local.get $3 f64.const -0.08328363062289341 f64.mul f64.add @@ -1250,7 +1250,7 @@ f64.mul local.tee $5 f64.add - local.tee $4 + local.tee $3 f64.sub local.get $5 f64.add @@ -1265,7 +1265,7 @@ f64.mul f64.add f64.add - local.get $4 + local.get $3 f64.add br $~lib/util/math/log_lut|inlined.0 end @@ -1273,7 +1273,7 @@ i64.const 48 i64.shr_u i32.wrap_i64 - local.tee $3 + local.tee $4 i32.const 16 i32.sub i32.const 32736 @@ -1291,30 +1291,32 @@ br_if $~lib/util/math/log_lut|inlined.0 drop local.get $0 + local.tee $2 local.get $1 i64.const 9218868437227405312 i64.eq br_if $~lib/util/math/log_lut|inlined.0 drop - local.get $0 - local.get $0 - f64.sub - local.tee $2 - local.get $2 - f64.div i32.const 1 - local.get $3 + local.get $4 i32.const 32752 i32.and i32.const 32752 i32.eq - local.get $3 + local.get $4 i32.const 32768 i32.and select - br_if $~lib/util/math/log_lut|inlined.0 - drop - local.get $0 + if + local.get $2 + local.get $2 + f64.sub + local.tee $0 + local.get $0 + f64.div + br $~lib/util/math/log_lut|inlined.0 + end + local.get $2 f64.const 4503599627370496 f64.mul i64.reinterpret_f64 @@ -1331,44 +1333,42 @@ i64.const 127 i64.and i32.wrap_i64 - local.set $3 + i32.const 4 + i32.shl + local.tee $4 + i32.const 1088 + i32.add + local.set $7 + local.get $6 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.tee $3 + f64.const 0.6931471805598903 + f64.mul + local.get $7 + f64.load offset=8 + f64.add + local.tee $2 local.get $1 local.get $6 i64.const -4503599627370496 i64.and i64.sub f64.reinterpret_i64 - local.get $3 - i32.const 4 - i32.shl - local.tee $3 + local.get $4 i32.const 3136 i32.add - local.tee $7 + local.tee $4 f64.load f64.sub - local.get $7 + local.get $4 f64.load offset=8 f64.sub - local.get $3 - i32.const 1088 - i32.add - local.tee $3 + local.get $7 f64.load f64.mul - local.set $0 - local.get $6 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.tee $4 - f64.const 0.6931471805598903 - f64.mul - local.get $3 - f64.load offset=8 - f64.add - local.tee $2 - local.get $0 + local.tee $0 f64.add local.set $5 local.get $2 @@ -1376,7 +1376,7 @@ f64.sub local.get $0 f64.add - local.get $4 + local.get $3 f64.const 5.497923018708371e-14 f64.mul f64.add @@ -1665,8 +1665,8 @@ (local $1 i32) (local $2 f64) (local $3 i32) - (local $4 f64) - (local $5 f32) + (local $4 i32) + (local $5 f64) block $~lib/util/math/logf_lut|inlined.0 (result f32) local.get $0 i32.reinterpret_f32 @@ -1689,12 +1689,6 @@ i32.eq br_if $~lib/util/math/logf_lut|inlined.0 drop - local.get $0 - local.get $0 - f32.sub - local.tee $5 - local.get $5 - f32.div i32.const 1 local.get $1 i32.const 1 @@ -1705,8 +1699,15 @@ i32.const 31 i32.shr_u select - br_if $~lib/util/math/logf_lut|inlined.0 - drop + if + local.get $0 + local.get $0 + f32.sub + local.tee $0 + local.get $0 + f32.div + br $~lib/util/math/logf_lut|inlined.0 + end local.get $0 f32.const 8388608 f32.mul @@ -1716,16 +1717,9 @@ local.set $1 end local.get $1 - local.get $1 i32.const 1060306944 i32.sub local.tee $3 - i32.const -8388608 - i32.and - i32.sub - f32.reinterpret_i32 - f64.promote_f32 - local.get $3 i32.const 19 i32.shr_u i32.const 15 @@ -1734,7 +1728,15 @@ i32.shl i32.const 5184 i32.add - local.tee $1 + local.set $4 + local.get $1 + local.get $3 + i32.const -8388608 + i32.and + i32.sub + f32.reinterpret_i32 + f64.promote_f32 + local.get $4 f64.load f64.mul f64.const 1 @@ -1742,19 +1744,19 @@ local.tee $2 local.get $2 f64.mul - local.set $4 + local.set $5 local.get $2 f64.const 0.333456765744066 f64.mul f64.const -0.4999997485802103 f64.add - local.get $4 + local.get $5 f64.const -0.25089342214237154 f64.mul f64.add - local.get $4 + local.get $5 f64.mul - local.get $1 + local.get $4 f64.load offset=8 local.get $3 i32.const 23 @@ -3354,7 +3356,6 @@ (local $5 i32) (local $6 f64) (local $7 i32) - (local $8 f64) block $__inlined_func$~lib/math/NativeMathf.cbrt (result f32) local.get $0 local.get $0 @@ -3412,13 +3413,13 @@ local.get $0 f64.promote_f32 local.tee $6 - local.get $6 + local.tee $3 + local.get $3 f64.add - local.tee $8 local.get $4 f64.add f64.mul - local.get $6 + local.get $3 local.get $4 f64.add local.get $4 @@ -3431,7 +3432,9 @@ f64.mul local.set $4 local.get $3 - local.get $8 + local.get $6 + local.get $6 + f64.add local.get $4 f64.add f64.mul @@ -6521,8 +6524,8 @@ (local $6 f64) (local $7 f64) (local $8 i64) - (local $9 f64) - (local $10 i32) + (local $9 i32) + (local $10 f64) block $~lib/util/math/log2_lut|inlined.0 (result f64) local.get $0 i64.reinterpret_f64 @@ -6561,7 +6564,7 @@ f64.mul local.tee $6 f64.add - local.tee $9 + local.tee $10 local.get $0 local.get $7 f64.sub @@ -6572,7 +6575,7 @@ f64.mul f64.add local.get $4 - local.get $9 + local.get $10 f64.sub local.get $6 f64.add @@ -6634,17 +6637,12 @@ br_if $~lib/util/math/log2_lut|inlined.0 drop local.get $0 + local.tee $2 local.get $1 i64.const 9218868437227405312 i64.eq br_if $~lib/util/math/log2_lut|inlined.0 drop - local.get $0 - local.get $0 - f64.sub - local.tee $2 - local.get $2 - f64.div i32.const 1 local.get $3 i32.const 32752 @@ -6655,9 +6653,16 @@ i32.const 32768 i32.and select - br_if $~lib/util/math/log2_lut|inlined.0 - drop - local.get $0 + if + local.get $2 + local.get $2 + f64.sub + local.tee $0 + local.get $0 + f64.div + br $~lib/util/math/log2_lut|inlined.0 + end + local.get $2 f64.const 4503599627370496 f64.mul i64.reinterpret_f64 @@ -6674,7 +6679,20 @@ i64.const 63 i64.and i32.wrap_i64 - local.set $3 + i32.const 4 + i32.shl + local.tee $3 + i32.const 7968 + i32.add + local.set $9 + local.get $8 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.get $9 + f64.load offset=8 + f64.add + local.tee $5 local.get $1 local.get $8 i64.const -4503599627370496 @@ -6682,21 +6700,15 @@ i64.sub f64.reinterpret_i64 local.get $3 - i32.const 4 - i32.shl - local.tee $3 i32.const 8992 i32.add - local.tee $10 + local.tee $3 f64.load f64.sub - local.get $10 + local.get $3 f64.load offset=8 f64.sub - local.get $3 - i32.const 7968 - i32.add - local.tee $3 + local.get $9 f64.load f64.mul local.tee $0 @@ -6707,16 +6719,7 @@ local.tee $7 f64.const 1.4426950407214463 f64.mul - local.set $4 - local.get $8 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.get $3 - f64.load offset=8 - f64.add - local.tee $5 - local.get $4 + local.tee $4 f64.add local.set $6 local.get $5 @@ -6771,8 +6774,8 @@ (local $3 i32) (local $4 f64) (local $5 i32) - (local $6 f64) - (local $7 f32) + (local $6 i32) + (local $7 f64) block $~lib/util/math/log2f_lut|inlined.0 (result f32) local.get $0 i32.reinterpret_f32 @@ -6795,12 +6798,6 @@ i32.eq br_if $~lib/util/math/log2f_lut|inlined.0 drop - local.get $0 - local.get $0 - f32.sub - local.tee $7 - local.get $7 - f32.div i32.const 1 local.get $3 i32.const 1 @@ -6811,8 +6808,15 @@ i32.const 31 i32.shr_u select - br_if $~lib/util/math/log2f_lut|inlined.0 - drop + if + local.get $0 + local.get $0 + f32.sub + local.tee $0 + local.get $0 + f32.div + br $~lib/util/math/log2f_lut|inlined.0 + end local.get $0 f32.const 8388608 f32.mul @@ -6822,16 +6826,9 @@ local.set $3 end local.get $3 - local.get $3 i32.const 1060306944 i32.sub local.tee $5 - i32.const -8388608 - i32.and - i32.sub - f32.reinterpret_i32 - f64.promote_f32 - local.get $5 i32.const 19 i32.shr_u i32.const 15 @@ -6840,7 +6837,15 @@ i32.shl i32.const 10016 i32.add - local.tee $3 + local.set $6 + local.get $3 + local.get $5 + i32.const -8388608 + i32.and + i32.sub + f32.reinterpret_i32 + f64.promote_f32 + local.get $6 f64.load f64.mul f64.const 1 @@ -6848,22 +6853,22 @@ local.tee $4 local.get $4 f64.mul - local.set $6 + local.set $7 local.get $4 f64.const 0.4811247078767291 f64.mul f64.const -0.7213476299867769 f64.add - local.get $6 + local.get $7 f64.const -0.36051725506874704 f64.mul f64.add - local.get $6 + local.get $7 f64.mul local.get $4 f64.const 1.4426950186867042 f64.mul - local.get $3 + local.get $6 f64.load offset=8 local.get $5 i32.const 23 @@ -7340,20 +7345,20 @@ (local $2 i64) (local $3 i32) (local $4 f64) - (local $5 i32) - (local $6 f64) + (local $5 f64) + (local $6 i64) (local $7 i64) (local $8 f64) (local $9 i64) - (local $10 i64) - (local $11 i64) - (local $12 f64) + (local $10 f64) + (local $11 i32) + (local $12 i32) (local $13 f64) - (local $14 f64) + (local $14 i64) (local $15 f64) (local $16 f64) (local $17 f64) - (local $18 i32) + (local $18 f64) local.get $1 f64.abs f64.const 2 @@ -7406,21 +7411,21 @@ return end end - local.get $1 - local.tee $6 - i64.reinterpret_f64 - local.tee $7 - i64.const 52 - i64.shr_u - local.set $10 - block $~lib/util/math/pow_lut|inlined.0 + block $~lib/util/math/pow_lut|inlined.0 (result f64) + local.get $1 + local.tee $5 + i64.reinterpret_f64 + local.tee $7 + i64.const 52 + i64.shr_u + local.set $9 local.get $0 local.tee $4 i64.reinterpret_f64 local.tee $2 i64.const 52 i64.shr_u - local.tee $9 + local.tee $14 i64.const 1 i64.sub i64.const 2046 @@ -7428,7 +7433,7 @@ if (result i32) i32.const 1 else - local.get $10 + local.get $9 i64.const 2047 i64.and i64.const 958 @@ -7446,22 +7451,21 @@ i64.ge_u if f64.const 1 - local.set $0 local.get $7 i64.const 1 i64.shl i64.eqz br_if $~lib/util/math/pow_lut|inlined.0 + drop f64.const nan:0x8000000000000 - local.set $0 local.get $2 i64.const 4607182418800017408 i64.eq br_if $~lib/util/math/pow_lut|inlined.0 + drop local.get $4 - local.get $6 + local.get $5 f64.add - local.set $0 i32.const 1 local.get $7 i64.const 1 @@ -7475,16 +7479,16 @@ i64.gt_u select br_if $~lib/util/math/pow_lut|inlined.0 + drop f64.const nan:0x8000000000000 - local.set $0 local.get $2 i64.const 1 i64.shl i64.const 9214364837600034816 i64.eq br_if $~lib/util/math/pow_lut|inlined.0 + drop f64.const 0 - local.set $0 local.get $7 i64.const 63 i64.shr_u @@ -7496,10 +7500,10 @@ i64.lt_u i32.eq br_if $~lib/util/math/pow_lut|inlined.0 - local.get $6 - local.get $6 + drop + local.get $5 + local.get $5 f64.mul - local.set $0 br $~lib/util/math/pow_lut|inlined.0 end local.get $2 @@ -7529,13 +7533,13 @@ i64.shr_u i64.const 2047 i64.and - local.tee $2 + local.tee $6 i64.const 1023 i64.lt_u br_if $~lib/util/math/checkint|inlined.0 drop i32.const 2 - local.get $2 + local.get $6 i64.const 1075 i64.gt_u br_if $~lib/util/math/checkint|inlined.0 @@ -7543,10 +7547,10 @@ i32.const 0 i64.const 1 i64.const 1075 - local.get $2 + local.get $6 i64.sub i64.shl - local.tee $2 + local.tee $6 i64.const 1 i64.sub local.get $7 @@ -7556,7 +7560,7 @@ br_if $~lib/util/math/checkint|inlined.0 drop i32.const 1 - local.get $2 + local.get $6 local.get $7 i64.and i64.const 0 @@ -7579,7 +7583,6 @@ i64.shr_u i32.wrap_i64 select - local.set $0 br $~lib/util/math/pow_lut|inlined.0 end local.get $2 @@ -7587,13 +7590,6 @@ i64.shr_u i32.wrap_i64 if - local.get $4 - local.get $4 - f64.sub - local.tee $0 - local.get $0 - f64.div - local.set $0 block $~lib/util/math/checkint|inlined.1 (result i32) i32.const 0 local.get $7 @@ -7601,13 +7597,13 @@ i64.shr_u i64.const 2047 i64.and - local.tee $11 + local.tee $6 i64.const 1023 i64.lt_u br_if $~lib/util/math/checkint|inlined.1 drop i32.const 2 - local.get $11 + local.get $6 i64.const 1075 i64.gt_u br_if $~lib/util/math/checkint|inlined.1 @@ -7615,10 +7611,10 @@ i32.const 0 i64.const 1 i64.const 1075 - local.get $11 + local.get $6 i64.sub i64.shl - local.tee $11 + local.tee $6 i64.const 1 i64.sub local.get $7 @@ -7628,8 +7624,8 @@ br_if $~lib/util/math/checkint|inlined.1 drop i32.const 1 + local.get $6 local.get $7 - local.get $11 i64.and i64.const 0 i64.ne @@ -7637,26 +7633,34 @@ drop i32.const 2 end - local.tee $5 + local.tee $11 i32.eqz - br_if $~lib/util/math/pow_lut|inlined.0 + if + local.get $4 + local.get $4 + f64.sub + local.tee $0 + local.get $0 + f64.div + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $14 + i64.const 2047 + i64.and + local.set $14 i32.const 262144 i32.const 0 - local.get $5 + local.get $11 i32.const 1 i32.eq select - local.set $3 - local.get $9 - i64.const 2047 - i64.and - local.set $9 + local.set $12 local.get $2 i64.const 9223372036854775807 i64.and local.set $2 end - local.get $10 + local.get $9 i64.const 2047 i64.and i64.const 958 @@ -7665,20 +7669,22 @@ i64.ge_u if f64.const 1 - local.set $0 local.get $2 i64.const 4607182418800017408 i64.eq br_if $~lib/util/math/pow_lut|inlined.0 - local.get $10 + drop + f64.const 1 + local.get $9 i64.const 2047 i64.and i64.const 958 i64.lt_u br_if $~lib/util/math/pow_lut|inlined.0 + drop f64.const inf f64.const 0 - local.get $10 + local.get $9 i64.const 2048 i64.lt_u local.get $2 @@ -7686,10 +7692,9 @@ i64.gt_u i32.eq select - local.set $0 br $~lib/util/math/pow_lut|inlined.0 end - local.get $9 + local.get $14 i64.eqz if (result i64) local.get $4 @@ -7706,120 +7711,118 @@ local.set $2 end local.get $2 + local.get $2 i64.const 4604531861337669632 i64.sub local.tee $9 - i64.const 45 - i64.shr_u - i64.const 127 - i64.and - i32.wrap_i64 - local.set $5 - local.get $2 - local.get $9 i64.const -4503599627370496 i64.and i64.sub - local.tee $2 + local.tee $6 i64.const 2147483648 i64.add i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $4 - local.get $5 + local.tee $0 + local.get $9 + i64.const 45 + i64.shr_u + i64.const 127 + i64.and + i32.wrap_i64 i32.const 5 i32.shl i32.const 10272 i32.add - local.tee $5 + local.tee $11 f64.load - local.tee $0 + local.tee $1 f64.mul f64.const 1 f64.sub - local.set $1 + local.set $13 local.get $9 i64.const 52 i64.shr_s f64.convert_i64_s - local.tee $12 + local.tee $17 f64.const 0.6931471805598903 f64.mul - local.get $5 + local.get $11 f64.load offset=16 f64.add - local.tee $13 - local.get $1 - local.get $2 + local.tee $8 + local.get $13 + local.get $6 f64.reinterpret_i64 - local.get $4 - f64.sub local.get $0 + f64.sub + local.get $1 f64.mul - local.tee $14 + local.tee $18 f64.add - local.tee $0 + local.tee $10 f64.add - local.set $4 - local.get $0 - local.get $0 + local.set $15 + local.get $10 + local.get $10 f64.const -0.5 f64.mul - local.tee $15 + local.tee $4 f64.mul - local.set $8 - local.get $4 - local.get $1 - local.get $1 + local.set $16 + local.get $15 + local.get $13 + local.get $13 f64.const -0.5 f64.mul - local.tee $16 + local.tee $1 f64.mul - local.tee $17 + local.tee $0 f64.add - local.tee $1 - local.get $1 - local.get $12 + local.tee $13 + local.get $13 + local.get $17 f64.const 5.497923018708371e-14 f64.mul - local.get $5 + local.get $11 f64.load offset=24 f64.add - local.get $13 - local.get $4 + local.get $8 + local.get $15 f64.sub - local.get $0 + local.get $10 f64.add f64.add - local.get $14 - local.get $15 - local.get $16 + local.get $18 + local.get $4 + local.get $1 f64.add f64.mul f64.add - local.get $4 - local.get $1 + local.get $15 + local.get $13 f64.sub - local.get $17 + local.get $0 f64.add f64.add - local.get $0 - local.get $8 + local.get $10 + local.get $16 f64.mul - local.get $0 + local.get $10 f64.const 0.5000000000000007 f64.mul f64.const -0.6666666666666679 f64.add - local.get $8 - local.get $0 + local.get $16 + local.get $10 f64.const -0.6666666663487739 f64.mul f64.const 0.7999999995323976 f64.add - local.get $8 - local.get $0 + local.get $16 + local.get $10 f64.const 1.0000415263675542 f64.mul f64.const -1.142909628459501 @@ -7830,11 +7833,11 @@ f64.add f64.mul f64.add - local.tee $4 - f64.add local.tee $0 + f64.add + local.tee $8 f64.sub - local.get $4 + local.get $0 f64.add global.set $~lib/util/math/log_tail block $~lib/util/math/exp_inline|inlined.0 (result f64) @@ -7842,8 +7845,8 @@ i64.const -134217728 i64.and f64.reinterpret_i64 - local.tee $8 - local.get $0 + local.tee $0 + local.get $8 i64.reinterpret_f64 i64.const -134217728 i64.and @@ -7851,13 +7854,13 @@ local.tee $1 f64.mul local.set $4 - local.get $6 - local.get $8 + local.get $5 + local.get $0 f64.sub local.get $1 f64.mul - local.get $6 - local.get $0 + local.get $5 + local.get $8 local.get $1 f64.sub global.get $~lib/util/math/log_tail @@ -7865,11 +7868,9 @@ f64.mul f64.add local.set $1 - local.get $3 - local.set $5 local.get $4 i64.reinterpret_f64 - local.tee $2 + local.tee $6 i64.const 52 i64.shr_u i32.wrap_i64 @@ -7883,7 +7884,7 @@ if f64.const -1 f64.const 1 - local.get $5 + local.get $12 select local.get $3 i32.const 969 @@ -7892,21 +7893,21 @@ i32.ge_u br_if $~lib/util/math/exp_inline|inlined.0 drop - local.get $2 + local.get $6 i64.const 63 i64.shr_u i32.wrap_i64 if (result f64) f64.const -1.2882297539194267e-231 f64.const 1.2882297539194267e-231 - local.get $5 + local.get $12 select f64.const 1.2882297539194267e-231 f64.mul else f64.const -3105036184601417870297958e207 f64.const 3105036184601417870297958e207 - local.get $5 + local.get $12 select f64.const 3105036184601417870297958e207 f64.mul @@ -7926,7 +7927,7 @@ f64.add local.tee $0 i64.reinterpret_f64 - local.tee $7 + local.tee $9 i64.const 127 i64.and i64.const 1 @@ -7936,16 +7937,16 @@ i32.shl i32.const 5664 i32.add - local.tee $18 + local.tee $11 i64.load offset=8 - local.get $5 + local.get $12 i64.extend_i32_u - local.get $7 + local.get $9 i64.add i64.const 45 i64.shl i64.add - local.set $2 + local.set $6 local.get $4 local.get $0 f64.const 6755399441055744 @@ -7960,26 +7961,26 @@ f64.add local.get $1 f64.add - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 f64.mul - local.set $1 - local.get $18 + local.set $0 + local.get $11 f64.load - local.get $0 - f64.add local.get $1 + f64.add local.get $0 + local.get $1 f64.const 0.16666666666665886 f64.mul f64.const 0.49999999999996786 f64.add f64.mul f64.add - local.get $1 - local.get $1 - f64.mul local.get $0 + local.get $0 + f64.mul + local.get $1 f64.const 0.008333335853059549 f64.mul f64.const 0.0416666808410674 @@ -7991,12 +7992,12 @@ i32.eqz if block $~lib/util/math/specialcase|inlined.1 (result f64) - local.get $7 + local.get $9 i64.const 2147483648 i64.and i64.eqz if - local.get $2 + local.get $6 i64.const 4544132024016830464 i64.sub f64.reinterpret_i64 @@ -8009,35 +8010,35 @@ f64.mul br $~lib/util/math/specialcase|inlined.1 end - local.get $2 + local.get $6 i64.const 4602678819172646912 i64.add - local.tee $2 + local.tee $6 f64.reinterpret_i64 local.tee $4 local.get $4 local.get $0 f64.mul f64.add - local.tee $1 + local.tee $8 f64.abs f64.const 1 f64.lt if (result f64) f64.const 1 - local.get $1 + local.get $8 f64.copysign - local.tee $6 - local.get $1 - f64.add - local.tee $8 - local.get $6 + local.tee $5 local.get $8 - f64.sub + f64.add + local.tee $1 + local.get $5 local.get $1 + f64.sub + local.get $8 f64.add local.get $4 - local.get $1 + local.get $8 f64.sub local.get $4 local.get $0 @@ -8045,28 +8046,28 @@ f64.add f64.add f64.add - local.get $6 + local.get $5 f64.sub - local.tee $1 + local.tee $8 f64.const 0 f64.eq if (result f64) - local.get $2 + local.get $6 i64.const -9223372036854775808 i64.and f64.reinterpret_i64 else - local.get $1 + local.get $8 end else - local.get $1 + local.get $8 end f64.const 2.2250738585072014e-308 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end - local.get $2 + local.get $6 f64.reinterpret_i64 local.tee $1 local.get $1 @@ -8074,9 +8075,7 @@ f64.mul f64.add end - local.set $0 end - local.get $0 ) (func $std/math/test_pow (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 @@ -8098,13 +8097,12 @@ ) (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) (local $2 i32) - (local $3 f32) + (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) + (local $5 i64) + (local $6 i32) + (local $7 f64) (local $8 f64) - (local $9 f64) local.get $1 f32.abs f32.const 2 @@ -8157,20 +8155,18 @@ return end end - block $~lib/util/math/powf_lut|inlined.0 + block $~lib/util/math/powf_lut|inlined.0 (result f32) local.get $1 - local.tee $3 i32.reinterpret_f32 - local.tee $5 + local.tee $4 i32.const 1 i32.shl i32.const 1 i32.sub i32.const -16777217 i32.ge_u - local.tee $4 + local.tee $3 local.get $0 - local.tee $1 i32.reinterpret_f32 local.tee $2 i32.const 8388608 @@ -8179,27 +8175,26 @@ i32.ge_u i32.or if - local.get $4 + local.get $3 if f32.const 1 - local.set $0 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.eqz br_if $~lib/util/math/powf_lut|inlined.0 + drop f32.const nan:0x400000 - local.set $0 local.get $2 i32.const 1065353216 i32.eq br_if $~lib/util/math/powf_lut|inlined.0 + drop + local.get $0 local.get $1 - local.get $3 f32.add - local.set $0 i32.const 1 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.const -16777216 @@ -8211,17 +8206,17 @@ i32.gt_u select br_if $~lib/util/math/powf_lut|inlined.0 + drop f32.const nan:0x400000 - local.set $0 local.get $2 i32.const 1 i32.shl i32.const 2130706432 i32.eq br_if $~lib/util/math/powf_lut|inlined.0 + drop f32.const 0 - local.set $0 - local.get $5 + local.get $4 i32.const 31 i32.shr_u i32.eqz @@ -8232,10 +8227,10 @@ i32.lt_u i32.eq br_if $~lib/util/math/powf_lut|inlined.0 - local.get $3 - local.get $3 + drop + local.get $1 + local.get $1 f32.mul - local.set $0 br $~lib/util/math/powf_lut|inlined.0 end local.get $2 @@ -8247,8 +8242,8 @@ i32.ge_u if f32.const 1 - local.get $1 - local.get $1 + local.get $0 + local.get $0 f32.mul local.tee $0 f32.neg @@ -8259,7 +8254,7 @@ if (result i32) block $~lib/util/math/checkintf|inlined.0 (result i32) i32.const 0 - local.get $5 + local.get $4 i32.const 23 i32.shr_u i32.const 255 @@ -8284,13 +8279,13 @@ local.tee $2 i32.const 1 i32.sub - local.get $5 + local.get $4 i32.and br_if $~lib/util/math/checkintf|inlined.0 drop i32.const 1 local.get $2 - local.get $5 + local.get $4 i32.and br_if $~lib/util/math/checkintf|inlined.0 drop @@ -8305,39 +8300,31 @@ local.tee $0 f32.div local.get $0 - local.get $5 + local.get $4 i32.const 31 i32.shr_u select - local.set $0 br $~lib/util/math/powf_lut|inlined.0 end local.get $2 i32.const 31 i32.shr_u if - local.get $1 - local.get $1 - f32.sub - local.tee $0 - local.get $0 - f32.div - local.set $0 block $~lib/util/math/checkintf|inlined.1 (result i32) i32.const 0 - local.get $5 - local.tee $4 + local.get $4 + local.tee $3 i32.const 23 i32.shr_u i32.const 255 i32.and - local.tee $5 + local.tee $4 i32.const 127 i32.lt_u br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 2 - local.get $5 + local.get $4 i32.const 150 i32.gt_u br_if $~lib/util/math/checkintf|inlined.1 @@ -8345,34 +8332,42 @@ i32.const 0 i32.const 1 i32.const 150 - local.get $5 + local.get $4 i32.sub i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.sub - local.get $4 + local.get $3 i32.and br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 1 + local.get $3 local.get $4 - local.get $5 i32.and br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 2 end - local.tee $5 + local.tee $4 i32.eqz - br_if $~lib/util/math/powf_lut|inlined.0 + if + local.get $0 + local.get $0 + f32.sub + local.tee $0 + local.get $0 + f32.div + br $~lib/util/math/powf_lut|inlined.0 + end i32.const 65536 i32.const 0 - local.get $5 + local.get $4 i32.const 1 i32.eq select - local.set $7 + local.set $6 local.get $2 i32.const 2147483647 i32.and @@ -8382,7 +8377,7 @@ i32.const 8388608 i32.lt_u if (result i32) - local.get $1 + local.get $0 f32.const 8388608 f32.mul i32.reinterpret_f32 @@ -8396,23 +8391,21 @@ local.set $2 end local.get $2 + local.get $2 i32.const 1060306944 i32.sub - local.tee $5 - i32.const 19 - i32.shr_u - i32.const 15 - i32.and - local.set $4 - local.get $2 - local.get $5 + local.tee $4 i32.const -8388608 i32.and - local.tee $5 + local.tee $3 i32.sub f32.reinterpret_i32 f64.promote_f32 local.get $4 + i32.const 19 + i32.shr_u + i32.const 15 + i32.and i32.const 4 i32.shl i32.const 10016 @@ -8422,43 +8415,43 @@ f64.mul f64.const 1 f64.sub - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.mul - local.set $8 - local.get $3 + local.set $7 + local.get $1 f64.promote_f32 - local.get $9 + local.get $8 f64.const 0.288457581109214 f64.mul f64.const -0.36092606229713164 f64.add - local.get $8 - local.get $8 + local.get $7 + local.get $7 f64.mul f64.mul - local.get $9 + local.get $8 f64.const 1.4426950408774342 f64.mul local.get $4 f64.load offset=8 - local.get $5 + local.get $3 i32.const 23 i32.shr_s f64.convert_i32_s f64.add f64.add - local.get $9 + local.get $8 f64.const 0.480898481472577 f64.mul f64.const -0.7213474675006291 f64.add - local.get $8 + local.get $7 f64.mul f64.add f64.add f64.mul - local.tee $9 + local.tee $8 i64.reinterpret_f64 i64.const 47 i64.shr_u @@ -8467,60 +8460,56 @@ i64.const 32959 i64.ge_u if - local.get $9 + f32.const -1584563250285286751870879e5 + f32.const 1584563250285286751870879e5 + local.get $6 + select + f32.const 1584563250285286751870879e5 + f32.mul + local.get $8 f64.const 127.99999995700433 f64.gt - if - f32.const -1584563250285286751870879e5 - f32.const 1584563250285286751870879e5 - local.get $7 - select - f32.const 1584563250285286751870879e5 - f32.mul - local.set $0 - br $~lib/util/math/powf_lut|inlined.0 - end - local.get $9 + br_if $~lib/util/math/powf_lut|inlined.0 + drop + f32.const -2.524354896707238e-29 + f32.const 2.524354896707238e-29 + local.get $6 + select + f32.const 2.524354896707238e-29 + f32.mul + local.get $8 f64.const -150 f64.le - if - f32.const -2.524354896707238e-29 - f32.const 2.524354896707238e-29 - local.get $7 - select - f32.const 2.524354896707238e-29 - f32.mul - local.set $0 - br $~lib/util/math/powf_lut|inlined.0 - end + br_if $~lib/util/math/powf_lut|inlined.0 + drop end - local.get $9 + local.get $8 f64.const 211106232532992 f64.add - local.tee $8 + local.tee $7 i64.reinterpret_f64 - local.set $6 - local.get $9 + local.set $5 local.get $8 + local.get $7 f64.const 211106232532992 f64.sub f64.sub - local.tee $9 + local.tee $8 f64.const 0.6931471806916203 f64.mul f64.const 1 f64.add - local.get $9 + local.get $8 f64.const 0.05550361559341535 f64.mul f64.const 0.2402284522445722 f64.add - local.get $9 - local.get $9 + local.get $8 + local.get $8 f64.mul f64.mul f64.add - local.get $6 + local.get $5 i32.wrap_i64 i32.const 31 i32.and @@ -8529,9 +8518,9 @@ i32.const 7712 i32.add i64.load - local.get $7 - i64.extend_i32_u local.get $6 + i64.extend_i32_u + local.get $5 i64.add i64.const 47 i64.shl @@ -8539,9 +8528,7 @@ f64.reinterpret_i64 f64.mul f32.demote_f64 - local.set $0 end - local.get $0 ) (func $~lib/math/NativeMath.seedRandom (param $0 i64) (local $1 i32) diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index ba1cc18e75..37485b7a44 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -1084,7 +1084,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1245,13 +1246,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index d03152ff94..b8e8be92ed 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -1143,7 +1143,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1252,13 +1253,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end @@ -2128,21 +2129,21 @@ global.set $std/operator-overloading/a2 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a1 - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a @@ -2176,23 +2177,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/s1 local.tee $1 + global.get $std/operator-overloading/s1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/s2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.sub local.get $1 - i32.load offset=4 + i32.load + i32.sub local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s @@ -2224,23 +2225,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/m1 local.tee $1 + global.get $std/operator-overloading/m1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/m2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.mul local.get $1 - i32.load offset=4 + i32.load + i32.mul local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.mul call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m @@ -2274,23 +2275,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/d1 local.tee $1 + global.get $std/operator-overloading/d1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/d2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.div_s local.get $1 - i32.load offset=4 + i32.load + i32.div_s local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.div_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d @@ -2324,23 +2325,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/f1 local.tee $1 + global.get $std/operator-overloading/f1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/f2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.rem_s local.get $1 - i32.load offset=4 + i32.load + i32.rem_s local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.rem_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f @@ -2371,23 +2372,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/p1 local.tee $1 + global.get $std/operator-overloading/p1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/p2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - call $~lib/math/ipow32 local.get $1 - i32.load offset=4 + i32.load + call $~lib/math/ipow32 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p @@ -2421,23 +2422,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/n1 local.tee $1 + global.get $std/operator-overloading/n1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/n2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.and local.get $1 - i32.load offset=4 + i32.load + i32.and local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.and call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n @@ -2471,23 +2472,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/o1 local.tee $1 + global.get $std/operator-overloading/o1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/o2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.or local.get $1 - i32.load offset=4 + i32.load + i32.or local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.or call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o @@ -2521,23 +2522,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/x1 local.tee $1 + global.get $std/operator-overloading/x1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/x2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load - i32.xor local.get $1 - i32.load offset=4 + i32.load + i32.xor local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.xor call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x @@ -2571,24 +2572,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/eq1 local.tee $1 + global.get $std/operator-overloading/eq1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/eq2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.eq if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.eq else i32.const 0 @@ -2614,24 +2615,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq4 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/eq3 local.tee $1 + global.get $std/operator-overloading/eq3 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/eq4 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.eq if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.eq else i32.const 0 @@ -2647,24 +2648,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/eq1 local.tee $1 + global.get $std/operator-overloading/eq1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/eq2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.ne if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.ne else i32.const 0 @@ -2680,24 +2681,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/eq3 local.tee $1 + global.get $std/operator-overloading/eq3 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/eq4 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.ne if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.ne else i32.const 0 @@ -2723,24 +2724,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gt2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/gt1 local.tee $1 + global.get $std/operator-overloading/gt1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/gt2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.gt_s if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.gt_s else i32.const 0 @@ -2766,24 +2767,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gte2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/gte1 local.tee $1 + global.get $std/operator-overloading/gte1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/gte2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.ge_s if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.ge_s else i32.const 0 @@ -2809,24 +2810,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/le2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/le1 local.tee $1 + global.get $std/operator-overloading/le1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/le2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.lt_s if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.lt_s else i32.const 0 @@ -2852,24 +2853,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/leq2 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/leq1 local.tee $1 + global.get $std/operator-overloading/leq1 + local.tee $0 i32.store - local.get $0 + local.get $1 global.get $std/operator-overloading/leq2 - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 - i32.load local.get $0 i32.load + local.get $1 + i32.load i32.le_s if (result i32) - local.get $1 - i32.load offset=4 local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.le_s else i32.const 0 @@ -3379,18 +3380,18 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/ais1 local.tee $1 + global.get $std/operator-overloading/ais1 + local.tee $0 i32.store - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.load i32.const 1 i32.add - local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.add @@ -3401,22 +3402,23 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais2 global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/ais1 local.tee $1 + global.get $std/operator-overloading/ais1 + local.tee $0 i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $1 global.get $std/operator-overloading/ais2 - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais @@ -3464,22 +3466,23 @@ call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii2 global.get $~lib/memory/__stack_pointer - global.get $std/operator-overloading/aii1 local.tee $1 + global.get $std/operator-overloading/aii1 + local.tee $0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $1 global.get $std/operator-overloading/aii2 - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii diff --git a/tests/compiler/std/pointer.optimized.wat b/tests/compiler/std/pointer.optimized.wat index 8868412514..7be887b047 100644 --- a/tests/compiler/std/pointer.optimized.wat +++ b/tests/compiler/std/pointer.optimized.wat @@ -835,9 +835,10 @@ i32.add global.set $std/pointer/one global.get $std/pointer/one + local.tee $1 global.set $std/pointer/nextOne global.get $std/pointer/nextOne - global.get $std/pointer/one + local.get $1 i32.ne if i32.const 0 @@ -913,44 +914,44 @@ unreachable end global.get $std/pointer/one - local.set $3 + local.set $0 global.get $std/pointer/two - local.tee $2 + local.tee $1 if block $~lib/util/memory/memmove|inlined.0 i32.const 8 local.set $4 - local.get $2 - local.get $3 + local.get $0 + local.get $1 i32.eq br_if $~lib/util/memory/memmove|inlined.0 - local.get $2 - local.get $3 + local.get $1 + local.get $0 i32.sub i32.const 8 i32.sub i32.const -16 i32.le_u if - local.get $3 - local.get $2 + local.get $0 + local.get $1 call $~lib/util/memory/memcpy br $~lib/util/memory/memmove|inlined.0 end - local.get $2 - local.get $3 - i32.gt_u + local.get $0 + local.get $1 + i32.lt_u if - local.get $2 + local.get $1 i32.const 7 i32.and - local.get $3 + local.get $0 i32.const 7 i32.and i32.eq if loop $while-continue|0 - local.get $3 + local.get $0 i32.const 7 i32.and if @@ -961,18 +962,18 @@ i32.const 1 i32.sub local.set $4 - local.get $3 - local.tee $0 + local.get $0 + local.tee $3 i32.const 1 i32.add - local.set $3 - local.get $2 - local.tee $1 + local.set $0 + local.get $1 + local.tee $2 i32.const 1 i32.add - local.set $2 - local.get $0 - local.get $1 + local.set $1 + local.get $3 + local.get $2 i32.load8_u i32.store8 br $while-continue|0 @@ -983,22 +984,22 @@ i32.const 8 i32.ge_u if - local.get $3 - local.get $2 + local.get $0 + local.get $1 i64.load i64.store local.get $4 i32.const 8 i32.sub local.set $4 - local.get $3 + local.get $0 i32.const 8 i32.add - local.set $3 - local.get $2 + local.set $0 + local.get $1 i32.const 8 i32.add - local.set $2 + local.set $1 br $while-continue|1 end end @@ -1006,18 +1007,18 @@ loop $while-continue|2 local.get $4 if - local.get $3 - local.tee $0 + local.get $0 + local.tee $3 i32.const 1 i32.add - local.set $3 - local.get $2 - local.tee $1 + local.set $0 + local.get $1 + local.tee $2 i32.const 1 i32.add - local.set $2 - local.get $0 - local.get $1 + local.set $1 + local.get $3 + local.get $2 i32.load8_u i32.store8 local.get $4 @@ -1028,16 +1029,16 @@ end end else - local.get $2 + local.get $1 i32.const 7 i32.and - local.get $3 + local.get $0 i32.const 7 i32.and i32.eq if loop $while-continue|3 - local.get $3 + local.get $0 local.get $4 i32.add i32.const 7 @@ -1050,9 +1051,9 @@ i32.const 1 i32.sub local.tee $4 - local.get $3 + local.get $0 i32.add - local.get $2 + local.get $1 local.get $4 i32.add i32.load8_u @@ -1069,9 +1070,9 @@ i32.const 8 i32.sub local.tee $4 - local.get $3 + local.get $0 i32.add - local.get $2 + local.get $1 local.get $4 i32.add i64.load @@ -1087,9 +1088,9 @@ i32.const 1 i32.sub local.tee $4 - local.get $3 + local.get $0 i32.add - local.get $2 + local.get $1 local.get $4 i32.add i32.load8_u @@ -1100,37 +1101,37 @@ end end else - local.get $3 + local.get $0 i32.const 0 i32.store8 - local.get $3 + local.get $0 i32.const 8 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $3 + local.get $0 i32.const 0 i32.store8 offset=1 - local.get $3 + local.get $0 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $3 + local.get $0 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1294,10 +1295,10 @@ unreachable end global.get $std/pointer/buf - local.tee $1 + local.tee $2 f32.const 1.399999976158142 f32.store - local.get $1 + local.get $2 f32.load f32.const 1.399999976158142 f32.ne diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 9589a15377..9b8135474e 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -1101,7 +1101,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1470,13 +1471,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index a9f0e35d86..2ca885c083 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -1139,7 +1139,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -2264,13 +2265,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index 0567f41ad5..74fa43602d 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -1229,7 +1229,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1598,13 +1599,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index c62779b7b9..ed15009355 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -1532,7 +1532,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1725,13 +1726,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 4552bec4db..9f3e92b0f1 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -1117,7 +1117,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1310,13 +1311,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 749435048e..41e94970ea 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -2127,7 +2127,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -2496,13 +2497,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 5fd9c9e52e..eec1ce5183 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -1185,7 +1185,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1554,13 +1555,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 7ea6a78dae..130dcd3d8c 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -1750,7 +1750,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -2254,9 +2255,9 @@ local.get $0 i64.extend_i32_u local.tee $4 - local.get $4 i64.const 32 i64.shl + local.get $4 i64.or local.set $4 loop $while-continue|0 @@ -2337,13 +2338,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -3309,14 +3310,14 @@ i32.shl local.get $0 i32.add - local.tee $3 + local.tee $7 f64.load f64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 f64.store local.get $2 @@ -3384,6 +3385,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -3391,7 +3393,6 @@ i32.const 3 i32.shl local.tee $10 - local.get $4 i32.add local.get $0 local.get $10 @@ -3767,11 +3768,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -3795,11 +3796,11 @@ br $for-loop|3 end end + local.get $12 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $12 i32.add local.get $3 i32.store @@ -27685,7 +27686,7 @@ i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $11 + local.tee $8 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -27707,10 +27708,10 @@ local.tee $13 i32.const 3 i32.shl - local.tee $8 + local.tee $11 i32.sub global.set $~lib/util/number/_K - local.get $8 + local.get $11 i32.const 9864 i32.add i64.load @@ -27840,7 +27841,7 @@ i64.add local.get $12 global.get $~lib/util/number/_exp_pow - local.get $11 + local.get $8 i32.add i32.const -64 i32.sub @@ -28600,8 +28601,8 @@ ) (func $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 i64) local.get $2 i32.const 0 i32.lt_s @@ -28634,10 +28635,10 @@ local.get $0 i32.load offset=4 i32.add - local.set $0 + local.set $2 local.get $1 i32.load offset=4 - local.set $2 + local.set $4 local.get $1 i32.load offset=8 i32.const 3 @@ -28648,26 +28649,26 @@ local.get $3 i32.gt_s if - local.get $0 + local.get $2 local.get $3 i32.add local.get $3 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add i64.load - local.tee $4 - i32.wrap_i64 local.tee $5 + i32.wrap_i64 + local.tee $0 i32.const 31 i32.shr_s i32.const -1 i32.xor i64.extend_i32_s - local.get $4 - i32.const 255 local.get $5 + i32.const 255 + local.get $0 i32.sub i32.const 31 i32.shr_s @@ -29742,20 +29743,20 @@ i32.add local.tee $3 i32.load8_s - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.add - local.tee $3 + local.tee $5 i32.load8_s i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store8 local.get $2 i32.const 1 @@ -29818,11 +29819,11 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub local.tee $2 - local.get $4 i32.add local.get $0 local.get $2 @@ -30182,11 +30183,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -30210,11 +30211,11 @@ br $for-loop|3 end end + local.get $10 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $10 i32.add local.get $3 i32.store @@ -30509,20 +30510,20 @@ i32.add local.tee $3 i32.load8_u - local.set $5 + local.set $6 local.get $3 local.get $0 local.get $2 i32.add - local.tee $3 + local.tee $5 i32.load8_u i32.store8 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store8 local.get $2 i32.const 1 @@ -30585,11 +30586,11 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub local.tee $2 - local.get $4 i32.add local.get $0 local.get $2 @@ -30949,11 +30950,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -30977,11 +30978,11 @@ br $for-loop|3 end end + local.get $10 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $10 i32.add local.get $3 i32.store @@ -31308,22 +31309,22 @@ i32.add local.tee $3 i32.load16_s - local.set $5 + local.set $6 local.get $3 local.get $2 i32.const 1 i32.shl local.get $0 i32.add - local.tee $3 + local.tee $5 i32.load16_s i32.store16 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store16 local.get $2 i32.const 1 @@ -31388,6 +31389,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -31395,7 +31397,6 @@ i32.const 1 i32.shl local.tee $8 - local.get $4 i32.add local.get $0 local.get $8 @@ -31442,18 +31443,18 @@ local.get $4 i32.add i32.load16_s - local.set $7 + local.set $8 local.get $2 i32.const 1 i32.shl local.get $4 i32.add i32.load16_s - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -31465,7 +31466,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store16 local.get $6 i32.const 1 @@ -31477,7 +31478,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store16 local.get $2 i32.const 1 @@ -31769,11 +31770,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -31797,11 +31798,11 @@ br $for-loop|3 end end + local.get $10 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $10 i32.add local.get $3 i32.store @@ -32118,22 +32119,22 @@ i32.add local.tee $3 i32.load16_u - local.set $5 + local.set $6 local.get $3 local.get $2 i32.const 1 i32.shl local.get $0 i32.add - local.tee $3 + local.tee $5 i32.load16_u i32.store16 local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store16 local.get $2 i32.const 1 @@ -32198,6 +32199,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -32205,7 +32207,6 @@ i32.const 1 i32.shl local.tee $8 - local.get $4 i32.add local.get $0 local.get $8 @@ -32252,18 +32253,18 @@ local.get $4 i32.add i32.load16_u - local.set $7 + local.set $8 local.get $2 i32.const 1 i32.shl local.get $4 i32.add i32.load16_u - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -32275,7 +32276,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store16 local.get $6 i32.const 1 @@ -32287,7 +32288,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store16 local.get $2 i32.const 1 @@ -32579,11 +32580,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -32607,11 +32608,11 @@ br $for-loop|3 end end + local.get $10 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $10 i32.add local.get $3 i32.store @@ -32938,22 +32939,22 @@ i32.add local.tee $3 i32.load - local.set $5 + local.set $6 local.get $3 local.get $2 i32.const 2 i32.shl local.get $0 i32.add - local.tee $3 + local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store local.get $2 i32.const 1 @@ -33018,6 +33019,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -33025,7 +33027,6 @@ i32.const 2 i32.shl local.tee $8 - local.get $4 i32.add local.get $0 local.get $8 @@ -33072,18 +33073,18 @@ local.get $4 i32.add i32.load - local.set $7 + local.set $8 local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -33095,7 +33096,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store local.get $6 i32.const 1 @@ -33107,7 +33108,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store local.get $2 i32.const 1 @@ -33399,11 +33400,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -33427,11 +33428,11 @@ br $for-loop|3 end end + local.get $10 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $10 i32.add local.get $3 i32.store @@ -33742,22 +33743,22 @@ i32.add local.tee $3 i32.load - local.set $5 + local.set $6 local.get $3 local.get $2 i32.const 2 i32.shl local.get $0 i32.add - local.tee $3 + local.tee $5 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 local.get $5 + local.get $6 i32.store local.get $2 i32.const 1 @@ -33822,6 +33823,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -33829,7 +33831,6 @@ i32.const 2 i32.shl local.tee $8 - local.get $4 i32.add local.get $0 local.get $8 @@ -33876,18 +33877,18 @@ local.get $4 i32.add i32.load - local.set $7 + local.set $8 local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.set $8 + local.set $7 i32.const 2 global.set $~argumentsLength - local.get $7 local.get $8 + local.get $7 local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -33899,7 +33900,7 @@ i32.shl local.get $0 i32.add - local.get $7 + local.get $8 i32.store local.get $6 i32.const 1 @@ -33911,7 +33912,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $7 i32.store local.get $2 i32.const 1 @@ -34203,11 +34204,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -34231,11 +34232,11 @@ br $for-loop|3 end end + local.get $10 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $10 i32.add local.get $3 i32.store @@ -34558,14 +34559,14 @@ i32.shl local.get $0 i32.add - local.tee $3 + local.tee $7 i64.load i64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 i64.store local.get $2 @@ -34633,6 +34634,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -34640,7 +34642,6 @@ i32.const 3 i32.shl local.tee $10 - local.get $4 i32.add local.get $0 local.get $10 @@ -35015,11 +35016,11 @@ if local.get $0 local.get $4 + local.get $10 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $10 i32.add i32.load i32.const 1 @@ -35043,11 +35044,11 @@ br $for-loop|3 end end + local.get $11 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $11 i32.add local.get $3 i32.store @@ -35370,14 +35371,14 @@ i32.shl local.get $0 i32.add - local.tee $3 + local.tee $7 i64.load i64.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 i64.store local.get $2 @@ -35445,6 +35446,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -35452,7 +35454,6 @@ i32.const 3 i32.shl local.tee $10 - local.get $4 i32.add local.get $0 local.get $10 @@ -35827,11 +35828,11 @@ if local.get $0 local.get $4 + local.get $10 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $10 i32.add i32.load i32.const 1 @@ -35855,11 +35856,11 @@ br $for-loop|3 end end + local.get $11 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $11 i32.add local.get $3 i32.store @@ -36182,14 +36183,14 @@ i32.shl local.get $0 i32.add - local.tee $3 + local.tee $7 f32.load f32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $7 local.get $5 f32.store local.get $2 @@ -36257,6 +36258,7 @@ local.get $2 i32.lt_s if + local.get $4 local.get $2 i32.const 1 i32.sub @@ -36264,7 +36266,6 @@ i32.const 2 i32.shl local.tee $10 - local.get $4 i32.add local.get $0 local.get $10 @@ -36640,11 +36641,11 @@ if local.get $0 local.get $4 + local.get $11 local.get $8 i32.const 2 i32.shl local.tee $3 - local.get $11 i32.add i32.load i32.const 1 @@ -36668,11 +36669,11 @@ br $for-loop|3 end end + local.get $12 local.get $1 i32.const 2 i32.shl local.tee $4 - local.get $12 i32.add local.get $3 i32.store @@ -59906,18 +59907,19 @@ i32.store local.get $1 call $~lib/typedarray/Int8Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60152,18 +60154,19 @@ i32.store local.get $1 call $~lib/typedarray/Int16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60246,18 +60249,19 @@ i32.store local.get $1 call $~lib/typedarray/Uint16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60340,18 +60344,19 @@ i32.store local.get $1 call $~lib/typedarray/Int32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60434,18 +60439,19 @@ i32.store local.get $1 call $~lib/typedarray/Uint32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60528,18 +60534,19 @@ i32.store local.get $1 call $~lib/typedarray/Int64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60622,18 +60629,19 @@ i32.store local.get $1 call $~lib/typedarray/Uint64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz @@ -60716,18 +60724,19 @@ i32.store local.get $1 call $~lib/typedarray/Float32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 10800 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10800 call $~lib/string/String.__eq i32.eqz @@ -60810,18 +60819,19 @@ i32.store local.get $1 call $~lib/typedarray/Float64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 10800 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10800 call $~lib/string/String.__eq i32.eqz diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index b5163d3bf2..55659c75d1 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -1198,7 +1198,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1391,13 +1392,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end @@ -3018,6 +3019,7 @@ i32.const 6 i32.add else + local.get $3 local.get $4 i32.const 2048 i32.lt_u @@ -3025,16 +3027,16 @@ local.get $3 local.get $5 i32.add - local.tee $8 + local.tee $6 i32.const 37 i32.store16 - local.get $8 + local.get $6 local.get $4 i32.const 6 i32.shr_u i32.const 192 i32.or - local.tee $6 + local.tee $8 i32.const 4 i32.shr_u i32.const 15 @@ -3042,7 +3044,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $6 + local.get $8 i32.const 15 i32.and i32.const 1676 @@ -3060,20 +3062,20 @@ local.get $4 i32.const 65536 i32.lt_u - if (result i32) + if local.get $3 local.get $5 i32.add - local.tee $8 + local.tee $6 i32.const 37 i32.store16 - local.get $8 + local.get $6 local.get $4 i32.const 12 i32.shr_u i32.const 224 i32.or - local.tee $6 + local.tee $8 i32.const 4 i32.shr_u i32.const 15 @@ -3081,7 +3083,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $6 + local.get $8 i32.const 15 i32.and i32.const 1676 @@ -3091,23 +3093,20 @@ i32.shl i32.or i32.store offset=2 - local.get $5 - i32.const 6 - i32.add else local.get $3 local.get $5 i32.add - local.tee $8 + local.tee $6 i32.const 37 i32.store16 - local.get $8 + local.get $6 local.get $4 i32.const 18 i32.shr_u i32.const 240 i32.or - local.tee $6 + local.tee $8 i32.const 4 i32.shr_u i32.const 15 @@ -3115,7 +3114,7 @@ i32.const 1676 i32.add i32.load8_u - local.get $6 + local.get $8 i32.const 15 i32.and i32.const 1676 @@ -3129,12 +3128,12 @@ local.get $5 i32.const 6 i32.add - local.tee $6 + local.tee $5 i32.add - local.tee $8 + local.tee $6 i32.const 37 i32.store16 - local.get $8 + local.get $6 local.get $4 i32.const 12 i32.shr_u @@ -3142,13 +3141,13 @@ i32.and i32.const 128 i32.or - local.tee $5 + local.tee $8 i32.const 4 i32.shr_u i32.const 1676 i32.add i32.load8_u - local.get $5 + local.get $8 i32.const 15 i32.and i32.const 1676 @@ -3158,16 +3157,16 @@ i32.shl i32.or i32.store offset=2 - local.get $6 - i32.const 6 - i32.add end + local.get $5 + i32.const 6 + i32.add local.tee $6 i32.add - local.tee $8 + local.tee $5 i32.const 37 i32.store16 - local.get $8 + local.get $5 local.get $4 i32.const 6 i32.shr_u @@ -3175,13 +3174,13 @@ i32.and i32.const 128 i32.or - local.tee $5 + local.tee $8 i32.const 4 i32.shr_u i32.const 1676 i32.add i32.load8_u - local.get $5 + local.get $8 i32.const 15 i32.and i32.const 1676 @@ -3195,29 +3194,24 @@ i32.const 6 i32.add end - local.set $6 + local.tee $6 + i32.add + local.tee $5 + i32.const 37 + i32.store16 + local.get $5 local.get $4 i32.const 63 i32.and i32.const 128 i32.or - local.set $5 - local.get $3 - local.get $6 - i32.add local.tee $4 - i32.const 37 - i32.store16 - local.get $4 - local.get $5 i32.const 4 i32.shr_u - i32.const 15 - i32.and i32.const 1676 i32.add i32.load8_u - local.get $5 + local.get $4 i32.const 15 i32.and i32.const 1676 diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index 623c08ee56..5f28c3de51 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -1091,7 +1091,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1200,13 +1201,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index 0f292704ec..aac6d7283a 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -1296,7 +1296,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1489,13 +1490,13 @@ end global.get $~lib/rt/itcms/total local.tee $3 + local.get $3 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $3 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index 387dd4bbd1..4d5708a9b9 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -1150,6 +1150,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1159,27 +1161,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 1056 i32.store loop $while-continue|0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 10 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1088 i32.store offset=4 - local.get $1 + local.get $0 i32.const 10 i32.gt_s if diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index e77ac84b56..51d427ca80 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -1222,7 +1222,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1774,13 +1775,13 @@ end global.get $~lib/rt/itcms/total local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $1 i32.add global.set $~lib/rt/itcms/threshold end diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 79b43e2320..eace7c06c8 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -3068,7 +3068,7 @@ i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $11 + local.tee $8 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3090,10 +3090,10 @@ local.tee $13 i32.const 3 i32.shl - local.tee $8 + local.tee $11 i32.sub global.set $~lib/util/number/_K - local.get $8 + local.get $11 i32.const 1328 i32.add i64.load @@ -3223,7 +3223,7 @@ i64.add local.get $12 global.get $~lib/util/number/_exp_pow - local.get $11 + local.get $8 i32.add i32.const -64 i32.sub diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index 094796a907..659118e014 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -1079,7 +1079,8 @@ end global.get $~lib/rt/itcms/toSpace local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.store offset=4 local.get $0 local.get $0 @@ -1736,13 +1737,13 @@ end global.get $~lib/rt/itcms/total local.tee $0 + local.get $0 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $0 i32.add global.set $~lib/rt/itcms/threshold end From 2756d10f962fd1c809d1d8d48d90b2859b4aa4f2 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 18 Aug 2021 11:11:45 +0300 Subject: [PATCH 15/32] better --- src/module.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/module.ts b/src/module.ts index d852c6d2d8..a17c98adf6 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2365,7 +2365,6 @@ export class Module { if (optimizeLevel >= 2 || shrinkLevel >= 1) { passes.push("precompute-propagate"); passes.push("simplify-globals-optimizing"); - passes.push("local-cse"); } else { passes.push("precompute"); } @@ -2387,6 +2386,7 @@ export class Module { passes.push("inlining-optimizing"); passes.push("directize"); passes.push("dae-optimizing"); + passes.push("local-cse"); passes.push("merge-locals"); passes.push("coalesce-locals"); From ff287cbbe85c866785f80b7c91ebe4e852daf787 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Thu, 19 Aug 2021 09:20:58 +0300 Subject: [PATCH 16/32] update --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 349dcb2a5b..b844762fde 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "101.0.0-nightly.20210818", + "binaryen": "101.0.0-nightly.20210819", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" @@ -733,9 +733,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "101.0.0-nightly.20210818", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210818.tgz", - "integrity": "sha512-fcl5CAiJ+OFHFEciIueTSEDZtWgOKQtnjMfwfBGP1dQx5f3fSx5/q7YzEGCCoB5gsBogJWlan11ccIhybbbijQ==", + "version": "101.0.0-nightly.20210819", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210819.tgz", + "integrity": "sha512-61Tiv6wvNVm5YINSgXx9wuY4nOGDgeHf0g4mLeZispgpQf1PRqd9ws0fvM2GAwUFkNoPsdUxviMk5WSOzc+7nw==", "bin": { "wasm-opt": "bin/wasm-opt" } @@ -3508,9 +3508,9 @@ "dev": true }, "binaryen": { - "version": "101.0.0-nightly.20210818", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210818.tgz", - "integrity": "sha512-fcl5CAiJ+OFHFEciIueTSEDZtWgOKQtnjMfwfBGP1dQx5f3fSx5/q7YzEGCCoB5gsBogJWlan11ccIhybbbijQ==" + "version": "101.0.0-nightly.20210819", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210819.tgz", + "integrity": "sha512-61Tiv6wvNVm5YINSgXx9wuY4nOGDgeHf0g4mLeZispgpQf1PRqd9ws0fvM2GAwUFkNoPsdUxviMk5WSOzc+7nw==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 6be9a60ec4..81379cf19d 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "101.0.0-nightly.20210818", + "binaryen": "101.0.0-nightly.20210819", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" From b0bdba542d6da02ffbabe1f42970b9a626d4099a Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 20 Aug 2021 13:59:11 +0300 Subject: [PATCH 17/32] better --- src/module.ts | 2 +- tests/compiler/infer-generic.optimized.wat | 32 +- tests/compiler/std/array.optimized.wat | 32 +- tests/compiler/std/math.optimized.wat | 11 +- .../std/operator-overloading.optimized.wat | 308 +++++++++--------- 5 files changed, 191 insertions(+), 194 deletions(-) diff --git a/src/module.ts b/src/module.ts index a17c98adf6..3e5290e2e9 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2264,9 +2264,9 @@ export class Module { if (optimizeLevel >= 3 || shrinkLevel >= 1) { passes.push("rse"); passes.push("vacuum"); - passes.push("local-cse"); passes.push("ssa-nomerge"); passes.push("simplify-globals-optimizing"); + passes.push("local-cse"); passes.push("remove-unused-brs"); passes.push("remove-unused-names"); passes.push("merge-blocks"); diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index 1420feb0b8..a59c5eb68b 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -1235,51 +1235,51 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i32.const 0 i32.store offset=8 - local.get $3 + local.get $0 i32.const 1152 i32.store - local.get $3 + local.get $0 i32.const 1200 i32.store offset=4 i32.const 1164 i32.load - local.set $0 + local.set $1 loop $for-loop|0 - local.get $0 + local.get $1 i32.const 1164 i32.load - local.tee $3 + local.tee $0 local.get $0 - local.get $3 - i32.lt_s - select local.get $1 i32.gt_s + select + local.get $2 + i32.gt_s if - local.get $2 + local.get $3 i32.const 1156 i32.load - local.get $1 + local.get $2 i32.const 2 i32.shl i32.add f32.load - local.get $1 + local.get $2 i32.const 1152 i32.const 1200 i32.load call_indirect $0 (type $i32_f32_i32_i32_=>_i32) - local.set $2 - local.get $1 + local.set $3 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 2381372011..b6ad73560f 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -22568,7 +22568,7 @@ i32.const 6864 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 local.set $2 @@ -22576,32 +22576,32 @@ local.get $2 local.get $4 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6864 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|071 end end @@ -22643,7 +22643,7 @@ i32.const 6896 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 local.set $2 @@ -22651,32 +22651,32 @@ local.get $2 local.get $4 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6896 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|07489 end end diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 25f9686147..b1ab59508a 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -3356,6 +3356,7 @@ (local $5 i32) (local $6 f64) (local $7 i32) + (local $8 f64) block $__inlined_func$~lib/math/NativeMathf.cbrt (result f32) local.get $0 local.get $0 @@ -3413,13 +3414,13 @@ local.get $0 f64.promote_f32 local.tee $6 - local.tee $3 - local.get $3 + local.get $6 f64.add + local.tee $8 local.get $4 f64.add f64.mul - local.get $3 + local.get $6 local.get $4 f64.add local.get $4 @@ -3432,9 +3433,7 @@ f64.mul local.set $4 local.get $3 - local.get $6 - local.get $6 - f64.add + local.get $8 local.get $4 f64.add f64.mul diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index b8e8be92ed..2f5135eadb 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -2129,21 +2129,21 @@ global.set $std/operator-overloading/a2 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a1 - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/a @@ -2177,23 +2177,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/s1 local.tee $0 + global.get $std/operator-overloading/s1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/s2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.sub local.get $0 - i32.load offset=4 + i32.load + i32.sub local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s @@ -2225,23 +2225,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/m1 local.tee $0 + global.get $std/operator-overloading/m1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/m2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.mul local.get $0 - i32.load offset=4 + i32.load + i32.mul local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.mul call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m @@ -2275,23 +2275,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/d1 local.tee $0 + global.get $std/operator-overloading/d1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/d2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.div_s local.get $0 - i32.load offset=4 + i32.load + i32.div_s local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.div_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d @@ -2325,23 +2325,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/f1 local.tee $0 + global.get $std/operator-overloading/f1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/f2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.rem_s local.get $0 - i32.load offset=4 + i32.load + i32.rem_s local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.rem_s call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f @@ -2372,23 +2372,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/p1 local.tee $0 + global.get $std/operator-overloading/p1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/p2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - call $~lib/math/ipow32 local.get $0 - i32.load offset=4 + i32.load + call $~lib/math/ipow32 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p @@ -2422,23 +2422,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/n1 local.tee $0 + global.get $std/operator-overloading/n1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/n2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.and local.get $0 - i32.load offset=4 + i32.load + i32.and local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.and call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n @@ -2472,23 +2472,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/o1 local.tee $0 + global.get $std/operator-overloading/o1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/o2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.or local.get $0 - i32.load offset=4 + i32.load + i32.or local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.or call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o @@ -2522,23 +2522,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/x1 local.tee $0 + global.get $std/operator-overloading/x1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/x2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load - i32.xor local.get $0 - i32.load offset=4 + i32.load + i32.xor local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.xor call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x @@ -2572,24 +2572,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/eq1 local.tee $0 + global.get $std/operator-overloading/eq1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/eq2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.eq if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.eq else i32.const 0 @@ -2615,24 +2615,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq4 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/eq3 local.tee $0 + global.get $std/operator-overloading/eq3 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/eq4 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.eq if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.eq else i32.const 0 @@ -2648,24 +2648,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/eq1 local.tee $0 + global.get $std/operator-overloading/eq1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/eq2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.ne if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.ne else i32.const 0 @@ -2681,24 +2681,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/eq3 local.tee $0 + global.get $std/operator-overloading/eq3 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/eq4 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.ne if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.ne else i32.const 0 @@ -2724,24 +2724,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gt2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/gt1 local.tee $0 + global.get $std/operator-overloading/gt1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/gt2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.gt_s if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.gt_s else i32.const 0 @@ -2767,24 +2767,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gte2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/gte1 local.tee $0 + global.get $std/operator-overloading/gte1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/gte2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.ge_s if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.ge_s else i32.const 0 @@ -2810,24 +2810,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/le2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/le1 local.tee $0 + global.get $std/operator-overloading/le1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/le2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.lt_s if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.lt_s else i32.const 0 @@ -2853,24 +2853,24 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/leq2 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/leq1 local.tee $0 + global.get $std/operator-overloading/leq1 + local.tee $1 i32.store - local.get $1 + local.get $0 global.get $std/operator-overloading/leq2 - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 - i32.load local.get $1 i32.load + local.get $0 + i32.load i32.le_s if (result i32) - local.get $0 - i32.load offset=4 local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.le_s else i32.const 0 @@ -3380,18 +3380,18 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/ais1 local.tee $0 + global.get $std/operator-overloading/ais1 + local.tee $1 i32.store - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load i32.const 1 i32.add - local.get $0 + local.get $1 i32.load offset=4 i32.const 1 i32.add @@ -3402,23 +3402,22 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais2 global.get $~lib/memory/__stack_pointer - local.tee $1 global.get $std/operator-overloading/ais1 - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais2 - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais @@ -3466,23 +3465,22 @@ call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii2 global.get $~lib/memory/__stack_pointer - local.tee $1 global.get $std/operator-overloading/aii1 - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/aii2 - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii From 6b6bb9756a1365a17cf13fbeda936afc47f57f06 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 20 Aug 2021 23:10:51 +0300 Subject: [PATCH 18/32] remove remove-unused-nonfunction-module-elements --- src/module.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/module.ts b/src/module.ts index 3e5290e2e9..5ac7b3352e 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2408,7 +2408,6 @@ export class Module { } // clean up passes.push("duplicate-function-elimination"); - passes.push("remove-unused-nonfunction-module-elements"); passes.push("memory-packing"); passes.push("remove-unused-module-elements"); From d95e98d0651debc8538f95d1fae214fd9ce6a783 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 21 Aug 2021 13:07:59 +0300 Subject: [PATCH 19/32] better --- src/module.ts | 4 +- .../extends-baseaggregate.optimized.wat | 256 ++- tests/compiler/heap.optimized.wat | 256 ++- tests/compiler/infer-array.optimized.wat | 256 ++- tests/compiler/issues/1699.optimized.wat | 256 ++- tests/compiler/memcpy.optimized.wat | 256 ++- tests/compiler/number.optimized.wat | 256 ++- tests/compiler/object-literal.optimized.wat | 256 ++- tests/compiler/resolve-access.optimized.wat | 4 +- tests/compiler/resolve-binary.optimized.wat | 256 ++- .../resolve-elementaccess.optimized.wat | 320 ++-- tests/compiler/resolve-ternary.optimized.wat | 256 ++- tests/compiler/std-wasi/crypto.optimized.wat | 256 ++- tests/compiler/std-wasi/process.optimized.wat | 287 ++-- tests/compiler/std/array.optimized.wat | 536 +++--- tests/compiler/std/arraybuffer.optimized.wat | 256 ++- tests/compiler/std/date.optimized.wat | 256 ++- tests/compiler/std/map.optimized.wat | 256 ++- tests/compiler/std/math.optimized.wat | 1110 +++++++------ tests/compiler/std/set.optimized.wat | 256 ++- tests/compiler/std/static-array.optimized.wat | 256 ++- tests/compiler/std/staticarray.optimized.wat | 256 ++- .../std/string-casemapping.optimized.wat | 348 ++-- .../std/string-encoding.optimized.wat | 256 ++- tests/compiler/std/string.optimized.wat | 1438 ++++++++--------- tests/compiler/std/symbol.optimized.wat | 256 ++- tests/compiler/std/typedarray.optimized.wat | 708 ++++---- tests/compiler/std/uri.optimized.wat | 256 ++- tests/compiler/templateliteral.optimized.wat | 320 ++-- tests/compiler/wasi/trace.optimized.wat | 465 +++--- 30 files changed, 4897 insertions(+), 5507 deletions(-) diff --git a/src/module.ts b/src/module.ts index 5ac7b3352e..a7cbdb910e 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2273,11 +2273,11 @@ export class Module { passes.push("precompute-propagate"); } if (optimizeLevel >= 3) { - passes.push("simplify-locals-notee-nostructure"); + passes.push("simplify-locals-nostructure"); passes.push("flatten"); passes.push("vacuum"); - passes.push("licm"); passes.push("simplify-locals-notee-nostructure"); + passes.push("licm"); passes.push("merge-locals"); passes.push("reorder-locals"); passes.push("dae-optimizing"); diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index 21397c72fe..3c00c1f698 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -1798,17 +1798,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1954,19 +1954,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1981,7 +1981,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -1992,10 +1992,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2003,10 +2003,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2017,7 +2017,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2072,7 +2072,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2083,10 +2083,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2094,10 +2094,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2108,7 +2108,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2134,17 +2134,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2159,7 +2159,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2170,10 +2170,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2181,10 +2181,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2195,7 +2195,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2226,145 +2226,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2375,73 +2367,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2452,30 +2436,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2483,6 +2457,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index 11f7de4e90..a7058bf423 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -1012,17 +1012,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1168,19 +1168,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1195,7 +1195,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -1206,10 +1206,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -1217,10 +1217,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -1231,7 +1231,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -1286,7 +1286,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -1297,10 +1297,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -1308,10 +1308,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -1322,7 +1322,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -1348,17 +1348,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1373,7 +1373,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -1384,10 +1384,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -1395,10 +1395,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -1409,7 +1409,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -1440,145 +1440,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -1589,73 +1581,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -1666,30 +1650,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -1697,6 +1671,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index cce194c89f..153caa2238 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -1755,17 +1755,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1911,19 +1911,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1938,7 +1938,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -1949,10 +1949,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -1960,10 +1960,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -1974,7 +1974,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2029,7 +2029,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2040,10 +2040,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2051,10 +2051,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2065,7 +2065,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2091,17 +2091,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2116,7 +2116,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2127,10 +2127,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2138,10 +2138,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2152,7 +2152,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2183,145 +2183,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2332,73 +2324,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2409,30 +2393,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2440,6 +2414,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index 9509eed460..bd83374505 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -1794,17 +1794,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1950,19 +1950,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1977,7 +1977,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -1988,10 +1988,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -1999,10 +1999,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2013,7 +2013,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2068,7 +2068,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2079,10 +2079,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2090,10 +2090,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2104,7 +2104,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2130,17 +2130,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2155,7 +2155,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2166,10 +2166,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2177,10 +2177,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2191,7 +2191,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2222,145 +2222,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2371,73 +2363,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2448,30 +2432,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2479,6 +2453,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/memcpy.optimized.wat b/tests/compiler/memcpy.optimized.wat index 529a532405..d58e24195f 100644 --- a/tests/compiler/memcpy.optimized.wat +++ b/tests/compiler/memcpy.optimized.wat @@ -26,17 +26,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -183,19 +183,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -210,7 +210,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $6 @@ -221,10 +221,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -232,10 +232,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -246,7 +246,7 @@ local.tee $6 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -301,7 +301,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $6 @@ -312,10 +312,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -323,10 +323,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -337,7 +337,7 @@ local.tee $6 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -363,17 +363,17 @@ i32.load local.set $6 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -388,7 +388,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $6 @@ -399,10 +399,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -410,10 +410,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -424,7 +424,7 @@ local.tee $6 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -455,145 +455,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -604,73 +596,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -681,30 +665,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -712,6 +686,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index bb9b2ac4ca..fb560d0a27 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -2532,17 +2532,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2688,19 +2688,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2715,7 +2715,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2726,10 +2726,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2737,10 +2737,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2751,7 +2751,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2806,7 +2806,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2817,10 +2817,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2828,10 +2828,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2842,7 +2842,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2868,17 +2868,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2893,7 +2893,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2904,10 +2904,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2915,10 +2915,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2929,7 +2929,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2960,145 +2960,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -3109,73 +3101,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -3186,30 +3170,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -3217,6 +3191,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 3b56c2d3c3..19ea3c5369 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1917,17 +1917,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2073,19 +2073,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2100,7 +2100,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2111,10 +2111,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2122,10 +2122,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2136,7 +2136,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2191,7 +2191,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2202,10 +2202,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2213,10 +2213,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2227,7 +2227,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2253,17 +2253,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2278,7 +2278,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2289,10 +2289,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2300,10 +2300,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2314,7 +2314,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2345,145 +2345,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2494,73 +2486,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2571,30 +2555,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2602,6 +2576,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index 42486f7099..50bd0ea2dd 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -2930,10 +2930,10 @@ local.tee $5 i32.const 0 i32.store - i32.const 1056 - local.set $3 i32.const 8 local.set $7 + i32.const 1056 + local.set $3 block $~lib/util/memory/memmove|inlined.0 i32.const 8 i32.const 0 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index dfc783c803..b29cfdffc0 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -2711,17 +2711,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2867,19 +2867,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2894,7 +2894,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2905,10 +2905,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2916,10 +2916,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2930,7 +2930,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2985,7 +2985,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2996,10 +2996,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -3007,10 +3007,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -3021,7 +3021,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -3047,17 +3047,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -3072,7 +3072,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -3083,10 +3083,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -3094,10 +3094,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -3108,7 +3108,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -3139,145 +3139,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -3288,73 +3280,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -3365,30 +3349,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -3396,6 +3370,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 82dbfd0f0c..eae73f314d 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -2331,17 +2331,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2487,19 +2487,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2514,7 +2514,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2525,10 +2525,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2536,10 +2536,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2550,7 +2550,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2605,7 +2605,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2616,10 +2616,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2627,10 +2627,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2641,7 +2641,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2667,17 +2667,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2692,7 +2692,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2703,10 +2703,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2714,10 +2714,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2728,7 +2728,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2759,145 +2759,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2908,73 +2900,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2985,30 +2969,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -3016,6 +2990,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 @@ -3694,8 +3672,8 @@ (local $6 i64) (local $7 i64) (local $8 i64) - (local $9 i64) - (local $10 i32) + (local $9 i32) + (local $10 i64) (local $11 i64) (local $12 i64) (local $13 i64) @@ -3727,7 +3705,7 @@ select i32.const 1075 i32.sub - local.tee $10 + local.tee $9 i32.const 1 i32.sub local.get $1 @@ -3767,7 +3745,7 @@ i64.shl i64.const 1 i64.sub - local.get $10 + local.get $9 local.get $4 i32.sub local.get $2 @@ -3780,7 +3758,7 @@ i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $10 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3821,56 +3799,56 @@ local.get $1 i64.clz i64.shl - local.tee $6 + local.tee $1 i64.const 4294967295 i64.and local.set $3 + local.get $1 + i64.const 32 + i64.shr_u + local.tee $10 global.get $~lib/util/number/_frc_pow - local.tee $11 + local.tee $13 i64.const 4294967295 i64.and local.tee $1 - local.tee $7 - local.get $6 - i64.const 32 - i64.shr_u - local.tee $13 + local.tee $6 i64.mul local.get $3 - local.get $7 + local.get $6 i64.mul i64.const 32 i64.shr_u i64.add local.set $6 global.get $~lib/util/number/_frc_plus - local.tee $8 + local.tee $7 i64.const 4294967295 i64.and - local.set $7 - local.get $1 - local.get $8 + local.set $11 + local.get $7 i64.const 32 i64.shr_u local.tee $14 + local.get $1 i64.mul local.get $1 - local.get $7 + local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $8 + local.set $7 global.get $~lib/util/number/_frc_minus - local.tee $9 + local.tee $8 i64.const 4294967295 i64.and local.set $12 - local.get $1 - local.get $9 + local.get $8 i64.const 32 i64.shr_u local.tee $15 + local.get $1 i64.mul local.get $1 local.get $12 @@ -3878,25 +3856,25 @@ i64.const 32 i64.shr_u i64.add - local.set $9 + local.set $8 local.get $5 i32.const 1 i32.shl i32.const 1776 i32.add + local.get $10 local.get $13 - local.get $11 i64.const 32 i64.shr_u local.tee $1 - local.tee $11 + local.tee $10 i64.mul local.get $6 i64.const 32 i64.shr_u i64.add local.get $3 - local.get $11 + local.get $10 i64.mul local.get $6 i64.const 4294967295 @@ -3910,14 +3888,14 @@ local.get $1 local.get $14 i64.mul - local.get $8 + local.get $7 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $7 + local.get $11 i64.mul - local.get $8 + local.get $7 i64.const 4294967295 i64.and i64.add @@ -3930,7 +3908,7 @@ i64.sub local.tee $3 global.get $~lib/util/number/_exp_pow - local.get $10 + local.get $9 i32.add i32.const -64 i32.sub @@ -3938,14 +3916,14 @@ local.get $1 local.get $15 i64.mul - local.get $9 + local.get $8 i64.const 32 i64.shr_u i64.add local.get $1 local.get $12 i64.mul - local.get $9 + local.get $8 i64.const 4294967295 i64.and i64.add diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index f6f313285d..aa987b9856 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -2413,17 +2413,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2569,19 +2569,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2596,7 +2596,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2607,10 +2607,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2618,10 +2618,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2632,7 +2632,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2687,7 +2687,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2698,10 +2698,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2709,10 +2709,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2723,7 +2723,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2749,17 +2749,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2774,7 +2774,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2785,10 +2785,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2796,10 +2796,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2810,7 +2810,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2841,145 +2841,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2990,73 +2982,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -3067,30 +3051,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -3098,6 +3072,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index bcee34f52c..cbefac38cb 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -2953,17 +2953,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -3109,19 +3109,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -3136,7 +3136,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -3147,10 +3147,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -3158,10 +3158,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -3172,7 +3172,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -3227,7 +3227,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -3238,10 +3238,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -3249,10 +3249,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -3263,7 +3263,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -3289,17 +3289,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -3314,7 +3314,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -3325,10 +3325,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -3336,10 +3336,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -3350,7 +3350,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -3381,145 +3381,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -3530,73 +3522,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -3607,30 +3591,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -3638,6 +3612,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 4197f8e8af..86d83cbaae 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -3033,17 +3033,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -3189,19 +3189,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -3216,7 +3216,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -3227,10 +3227,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -3238,10 +3238,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -3252,7 +3252,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -3307,7 +3307,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -3318,10 +3318,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -3329,10 +3329,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -3343,7 +3343,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -3369,17 +3369,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -3394,7 +3394,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -3405,10 +3405,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -3416,10 +3416,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -3430,7 +3430,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -3461,145 +3461,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -3610,73 +3602,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -3687,30 +3671,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -3718,6 +3692,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 @@ -4490,6 +4468,14 @@ i64.const 100000000 i64.ge_u if + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add local.get $1 local.get $1 i64.const 100000000 @@ -4501,20 +4487,8 @@ i32.wrap_i64 local.tee $3 i32.const 10000 - i32.div_u - local.set $4 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $3 - i32.const 10000 i32.rem_u - local.tee $3 + local.tee $4 i32.const 100 i32.div_u i32.const 2 @@ -4522,7 +4496,7 @@ i32.const 5708 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -4542,7 +4516,10 @@ i32.shl local.get $0 i32.add - local.get $4 + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -4550,7 +4527,7 @@ i32.const 5708 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index b6ad73560f..4a274c0b1c 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -2518,17 +2518,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2674,19 +2674,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2701,7 +2701,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2712,10 +2712,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2723,10 +2723,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2737,7 +2737,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2792,7 +2792,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2803,10 +2803,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2814,10 +2814,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2828,7 +2828,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2854,17 +2854,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2879,7 +2879,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2890,10 +2890,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2901,10 +2901,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2915,7 +2915,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2946,145 +2946,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -3095,73 +3087,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -3172,30 +3156,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -3203,6 +3177,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 @@ -3880,10 +3858,10 @@ local.get $4 i32.lt_s select - local.set $3 + local.set $5 local.get $0 i32.load offset=4 - local.tee $5 + local.tee $3 local.get $1 i32.const 0 i32.lt_s @@ -3933,14 +3911,14 @@ local.tee $2 i32.const 2 i32.shl - local.get $5 - i32.add local.get $3 + i32.add + local.get $5 i32.const 0 i32.lt_s if (result i32) - local.get $3 local.get $4 + local.get $5 i32.add local.tee $3 i32.const 0 @@ -3949,11 +3927,11 @@ i32.gt_s select else - local.get $3 + local.get $5 local.get $4 - local.get $3 local.get $4 - i32.lt_s + local.get $5 + i32.gt_s select end local.get $2 @@ -4263,7 +4241,7 @@ local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $6 loop $while-continue|1 local.get $1 local.get $7 @@ -4278,17 +4256,17 @@ i32.load16_u local.set $4 local.get $2 - local.get $5 + local.get $6 local.get $1 i32.sub i32.const 1 i32.shl local.get $3 i32.add - local.tee $6 + local.tee $5 i32.load16_u i32.store16 - local.get $6 + local.get $5 local.get $4 i32.store16 local.get $1 @@ -10710,22 +10688,25 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i64) + (local $3 i32) (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) (local $10 i64) - (local $11 i32) + (local $11 i64) (local $12 i64) - (local $13 i32) + (local $13 i64) (local $14 i64) + (local $15 i64) + (local $16 i64) + (local $17 i64) local.get $1 f64.const 0 f64.lt - local.tee $9 + local.tee $6 if (result f64) local.get $0 i32.const 45 @@ -10736,74 +10717,74 @@ local.get $1 end i64.reinterpret_f64 - local.tee $14 + local.tee $2 i64.const 9218868437227405312 i64.and i64.const 52 i64.shr_u i32.wrap_i64 - local.set $13 - local.get $14 + local.set $3 + local.get $2 i64.const 4503599627370495 i64.and - local.get $13 + local.get $3 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl i64.add - local.set $14 - local.get $13 + local.set $2 + local.get $3 i32.const 1 - local.get $13 + local.get $3 select i32.const 1075 i32.sub - local.tee $13 + local.tee $3 i32.const 1 i32.sub - local.get $14 + local.get $2 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $2 + local.tee $4 i64.clz i32.wrap_i64 - local.tee $11 + local.tee $5 i32.sub - local.set $8 - local.get $2 - local.get $11 + local.set $7 + local.get $4 + local.get $5 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $14 - local.get $14 + local.get $2 + local.get $2 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $11 + local.tee $5 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $13 - local.get $11 + local.get $3 + local.get $5 i32.sub - local.get $8 + local.get $7 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $8 + local.get $7 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $8 + local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -10812,9 +10793,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $13 + local.tee $3 local.get $1 - local.get $13 + local.get $3 f64.convert_i32_s f64.ne i32.add @@ -10822,132 +10803,107 @@ i32.shr_s i32.const 1 i32.add - local.tee $13 + local.tee $3 i32.const 3 i32.shl - local.tee $11 + local.tee $5 i32.sub global.set $~lib/util/number/_K - local.get $11 + local.get $5 i32.const 12008 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $13 + local.get $3 i32.const 1 i32.shl i32.const 12704 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - local.get $14 - local.get $14 + local.get $2 + local.get $2 i64.clz i64.shl local.tee $2 i64.const 4294967295 i64.and - local.set $7 - global.get $~lib/util/number/_frc_pow - local.tee $12 - i64.const 4294967295 - i64.and - local.tee $14 - local.set $3 + local.set $9 local.get $2 i64.const 32 i64.shr_u - local.set $6 - local.get $12 - i64.const 32 - i64.shr_u + local.tee $15 + global.get $~lib/util/number/_frc_pow + local.tee $8 + i64.const 4294967295 + i64.and local.tee $2 - local.set $5 - local.get $3 - local.get $6 + local.tee $4 i64.mul - local.get $3 - local.get $7 + local.get $4 + local.get $9 i64.mul i64.const 32 i64.shr_u i64.add - local.set $4 + local.set $10 global.get $~lib/util/number/_frc_plus - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $10 - local.get $3 + local.set $11 + local.get $4 i64.const 32 i64.shr_u - local.tee $12 + local.tee $16 local.get $2 - local.tee $3 - i64.mul - local.get $12 - local.get $14 i64.mul - local.get $10 - local.get $14 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $12 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - local.get $10 + local.get $2 + local.get $11 i64.mul - local.get $12 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.sub local.set $12 global.get $~lib/util/number/_frc_minus - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $10 - local.get $14 - local.get $3 + local.set $13 + local.get $4 i64.const 32 i64.shr_u - local.tee $3 + local.tee $17 + local.get $2 i64.mul - local.get $10 - local.get $14 + local.get $2 + local.get $13 i64.mul i64.const 32 i64.shr_u i64.add local.set $14 - local.get $9 + local.get $6 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $5 - local.get $6 + local.get $15 + local.get $8 + i64.const 32 + i64.shr_u + local.tee $2 + local.tee $8 i64.mul - local.get $4 + local.get $10 i64.const 32 i64.shr_u i64.add - local.get $5 - local.get $7 + local.get $8 + local.get $9 i64.mul - local.get $4 + local.get $10 i64.const 4294967295 i64.and i64.add @@ -10956,22 +10912,43 @@ i64.const 32 i64.shr_u i64.add + local.get $2 + local.get $16 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $11 + i64.mul local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $4 global.get $~lib/util/number/_exp_pow - local.get $8 + local.get $7 i32.add i32.const -64 i32.sub - local.get $12 + local.get $4 local.get $2 - local.get $3 + local.get $17 i64.mul local.get $14 i64.const 32 i64.shr_u i64.add local.get $2 - local.get $10 + local.get $13 i64.mul local.get $14 i64.const 4294967295 @@ -10985,13 +10962,13 @@ i64.const 1 i64.add i64.sub - local.get $9 + local.get $6 call $~lib/util/number/genDigits - local.get $9 + local.get $6 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $6 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -11855,6 +11832,14 @@ i64.const 100000000 i64.ge_u if + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add local.get $1 local.get $1 i64.const 100000000 @@ -11866,20 +11851,8 @@ i32.wrap_i64 local.tee $3 i32.const 10000 - i32.div_u - local.set $4 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $3 - i32.const 10000 i32.rem_u - local.tee $3 + local.tee $4 i32.const 100 i32.div_u i32.const 2 @@ -11887,7 +11860,7 @@ i32.const 9884 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -11907,7 +11880,10 @@ i32.shl local.get $0 i32.add - local.get $4 + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -11915,7 +11891,7 @@ i32.const 9884 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -33107,10 +33083,10 @@ local.get $5 i32.lt_s select - local.set $3 + local.set $6 local.get $0 i32.load offset=4 - local.tee $6 + local.tee $3 local.get $1 i32.const 0 i32.lt_s @@ -33134,7 +33110,6 @@ end local.tee $1 i32.add - local.get $6 local.get $2 i32.const 0 i32.lt_s @@ -33157,13 +33132,14 @@ select end local.tee $0 - i32.add local.get $3 + i32.add + local.get $6 i32.const 0 i32.lt_s if (result i32) - local.get $3 local.get $5 + local.get $6 i32.add local.tee $2 i32.const 0 @@ -33172,11 +33148,11 @@ i32.gt_s select else - local.get $3 + local.get $6 local.get $5 - local.get $3 local.get $5 - i32.lt_s + local.get $6 + i32.gt_s select end local.get $0 diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 6c7fb075c0..88486e11d5 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -1735,17 +1735,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1891,19 +1891,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1918,7 +1918,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -1929,10 +1929,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -1940,10 +1940,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -1954,7 +1954,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2009,7 +2009,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2020,10 +2020,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2031,10 +2031,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2045,7 +2045,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2071,17 +2071,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2096,7 +2096,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2107,10 +2107,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2118,10 +2118,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2132,7 +2132,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2163,145 +2163,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2312,73 +2304,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2389,30 +2373,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2420,6 +2394,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index d6f9003a21..d2136f4d4e 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -2733,17 +2733,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2889,19 +2889,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2916,7 +2916,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2927,10 +2927,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2938,10 +2938,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2952,7 +2952,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -3007,7 +3007,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -3018,10 +3018,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -3029,10 +3029,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -3043,7 +3043,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -3069,17 +3069,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -3094,7 +3094,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -3105,10 +3105,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -3116,10 +3116,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -3130,7 +3130,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -3161,145 +3161,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -3310,73 +3302,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -3387,30 +3371,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -3418,6 +3392,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index df3ffe25a2..e0ae5df9e7 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -2049,17 +2049,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2205,19 +2205,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2232,7 +2232,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2243,10 +2243,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2254,10 +2254,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2268,7 +2268,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2323,7 +2323,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2334,10 +2334,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2345,10 +2345,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2359,7 +2359,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2385,17 +2385,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2410,7 +2410,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2421,10 +2421,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2432,10 +2432,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2446,7 +2446,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2477,145 +2477,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2626,73 +2618,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2703,30 +2687,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2734,6 +2708,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index b1ab59508a..d2de4aa07f 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -3469,11 +3469,11 @@ i64.shr_u i64.const 1045 i64.sub - local.tee $2 + local.tee $3 i64.const 63 i64.and local.set $4 - local.get $2 + local.get $3 i64.const 6 i64.shr_s i32.wrap_i64 @@ -3483,10 +3483,10 @@ i32.add local.tee $7 i64.load - local.set $6 + local.set $5 local.get $7 i64.load offset=8 - local.set $2 + local.set $3 local.get $7 i64.load offset=16 local.set $1 @@ -3494,31 +3494,31 @@ i64.const 0 i64.ne if - local.get $6 + local.get $5 local.get $4 i64.shl - local.get $2 + local.get $3 i64.const 64 local.get $4 i64.sub - local.tee $3 + local.tee $2 i64.shr_u i64.or - local.set $6 - local.get $2 + local.set $5 + local.get $3 local.get $4 i64.shl local.get $1 - local.get $3 + local.get $2 i64.shr_u i64.or - local.set $2 + local.set $3 local.get $1 local.get $4 i64.shl local.get $7 i64.load offset=24 - local.get $3 + local.get $2 i64.shr_u i64.or local.set $1 @@ -3531,39 +3531,39 @@ local.tee $4 i64.const 4294967295 i64.and - local.set $3 - local.get $2 - i64.const 4294967295 - i64.and - local.tee $5 - local.get $4 + local.tee $2 + local.get $3 i64.const 32 i64.shr_u local.tee $8 - local.tee $9 i64.mul + local.get $2 local.get $3 + i64.const 4294967295 + i64.and + local.tee $2 + i64.mul + local.tee $6 + i64.const 32 + i64.shr_u + i64.add + local.set $3 local.get $2 + local.get $4 i64.const 32 i64.shr_u + local.tee $9 local.tee $10 i64.mul local.get $3 - local.get $5 - i64.mul - local.tee $3 - i64.const 32 - i64.shr_u - i64.add - local.tee $5 i64.const 4294967295 i64.and i64.add local.set $2 - local.get $9 + local.get $8 local.get $10 i64.mul - local.get $5 + local.get $3 i64.const 32 i64.shr_u i64.add @@ -3575,10 +3575,10 @@ local.get $1 i64.const 32 i64.shr_u - local.get $8 + local.get $9 i64.mul - local.tee $1 - local.get $3 + local.tee $3 + local.get $6 i64.const 4294967295 i64.and local.get $2 @@ -3586,66 +3586,65 @@ i64.shl i64.add i64.add - local.tee $2 - local.get $1 + local.tee $1 + local.get $3 i64.lt_u i64.extend_i32_u global.get $~lib/math/res128_hi local.get $4 - local.get $6 + local.get $5 i64.mul i64.add i64.add - local.tee $9 + local.tee $8 i64.const 2 i64.shl - local.get $2 + local.get $1 i64.const 62 i64.shr_u i64.or - local.tee $1 + local.tee $5 i64.const 63 i64.shr_s - local.tee $6 - local.get $2 - i64.const 2 - i64.shl - i64.xor - local.set $4 - local.get $6 + local.tee $4 i64.const 1 i64.shr_s - local.get $1 + local.get $5 i64.xor - local.tee $3 + local.tee $2 i64.clz - local.set $2 - local.get $3 + local.set $3 local.get $2 + local.get $3 i64.shl local.get $4 + local.get $1 + i64.const 2 + i64.shl + i64.xor + local.tee $6 i64.const 64 - local.get $2 + local.get $3 i64.sub i64.shr_u i64.or - local.tee $3 + local.tee $1 i64.const 4294967295 i64.and - local.set $5 - local.get $3 + local.set $2 + local.get $1 i64.const 32 i64.shr_u local.tee $10 i64.const 560513588 i64.mul - local.get $5 + local.get $2 i64.const 3373259426 i64.mul - local.get $5 + local.get $2 i64.const 560513588 i64.mul - local.tee $8 + local.tee $9 i64.const 32 i64.shr_u i64.add @@ -3653,7 +3652,7 @@ i64.const 4294967295 i64.and i64.add - local.set $5 + local.set $2 local.get $10 i64.const 3373259426 i64.mul @@ -3661,46 +3660,46 @@ i64.const 32 i64.shr_u i64.add - local.get $5 + local.get $2 i64.const 32 i64.shr_u i64.add global.set $~lib/math/res128_hi - local.get $8 + local.get $9 i64.const 4294967295 i64.and - local.get $5 + local.get $2 i64.const 32 i64.shl i64.add - local.tee $5 - local.get $3 + local.tee $2 + local.get $1 f64.convert_i64_u f64.const 3.753184150245214e-04 f64.mul - local.get $4 - local.get $2 + local.get $6 + local.get $3 i64.shl f64.convert_i64_u f64.const 3.834951969714103e-04 f64.mul f64.add i64.trunc_f64_u - local.tee $4 + local.tee $1 i64.lt_u i64.extend_i32_u global.get $~lib/math/res128_hi - local.tee $3 + local.tee $6 i64.const 11 i64.shr_u i64.add f64.convert_i64_u global.set $~lib/math/rempio2_y0 - local.get $4 - local.get $3 + local.get $1 + local.get $6 i64.const 53 i64.shl - local.get $5 + local.get $2 i64.const 11 i64.shr_u i64.or @@ -3711,12 +3710,12 @@ global.set $~lib/math/rempio2_y1 global.get $~lib/math/rempio2_y0 i64.const 4372995238176751616 - local.get $2 + local.get $3 i64.const 52 i64.shl i64.sub local.get $0 - local.get $1 + local.get $5 i64.xor i64.const -9223372036854775808 i64.and @@ -3729,17 +3728,17 @@ local.get $12 f64.mul global.set $~lib/math/rempio2_y1 - local.get $9 + local.get $8 i64.const 62 i64.shr_s - local.get $6 + local.get $4 i64.sub i32.wrap_i64 ) (func $~lib/math/NativeMath.cos (param $0 f64) (result f64) (local $1 f64) - (local $2 f64) - (local $3 i64) + (local $2 i64) + (local $3 f64) (local $4 f64) (local $5 i32) (local $6 i32) @@ -3748,7 +3747,7 @@ (local $9 f64) local.get $0 i64.reinterpret_f64 - local.tee $3 + local.tee $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -3773,26 +3772,26 @@ local.get $0 local.get $0 f64.mul - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 f64.mul local.set $4 f64.const 1 - local.get $1 + local.get $3 f64.const 0.5 f64.mul - local.tee $2 + local.tee $1 f64.sub local.tee $8 f64.const 1 local.get $8 f64.sub - local.get $2 - f64.sub - local.get $1 - local.get $1 - local.get $1 local.get $1 + f64.sub + local.get $3 + local.get $3 + local.get $3 + local.get $3 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -3804,8 +3803,8 @@ local.get $4 local.get $4 f64.mul - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -3834,7 +3833,7 @@ return end block $~lib/math/rempio2|inlined.0 (result i32) - local.get $3 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -3851,15 +3850,15 @@ local.get $0 f64.const 1.5707963267341256 f64.add - local.set $1 + local.set $3 i32.const -1 local.set $5 local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.const 6.077100506506192e-11 f64.add local.tee $0 @@ -3867,14 +3866,14 @@ f64.const 6.077100506506192e-11 f64.add else - local.get $1 + local.get $3 f64.const 6.077100506303966e-11 f64.add - local.tee $1 + local.tee $3 f64.const 2.0222662487959506e-21 f64.add local.set $0 - local.get $1 + local.get $3 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -3884,13 +3883,13 @@ local.get $0 f64.const 1.5707963267341256 f64.sub - local.set $1 + local.set $3 local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.const 6.077100506506192e-11 f64.sub local.tee $0 @@ -3898,14 +3897,14 @@ f64.const 6.077100506506192e-11 f64.sub else - local.get $1 + local.get $3 f64.const 6.077100506303966e-11 f64.sub - local.tee $1 + local.tee $3 f64.const 2.0222662487959506e-21 f64.sub local.set $0 - local.get $1 + local.get $3 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -3939,9 +3938,9 @@ local.get $4 f64.const 6.077100506506192e-11 f64.mul - local.tee $1 + local.tee $3 f64.sub - local.tee $2 + local.tee $1 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -3958,24 +3957,23 @@ f64.const 2.0222662487959506e-21 f64.mul local.get $0 - local.tee $1 - local.get $1 + local.get $0 local.get $4 f64.const 6.077100506303966e-11 f64.mul - local.tee $2 + local.tee $1 f64.sub local.tee $0 f64.sub - local.get $2 + local.get $1 f64.sub f64.sub - local.set $1 + local.set $3 local.get $6 local.get $0 - local.get $1 + local.get $3 f64.sub - local.tee $2 + local.tee $1 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -3992,41 +3990,40 @@ f64.const 8.4784276603689e-32 f64.mul local.get $0 - local.tee $1 - local.get $1 + local.get $0 local.get $4 f64.const 2.0222662487111665e-21 f64.mul - local.tee $2 + local.tee $1 f64.sub local.tee $0 f64.sub - local.get $2 + local.get $1 f64.sub f64.sub - local.set $1 + local.set $3 local.get $0 - local.get $1 + local.get $3 f64.sub else - local.get $2 + local.get $1 end - local.set $2 + local.set $1 end - local.get $2 + local.get $1 global.set $~lib/math/rempio2_y0 local.get $0 - local.get $2 - f64.sub local.get $1 f64.sub + local.get $3 + f64.sub global.set $~lib/math/rempio2_y1 local.get $4 i32.trunc_f64_s br $~lib/math/rempio2|inlined.0 end i32.const 0 - local.get $3 + local.get $2 call $~lib/math/pio2_large_quot local.tee $5 i32.sub @@ -4036,28 +4033,28 @@ end local.set $6 global.get $~lib/math/rempio2_y0 - local.set $0 + local.set $3 global.get $~lib/math/rempio2_y1 local.set $4 local.get $6 i32.const 1 i32.and if (result f64) - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.mul - local.tee $1 - local.get $0 + local.tee $0 + local.get $3 f64.mul - local.set $2 + local.set $1 + local.get $3 local.get $0 - local.get $1 local.get $4 f64.const 0.5 f64.mul - local.get $2 - local.get $1 local.get $1 + local.get $0 + local.get $0 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -4065,12 +4062,12 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $1 - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 f64.mul f64.mul - local.get $1 + local.get $0 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -4082,21 +4079,21 @@ f64.mul local.get $4 f64.sub - local.get $2 + local.get $1 f64.const -0.16666666666666632 f64.mul f64.sub f64.sub else - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 f64.mul - local.set $2 + local.set $1 f64.const 1 - local.get $1 + local.get $0 f64.const 0.5 f64.mul local.tee $8 @@ -4107,10 +4104,10 @@ f64.sub local.get $8 f64.sub - local.get $1 - local.get $1 - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 + local.get $0 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -4119,11 +4116,11 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $2 - local.get $2 - f64.mul local.get $1 local.get $1 + f64.mul + local.get $0 + local.get $0 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -4134,7 +4131,7 @@ f64.mul f64.add f64.mul - local.get $0 + local.get $3 local.get $4 f64.mul f64.sub @@ -4187,10 +4184,10 @@ local.tee $9 local.get $9 f64.mul - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.mul - local.set $8 + local.set $9 br $folding-inner0 end local.get $2 @@ -4214,23 +4211,23 @@ local.tee $9 local.get $9 f64.mul - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.mul - local.set $8 - local.get $9 + local.set $9 + local.get $8 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $8 + local.get $9 f64.const 0.04166662332373906 f64.mul f64.add - local.get $8 local.get $9 + local.get $8 f64.mul - local.get $9 + local.get $8 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -4250,7 +4247,7 @@ local.tee $8 local.get $8 f64.mul - local.tee $9 + local.tee $7 local.get $8 f64.mul else @@ -4261,26 +4258,26 @@ local.tee $8 local.get $8 f64.mul - local.tee $9 + local.tee $7 local.get $8 f64.mul end - local.set $7 + local.set $9 local.get $8 - local.get $7 local.get $9 + local.get $7 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $7 - local.get $9 local.get $9 + local.get $7 + local.get $7 f64.mul f64.mul - local.get $9 + local.get $7 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -4313,10 +4310,10 @@ local.tee $9 local.get $9 f64.mul - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.mul - local.set $8 + local.set $9 br $folding-inner0 else local.get $5 @@ -4329,7 +4326,7 @@ local.tee $8 local.get $8 f64.mul - local.tee $9 + local.tee $7 local.get $8 f64.mul else @@ -4340,26 +4337,26 @@ local.tee $8 local.get $8 f64.mul - local.tee $9 + local.tee $7 local.get $8 f64.mul end - local.set $7 + local.set $9 local.get $8 - local.get $7 local.get $9 + local.get $7 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $7 - local.get $9 local.get $9 + local.get $7 + local.get $7 f64.mul f64.mul - local.get $9 + local.get $7 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -4388,22 +4385,22 @@ if local.get $0 f64.promote_f32 - local.tee $8 + local.tee $9 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $9 - local.get $8 + local.set $8 local.get $9 + local.get $8 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $9 + local.get $8 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $9 + local.get $8 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.0 end @@ -4427,7 +4424,7 @@ i32.const 8388608 i32.or i64.extend_i32_s - local.tee $3 + local.tee $4 local.get $2 i32.const 6 i32.shr_s @@ -4441,7 +4438,7 @@ i64.shl local.get $2 i64.load offset=8 - local.tee $4 + local.tee $3 i64.const 64 local.get $6 i64.sub @@ -4452,7 +4449,7 @@ i64.const 32 i64.gt_u if (result i64) - local.get $4 + local.get $3 local.get $6 i64.const 32 i64.sub @@ -4465,29 +4462,29 @@ i64.shr_u i64.or else - local.get $4 + local.get $3 i64.const 32 local.get $6 i64.sub i64.shr_u end - local.get $3 + local.get $4 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $6 + local.tee $4 i64.const 2 i64.shl - local.tee $4 + local.tee $6 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y i32.const 0 - local.get $6 + local.get $4 i64.const 62 i64.shr_u - local.get $4 + local.get $6 i64.const 63 i64.shr_u i64.add @@ -4509,23 +4506,23 @@ local.get $9 local.get $9 f64.mul - local.tee $8 + local.tee $7 local.get $9 f64.mul - local.tee $7 - local.get $8 + local.tee $8 + local.get $7 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $7 - local.get $8 local.get $8 + local.get $7 + local.get $7 f64.mul f64.mul - local.get $8 + local.get $7 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -4537,23 +4534,23 @@ local.get $9 local.get $9 f64.mul - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.mul - local.set $8 - local.get $9 + local.set $9 + local.get $8 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $8 + local.get $9 f64.const 0.04166662332373906 f64.mul f64.add - local.get $8 local.get $9 + local.get $8 f64.mul - local.get $9 + local.get $8 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -4573,19 +4570,19 @@ select return end - local.get $9 + local.get $8 f64.const -0.499999997251031 f64.mul f64.const 1 f64.add - local.get $8 + local.get $9 f64.const 0.04166662332373906 f64.mul f64.add - local.get $8 local.get $9 + local.get $8 f64.mul - local.get $9 + local.get $8 f64.const 2.439044879627741e-05 f64.mul f64.const -0.001388676377460993 @@ -5883,13 +5880,12 @@ (local $3 i64) (local $4 i64) (local $5 f64) - (local $6 f64) - (local $7 i32) - (local $8 f64) - (local $9 i32) + (local $6 i32) + (local $7 f64) + (local $8 i32) + (local $9 f64) (local $10 f64) (local $11 f64) - (local $12 f64) local.get $1 i64.reinterpret_f64 i64.const 9223372036854775807 @@ -5914,7 +5910,7 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $7 + local.tee $6 i32.const 2047 i32.eq if @@ -5930,7 +5926,7 @@ i64.const 52 i64.shr_u i32.wrap_i64 - local.tee $9 + local.tee $8 i32.const 2047 i32.eq select @@ -5939,8 +5935,8 @@ local.get $0 return end - local.get $9 - local.get $7 + local.get $8 + local.get $6 i32.sub i32.const 64 i32.gt_s @@ -5951,13 +5947,13 @@ return end f64.const 1 - local.set $8 - local.get $9 + local.set $7 + local.get $8 i32.const 1533 i32.gt_u if (result f64) f64.const 5260135901548373507240989e186 - local.set $8 + local.set $7 local.get $1 f64.const 1.90109156629516e-211 f64.mul @@ -5966,12 +5962,12 @@ f64.const 1.90109156629516e-211 f64.mul else - local.get $7 + local.get $6 i32.const 573 i32.lt_u if (result f64) f64.const 1.90109156629516e-211 - local.set $8 + local.set $7 local.get $1 f64.const 5260135901548373507240989e186 f64.mul @@ -5988,63 +5984,62 @@ local.get $0 f64.const 134217729 f64.mul - local.tee $12 + local.tee $11 f64.sub - local.get $12 + local.get $11 f64.add - local.tee $11 + local.tee $10 f64.sub - local.set $6 - local.get $0 - local.get $0 - f64.mul local.set $5 local.get $1 local.get $1 local.get $1 f64.const 134217729 f64.mul - local.tee $0 + local.tee $11 f64.sub - local.get $0 + local.get $11 f64.add - local.tee $10 + local.tee $9 f64.sub - local.set $12 - local.get $8 - local.get $10 - local.get $10 + local.set $11 + local.get $7 + local.get $9 + local.get $9 f64.mul local.get $1 local.get $1 f64.mul - local.tee $0 + local.tee $1 f64.sub - local.get $10 - local.get $10 + local.get $9 + local.get $9 f64.add - local.get $12 + local.get $11 f64.add - local.get $12 + local.get $11 f64.mul f64.add - local.get $11 - local.get $11 + local.get $10 + local.get $10 f64.mul - local.get $5 + local.get $0 + local.get $0 + f64.mul + local.tee $0 f64.sub - local.get $11 - local.get $11 + local.get $10 + local.get $10 f64.add - local.get $6 + local.get $5 f64.add - local.get $6 + local.get $5 f64.mul f64.add f64.add - local.get $0 + local.get $1 f64.add - local.get $5 + local.get $0 f64.add f64.sqrt f64.mul @@ -6326,17 +6321,17 @@ local.get $8 i32.add f64.convert_i32_s - local.tee $3 + local.tee $2 f64.const 0.30102999566361177 f64.mul - local.tee $6 + local.tee $3 local.get $7 f64.const 0.4342944818781689 f64.mul - local.tee $2 + local.tee $6 f64.add local.set $4 - local.get $3 + local.get $2 f64.const 3.694239077158931e-13 f64.mul local.get $0 @@ -6349,10 +6344,10 @@ f64.const 0.4342944818781689 f64.mul f64.add - local.get $6 + local.get $3 local.get $4 f64.sub - local.get $2 + local.get $6 f64.add f64.add local.get $4 @@ -6365,6 +6360,7 @@ (local $4 f32) (local $5 f32) (local $6 i32) + (local $7 f32) i32.const 1 local.get $0 i32.reinterpret_f32 @@ -6439,13 +6435,24 @@ f32.const 2 f32.add f32.div - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f32.mul local.tee $4 local.get $4 f32.mul - local.set $3 + local.set $2 + local.get $1 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + local.get $6 + i32.add + f32.convert_i32_s + local.tee $7 + f32.const 7.903415166765626e-07 + f32.mul local.get $0 local.get $0 local.get $0 @@ -6463,17 +6470,17 @@ f32.sub local.get $0 f32.sub - local.get $2 + local.get $3 local.get $0 local.get $4 - local.get $3 + local.get $2 f32.const 0.2849878668785095 f32.mul f32.const 0.6666666269302368 f32.add f32.mul - local.get $3 - local.get $3 + local.get $2 + local.get $2 f32.const 0.24279078841209412 f32.mul f32.const 0.40000972151756287 @@ -6483,19 +6490,7 @@ f32.add f32.mul f32.add - local.set $0 - local.get $1 - i32.const 23 - i32.shr_u - i32.const 127 - i32.sub - local.get $6 - i32.add - f32.convert_i32_s - local.tee $2 - f32.const 7.903415166765626e-07 - f32.mul - local.get $0 + local.tee $0 local.get $5 f32.add f32.const -3.168997136526741e-05 @@ -6509,7 +6504,7 @@ f32.const 0.434326171875 f32.mul f32.add - local.get $2 + local.get $7 f32.const 0.3010292053222656 f32.mul f32.add @@ -6691,7 +6686,7 @@ local.get $9 f64.load offset=8 f64.add - local.tee $5 + local.tee $7 local.get $1 local.get $8 i64.const -4503599627370496 @@ -6715,19 +6710,19 @@ i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $7 + local.tee $4 f64.const 1.4426950407214463 f64.mul - local.tee $4 + local.tee $5 f64.add local.set $6 - local.get $5 + local.get $7 local.get $6 f64.sub - local.get $4 + local.get $5 f64.add local.get $0 - local.get $7 + local.get $4 f64.sub f64.const 1.4426950407214463 f64.mul @@ -7344,11 +7339,11 @@ (local $2 i64) (local $3 i32) (local $4 f64) - (local $5 f64) + (local $5 i64) (local $6 i64) - (local $7 i64) - (local $8 f64) - (local $9 i64) + (local $7 f64) + (local $8 i64) + (local $9 f64) (local $10 f64) (local $11 i32) (local $12 i32) @@ -7412,19 +7407,19 @@ end block $~lib/util/math/pow_lut|inlined.0 (result f64) local.get $1 - local.tee $5 + local.tee $4 i64.reinterpret_f64 - local.tee $7 + local.tee $6 i64.const 52 i64.shr_u - local.set $9 + local.set $14 local.get $0 - local.tee $4 + local.tee $1 i64.reinterpret_f64 local.tee $2 i64.const 52 i64.shr_u - local.tee $14 + local.tee $8 i64.const 1 i64.sub i64.const 2046 @@ -7432,7 +7427,7 @@ if (result i32) i32.const 1 else - local.get $9 + local.get $14 i64.const 2047 i64.and i64.const 958 @@ -7441,7 +7436,7 @@ i64.ge_u end if - local.get $7 + local.get $6 i64.const 1 i64.shl i64.const 1 @@ -7450,7 +7445,7 @@ i64.ge_u if f64.const 1 - local.get $7 + local.get $6 i64.const 1 i64.shl i64.eqz @@ -7462,11 +7457,11 @@ i64.eq br_if $~lib/util/math/pow_lut|inlined.0 drop + local.get $1 local.get $4 - local.get $5 f64.add i32.const 1 - local.get $7 + local.get $6 i64.const 1 i64.shl i64.const -9007199254740992 @@ -7488,7 +7483,7 @@ br_if $~lib/util/math/pow_lut|inlined.0 drop f64.const 0 - local.get $7 + local.get $6 i64.const 63 i64.shr_u i64.eqz @@ -7500,8 +7495,8 @@ i32.eq br_if $~lib/util/math/pow_lut|inlined.0 drop - local.get $5 - local.get $5 + local.get $4 + local.get $4 f64.mul br $~lib/util/math/pow_lut|inlined.0 end @@ -7514,8 +7509,8 @@ i64.ge_u if f64.const 1 - local.get $4 - local.get $4 + local.get $1 + local.get $1 f64.mul local.tee $0 f64.neg @@ -7527,18 +7522,18 @@ if (result i32) block $~lib/util/math/checkint|inlined.0 (result i32) i32.const 0 - local.get $7 + local.get $6 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $6 + local.tee $5 i64.const 1023 i64.lt_u br_if $~lib/util/math/checkint|inlined.0 drop i32.const 2 - local.get $6 + local.get $5 i64.const 1075 i64.gt_u br_if $~lib/util/math/checkint|inlined.0 @@ -7546,21 +7541,21 @@ i32.const 0 i64.const 1 i64.const 1075 - local.get $6 + local.get $5 i64.sub i64.shl - local.tee $6 + local.tee $5 i64.const 1 i64.sub - local.get $7 + local.get $6 i64.and i64.const 0 i64.ne br_if $~lib/util/math/checkint|inlined.0 drop i32.const 1 + local.get $5 local.get $6 - local.get $7 i64.and i64.const 0 i64.ne @@ -7577,7 +7572,7 @@ local.tee $0 f64.div local.get $0 - local.get $7 + local.get $6 i64.const 63 i64.shr_u i32.wrap_i64 @@ -7591,18 +7586,18 @@ if block $~lib/util/math/checkint|inlined.1 (result i32) i32.const 0 - local.get $7 + local.get $6 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $6 + local.tee $5 i64.const 1023 i64.lt_u br_if $~lib/util/math/checkint|inlined.1 drop i32.const 2 - local.get $6 + local.get $5 i64.const 1075 i64.gt_u br_if $~lib/util/math/checkint|inlined.1 @@ -7610,21 +7605,21 @@ i32.const 0 i64.const 1 i64.const 1075 - local.get $6 + local.get $5 i64.sub i64.shl - local.tee $6 + local.tee $5 i64.const 1 i64.sub - local.get $7 + local.get $6 i64.and i64.const 0 i64.ne br_if $~lib/util/math/checkint|inlined.1 drop i32.const 1 + local.get $5 local.get $6 - local.get $7 i64.and i64.const 0 i64.ne @@ -7635,18 +7630,18 @@ local.tee $11 i32.eqz if - local.get $4 - local.get $4 + local.get $1 + local.get $1 f64.sub local.tee $0 local.get $0 f64.div br $~lib/util/math/pow_lut|inlined.0 end - local.get $14 + local.get $8 i64.const 2047 i64.and - local.set $14 + local.set $8 i32.const 262144 i32.const 0 local.get $11 @@ -7659,7 +7654,7 @@ i64.and local.set $2 end - local.get $9 + local.get $14 i64.const 2047 i64.and i64.const 958 @@ -7674,7 +7669,7 @@ br_if $~lib/util/math/pow_lut|inlined.0 drop f64.const 1 - local.get $9 + local.get $14 i64.const 2047 i64.and i64.const 958 @@ -7683,7 +7678,7 @@ drop f64.const inf f64.const 0 - local.get $9 + local.get $14 i64.const 2048 i64.lt_u local.get $2 @@ -7693,10 +7688,10 @@ select br $~lib/util/math/pow_lut|inlined.0 end - local.get $14 + local.get $8 i64.eqz if (result i64) - local.get $4 + local.get $1 f64.const 4503599627370496 f64.mul i64.reinterpret_f64 @@ -7713,18 +7708,18 @@ local.get $2 i64.const 4604531861337669632 i64.sub - local.tee $9 + local.tee $8 i64.const -4503599627370496 i64.and i64.sub - local.tee $6 + local.tee $5 i64.const 2147483648 i64.add i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $0 - local.get $9 + local.tee $1 + local.get $8 i64.const 45 i64.shr_u i64.const 127 @@ -7736,12 +7731,12 @@ i32.add local.tee $11 f64.load - local.tee $1 + local.tee $0 f64.mul f64.const 1 f64.sub local.set $13 - local.get $9 + local.get $8 i64.const 52 i64.shr_s f64.convert_i64_s @@ -7751,15 +7746,15 @@ local.get $11 f64.load offset=16 f64.add - local.tee $8 + local.tee $18 local.get $13 - local.get $6 + local.get $5 f64.reinterpret_i64 - local.get $0 - f64.sub local.get $1 + f64.sub + local.get $0 f64.mul - local.tee $18 + local.tee $7 f64.add local.tee $10 f64.add @@ -7768,7 +7763,7 @@ local.get $10 f64.const -0.5 f64.mul - local.tee $4 + local.tee $9 f64.mul local.set $16 local.get $15 @@ -7788,14 +7783,14 @@ local.get $11 f64.load offset=24 f64.add - local.get $8 + local.get $18 local.get $15 f64.sub local.get $10 f64.add f64.add - local.get $18 - local.get $4 + local.get $7 + local.get $9 local.get $1 f64.add f64.mul @@ -7834,32 +7829,32 @@ f64.add local.tee $0 f64.add - local.tee $8 + local.tee $7 f64.sub local.get $0 f64.add global.set $~lib/util/math/log_tail block $~lib/util/math/exp_inline|inlined.0 (result f64) - local.get $7 + local.get $6 i64.const -134217728 i64.and f64.reinterpret_i64 local.tee $0 - local.get $8 + local.get $7 i64.reinterpret_f64 i64.const -134217728 i64.and f64.reinterpret_i64 local.tee $1 f64.mul - local.set $4 - local.get $5 + local.set $9 + local.get $4 local.get $0 f64.sub local.get $1 f64.mul - local.get $5 - local.get $8 + local.get $4 + local.get $7 local.get $1 f64.sub global.get $~lib/util/math/log_tail @@ -7867,9 +7862,9 @@ f64.mul f64.add local.set $1 - local.get $4 + local.get $9 i64.reinterpret_f64 - local.tee $6 + local.tee $5 i64.const 52 i64.shr_u i32.wrap_i64 @@ -7892,7 +7887,7 @@ i32.ge_u br_if $~lib/util/math/exp_inline|inlined.0 drop - local.get $6 + local.get $5 i64.const 63 i64.shr_u i32.wrap_i64 @@ -7919,14 +7914,14 @@ i32.const 0 local.set $3 end - local.get $4 + local.get $9 f64.const 184.6649652337873 f64.mul f64.const 6755399441055744 f64.add local.tee $0 i64.reinterpret_f64 - local.tee $9 + local.tee $8 i64.const 127 i64.and i64.const 1 @@ -7940,13 +7935,13 @@ i64.load offset=8 local.get $12 i64.extend_i32_u - local.get $9 + local.get $8 i64.add i64.const 45 i64.shl i64.add - local.set $6 - local.get $4 + local.set $5 + local.get $9 local.get $0 f64.const 6755399441055744 f64.sub @@ -7991,12 +7986,12 @@ i32.eqz if block $~lib/util/math/specialcase|inlined.1 (result f64) - local.get $9 + local.get $8 i64.const 2147483648 i64.and i64.eqz if - local.get $6 + local.get $5 i64.const 4544132024016830464 i64.sub f64.reinterpret_i64 @@ -8009,64 +8004,64 @@ f64.mul br $~lib/util/math/specialcase|inlined.1 end - local.get $6 + local.get $5 i64.const 4602678819172646912 i64.add - local.tee $6 + local.tee $5 f64.reinterpret_i64 - local.tee $4 - local.get $4 + local.tee $9 + local.get $9 local.get $0 f64.mul f64.add - local.tee $8 + local.tee $7 f64.abs f64.const 1 f64.lt if (result f64) f64.const 1 - local.get $8 + local.get $7 f64.copysign - local.tee $5 - local.get $8 + local.tee $4 + local.get $7 f64.add local.tee $1 - local.get $5 + local.get $4 local.get $1 f64.sub - local.get $8 + local.get $7 f64.add - local.get $4 - local.get $8 + local.get $9 + local.get $7 f64.sub - local.get $4 + local.get $9 local.get $0 f64.mul f64.add f64.add f64.add - local.get $5 + local.get $4 f64.sub - local.tee $8 + local.tee $7 f64.const 0 f64.eq if (result f64) - local.get $6 + local.get $5 i64.const -9223372036854775808 i64.and f64.reinterpret_i64 else - local.get $8 + local.get $7 end else - local.get $8 + local.get $7 end f64.const 2.2250738585072014e-308 f64.mul end br $~lib/util/math/exp_inline|inlined.0 end - local.get $6 + local.get $5 f64.reinterpret_i64 local.tee $1 local.get $1 @@ -9242,8 +9237,8 @@ ) (func $~lib/math/NativeMath.sin (param $0 f64) (result f64) (local $1 f64) - (local $2 f64) - (local $3 i64) + (local $2 i64) + (local $3 f64) (local $4 f64) (local $5 i32) (local $6 i32) @@ -9252,7 +9247,7 @@ (local $9 f64) local.get $0 i64.reinterpret_f64 - local.tee $3 + local.tee $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -9278,12 +9273,12 @@ local.get $0 local.get $0 f64.mul - local.tee $1 + local.tee $3 local.get $0 f64.mul - local.get $1 - local.get $1 - local.get $1 + local.get $3 + local.get $3 + local.get $3 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -9291,12 +9286,12 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $1 - local.get $1 - local.get $1 + local.get $3 + local.get $3 + local.get $3 f64.mul f64.mul - local.get $1 + local.get $3 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -9320,7 +9315,7 @@ return end block $~lib/math/rempio2|inlined.1 (result i32) - local.get $3 + local.get $2 i64.const 32 i64.shr_u i32.wrap_i64 @@ -9337,15 +9332,15 @@ local.get $0 f64.const 1.5707963267341256 f64.add - local.set $1 + local.set $3 i32.const -1 local.set $5 local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.const 6.077100506506192e-11 f64.add local.tee $0 @@ -9353,14 +9348,14 @@ f64.const 6.077100506506192e-11 f64.add else - local.get $1 + local.get $3 f64.const 6.077100506303966e-11 f64.add - local.tee $1 + local.tee $3 f64.const 2.0222662487959506e-21 f64.add local.set $0 - local.get $1 + local.get $3 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -9370,13 +9365,13 @@ local.get $0 f64.const 1.5707963267341256 f64.sub - local.set $1 + local.set $3 local.get $7 i32.const 1073291771 i32.ne if (result f64) - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.const 6.077100506506192e-11 f64.sub local.tee $0 @@ -9384,14 +9379,14 @@ f64.const 6.077100506506192e-11 f64.sub else - local.get $1 + local.get $3 f64.const 6.077100506303966e-11 f64.sub - local.tee $1 + local.tee $3 f64.const 2.0222662487959506e-21 f64.sub local.set $0 - local.get $1 + local.get $3 local.get $0 f64.sub f64.const 2.0222662487959506e-21 @@ -9425,9 +9420,9 @@ local.get $4 f64.const 6.077100506506192e-11 f64.mul - local.tee $1 + local.tee $3 f64.sub - local.tee $2 + local.tee $1 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -9444,24 +9439,23 @@ f64.const 2.0222662487959506e-21 f64.mul local.get $0 - local.tee $1 - local.get $1 + local.get $0 local.get $4 f64.const 6.077100506303966e-11 f64.mul - local.tee $2 + local.tee $1 f64.sub local.tee $0 f64.sub - local.get $2 + local.get $1 f64.sub f64.sub - local.set $1 + local.set $3 local.get $6 local.get $0 - local.get $1 + local.get $3 f64.sub - local.tee $2 + local.tee $1 i64.reinterpret_f64 i64.const 32 i64.shr_u @@ -9478,41 +9472,40 @@ f64.const 8.4784276603689e-32 f64.mul local.get $0 - local.tee $1 - local.get $1 + local.get $0 local.get $4 f64.const 2.0222662487111665e-21 f64.mul - local.tee $2 + local.tee $1 f64.sub local.tee $0 f64.sub - local.get $2 + local.get $1 f64.sub f64.sub - local.set $1 + local.set $3 local.get $0 - local.get $1 + local.get $3 f64.sub else - local.get $2 + local.get $1 end - local.set $2 + local.set $1 end - local.get $2 + local.get $1 global.set $~lib/math/rempio2_y0 local.get $0 - local.get $2 - f64.sub local.get $1 f64.sub + local.get $3 + f64.sub global.set $~lib/math/rempio2_y1 local.get $4 i32.trunc_f64_s br $~lib/math/rempio2|inlined.1 end i32.const 0 - local.get $3 + local.get $2 call $~lib/math/pio2_large_quot local.tee $5 i32.sub @@ -9522,22 +9515,22 @@ end local.set $6 global.get $~lib/math/rempio2_y0 - local.set $0 + local.set $3 global.get $~lib/math/rempio2_y1 local.set $4 local.get $6 i32.const 1 i32.and if (result f64) - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.mul - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 f64.mul - local.set $2 + local.set $1 f64.const 1 - local.get $1 + local.get $0 f64.const 0.5 f64.mul local.tee $8 @@ -9548,10 +9541,10 @@ f64.sub local.get $8 f64.sub - local.get $1 - local.get $1 - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 + local.get $0 f64.const 2.480158728947673e-05 f64.mul f64.const -0.001388888888887411 @@ -9560,11 +9553,11 @@ f64.const 0.0416666666666666 f64.add f64.mul - local.get $2 - local.get $2 - f64.mul local.get $1 local.get $1 + f64.mul + local.get $0 + local.get $0 f64.const -1.1359647557788195e-11 f64.mul f64.const 2.087572321298175e-09 @@ -9575,28 +9568,28 @@ f64.mul f64.add f64.mul - local.get $0 + local.get $3 local.get $4 f64.mul f64.sub f64.add f64.add else - local.get $0 - local.get $0 + local.get $3 + local.get $3 f64.mul - local.tee $1 - local.get $0 + local.tee $0 + local.get $3 f64.mul - local.set $2 + local.set $1 + local.get $3 local.get $0 - local.get $1 local.get $4 f64.const 0.5 f64.mul - local.get $2 - local.get $1 local.get $1 + local.get $0 + local.get $0 f64.const 2.7557313707070068e-06 f64.mul f64.const -1.984126982985795e-04 @@ -9604,12 +9597,12 @@ f64.mul f64.const 0.00833333333332249 f64.add - local.get $1 - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 f64.mul f64.mul - local.get $1 + local.get $0 f64.const 1.58969099521155e-10 f64.mul f64.const -2.5050760253406863e-08 @@ -9621,7 +9614,7 @@ f64.mul local.get $4 f64.sub - local.get $2 + local.get $1 f64.const -0.16666666666666632 f64.mul f64.sub @@ -9668,13 +9661,13 @@ end local.get $0 f64.promote_f32 - local.tee $8 - local.get $8 - f64.mul local.tee $9 - local.get $8 + local.get $9 f64.mul - local.set $7 + local.tee $7 + local.get $9 + f64.mul + local.set $8 br $folding-inner0 end local.get $2 @@ -9691,8 +9684,8 @@ f64.promote_f32 f64.const 1.5707963267948966 f64.add - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.mul local.tee $9 local.get $9 @@ -9724,8 +9717,8 @@ f64.promote_f32 f64.const 1.5707963267948966 f64.sub - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.mul local.tee $9 local.get $9 @@ -9756,22 +9749,22 @@ end local.get $0 f64.promote_f32 - local.tee $9 + local.tee $8 f64.const 3.141592653589793 f64.add - local.get $9 + local.get $8 f64.const 3.141592653589793 f64.sub local.get $5 select f64.neg - local.tee $8 - local.get $8 - f64.mul local.tee $9 - local.get $8 + local.get $9 f64.mul - local.set $7 + local.tee $7 + local.get $9 + f64.mul + local.set $8 br $folding-inner0 end local.get $2 @@ -9788,8 +9781,8 @@ f64.promote_f32 f64.const 4.71238898038469 f64.add - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.mul local.tee $9 local.get $9 @@ -9820,8 +9813,8 @@ f64.promote_f32 f64.const 4.71238898038469 f64.sub - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.mul local.tee $9 local.get $9 @@ -9853,21 +9846,21 @@ end local.get $0 f64.promote_f32 - local.tee $9 + local.tee $8 f64.const 6.283185307179586 f64.add - local.get $9 + local.get $8 f64.const 6.283185307179586 f64.sub local.get $5 select - local.tee $8 - local.get $8 - f64.mul local.tee $9 - local.get $8 + local.get $9 f64.mul - local.set $7 + local.tee $7 + local.get $9 + f64.mul + local.set $8 br $folding-inner0 end local.get $2 @@ -9926,7 +9919,7 @@ i32.const 8388608 i32.or i64.extend_i32_s - local.tee $3 + local.tee $4 local.get $2 i32.const 6 i32.shr_s @@ -9940,7 +9933,7 @@ i64.shl local.get $2 i64.load offset=8 - local.tee $4 + local.tee $3 i64.const 64 local.get $6 i64.sub @@ -9951,7 +9944,7 @@ i64.const 32 i64.gt_u if (result i64) - local.get $4 + local.get $3 local.get $6 i64.const 32 i64.sub @@ -9964,29 +9957,29 @@ i64.shr_u i64.or else - local.get $4 + local.get $3 i64.const 32 local.get $6 i64.sub i64.shr_u end - local.get $3 + local.get $4 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $6 + local.tee $4 i64.const 2 i64.shl - local.tee $4 + local.tee $6 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y i32.const 0 - local.get $6 + local.get $4 i64.const 62 i64.shr_u - local.get $4 + local.get $6 i64.const 63 i64.shr_u i64.add @@ -9999,13 +9992,13 @@ end local.set $1 global.get $~lib/math/rempio2f_y - local.set $9 + local.set $7 local.get $1 i32.const 1 i32.and if (result f32) - local.get $9 - local.get $9 + local.get $7 + local.get $7 f64.mul local.tee $9 local.get $9 @@ -10032,27 +10025,27 @@ f64.add f32.demote_f64 else - local.get $9 - local.get $9 - local.get $9 + local.get $7 + local.get $7 + local.get $7 + f64.mul + local.tee $9 + local.get $7 f64.mul local.tee $8 local.get $9 - f64.mul - local.tee $7 - local.get $8 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add - local.get $7 - local.get $8 local.get $8 + local.get $9 + local.get $9 f64.mul f64.mul - local.get $8 + local.get $9 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -10070,21 +10063,21 @@ select return end + local.get $9 local.get $8 local.get $7 - local.get $9 f64.const 0.008333329385889463 f64.mul f64.const -0.16666666641626524 f64.add f64.mul f64.add + local.get $8 + local.get $7 local.get $7 - local.get $9 - local.get $9 f64.mul f64.mul - local.get $9 + local.get $7 f64.const 2.718311493989822e-06 f64.mul f64.const -1.9839334836096632e-04 @@ -10407,30 +10400,29 @@ local.get $1 return end + f64.const -1 local.get $1 + f64.div + local.tee $5 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 - local.set $4 - f64.const -1 + local.tee $4 + local.get $5 + local.get $4 local.get $1 - f64.div - local.tee $5 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 local.tee $1 - local.get $5 - local.get $1 - local.get $4 f64.mul f64.const 1 f64.add - local.get $1 - local.get $3 local.get $4 + local.get $3 + local.get $1 local.get $0 f64.sub f64.sub @@ -10731,12 +10723,12 @@ end local.get $0 f64.promote_f32 - local.tee $8 - local.get $8 - f64.mul local.tee $9 local.get $9 f64.mul + local.tee $8 + local.get $8 + f64.mul local.set $7 br $folding-inner0 end @@ -10758,12 +10750,12 @@ f64.sub local.get $5 select - local.tee $8 - local.get $8 - f64.mul local.tee $9 local.get $9 f64.mul + local.tee $8 + local.get $8 + f64.mul local.set $7 br $folding-inner1 else @@ -10777,12 +10769,12 @@ f64.sub local.get $5 select - local.tee $8 - local.get $8 - f64.mul local.tee $9 local.get $9 f64.mul + local.tee $8 + local.get $8 + f64.mul local.set $7 br $folding-inner0 end @@ -10806,12 +10798,12 @@ f64.sub local.get $5 select - local.tee $8 - local.get $8 - f64.mul local.tee $9 local.get $9 f64.mul + local.tee $8 + local.get $8 + f64.mul local.set $7 br $folding-inner1 else @@ -10825,12 +10817,12 @@ f64.sub local.get $5 select - local.tee $8 - local.get $8 - f64.mul local.tee $9 local.get $9 f64.mul + local.tee $8 + local.get $8 + f64.mul local.set $7 br $folding-inner0 end @@ -10853,22 +10845,22 @@ if local.get $0 f64.promote_f32 - local.tee $8 + local.tee $9 f64.const 0.6366197723675814 f64.mul f64.nearest - local.set $9 - local.get $8 + local.set $7 local.get $9 + local.get $7 f64.const 1.5707963109016418 f64.mul f64.sub - local.get $9 + local.get $7 f64.const 1.5893254773528196e-08 f64.mul f64.sub global.set $~lib/math/rempio2f_y - local.get $9 + local.get $7 i32.trunc_f64_s br $~lib/math/rempio2f|inlined.2 end @@ -10892,7 +10884,7 @@ i32.const 8388608 i32.or i64.extend_i32_s - local.tee $3 + local.tee $4 local.get $2 i32.const 6 i32.shr_s @@ -10906,7 +10898,7 @@ i64.shl local.get $2 i64.load offset=8 - local.tee $4 + local.tee $3 i64.const 64 local.get $6 i64.sub @@ -10917,7 +10909,7 @@ i64.const 32 i64.gt_u if (result i64) - local.get $4 + local.get $3 local.get $6 i64.const 32 i64.sub @@ -10930,29 +10922,29 @@ i64.shr_u i64.or else - local.get $4 + local.get $3 i64.const 32 local.get $6 i64.sub i64.shr_u end - local.get $3 + local.get $4 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $6 + local.tee $4 i64.const 2 i64.shl - local.tee $4 + local.tee $6 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y i32.const 0 - local.get $6 + local.get $4 i64.const 62 i64.shr_u - local.get $4 + local.get $6 i64.const 63 i64.shr_u i64.add @@ -10965,36 +10957,36 @@ end local.set $1 global.get $~lib/math/rempio2f_y - local.tee $8 - local.get $8 - f64.mul local.tee $9 local.get $9 f64.mul + local.tee $8 + local.get $8 + f64.mul local.set $7 f64.const -1 - local.get $8 local.get $9 local.get $8 - f64.mul - local.tee $8 local.get $9 + f64.mul + local.tee $9 + local.get $8 f64.const 0.13339200271297674 f64.mul f64.const 0.3333313950307914 f64.add f64.mul f64.add - local.get $8 + local.get $9 local.get $7 f64.mul - local.get $9 + local.get $8 f64.const 0.024528318116654728 f64.mul f64.const 0.05338123784456704 f64.add local.get $7 - local.get $9 + local.get $8 f64.const 0.009465647849436732 f64.mul f64.const 0.002974357433599673 @@ -11013,28 +11005,28 @@ f32.demote_f64 return end - local.get $8 local.get $9 local.get $8 - f64.mul - local.tee $8 local.get $9 + f64.mul + local.tee $9 + local.get $8 f64.const 0.13339200271297674 f64.mul f64.const 0.3333313950307914 f64.add f64.mul f64.add - local.get $8 + local.get $9 local.get $7 f64.mul - local.get $9 + local.get $8 f64.const 0.024528318116654728 f64.mul f64.const 0.05338123784456704 f64.add local.get $7 - local.get $9 + local.get $8 f64.const 0.009465647849436732 f64.mul f64.const 0.002974357433599673 @@ -11047,28 +11039,28 @@ return end f64.const -1 - local.get $8 local.get $9 local.get $8 - f64.mul - local.tee $8 local.get $9 + f64.mul + local.tee $9 + local.get $8 f64.const 0.13339200271297674 f64.mul f64.const 0.3333313950307914 f64.add f64.mul f64.add - local.get $8 + local.get $9 local.get $7 f64.mul - local.get $9 + local.get $8 f64.const 0.024528318116654728 f64.mul f64.const 0.05338123784456704 f64.add local.get $7 - local.get $9 + local.get $8 f64.const 0.009465647849436732 f64.mul f64.const 0.002974357433599673 diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index 9b8135474e..ffd55b7272 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -2102,17 +2102,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2258,19 +2258,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2285,7 +2285,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2296,10 +2296,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2307,10 +2307,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2321,7 +2321,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2376,7 +2376,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2387,10 +2387,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2398,10 +2398,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2412,7 +2412,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2438,17 +2438,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2463,7 +2463,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2474,10 +2474,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2485,10 +2485,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2499,7 +2499,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2530,145 +2530,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2679,73 +2671,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2756,30 +2740,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2787,6 +2761,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 2ca885c083..668d2cd2fe 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -1471,17 +1471,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1627,19 +1627,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1654,7 +1654,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -1665,10 +1665,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -1676,10 +1676,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -1690,7 +1690,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -1745,7 +1745,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -1756,10 +1756,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -1767,10 +1767,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -1781,7 +1781,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -1807,17 +1807,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1832,7 +1832,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -1843,10 +1843,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -1854,10 +1854,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -1868,7 +1868,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -1899,145 +1899,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2048,73 +2040,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2125,30 +2109,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2156,6 +2130,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index 74fa43602d..807cc52cd7 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -1870,17 +1870,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2026,19 +2026,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2053,7 +2053,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2064,10 +2064,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2075,10 +2075,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2089,7 +2089,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2144,7 +2144,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2155,10 +2155,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2166,10 +2166,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2180,7 +2180,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2206,17 +2206,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2231,7 +2231,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2242,10 +2242,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2253,10 +2253,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2267,7 +2267,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2298,145 +2298,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2447,73 +2439,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2524,30 +2508,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2555,6 +2529,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index ed15009355..2733967504 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -2332,17 +2332,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2488,19 +2488,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2515,7 +2515,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2526,10 +2526,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2537,10 +2537,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2551,7 +2551,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2606,7 +2606,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2617,10 +2617,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2628,10 +2628,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2642,7 +2642,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2668,17 +2668,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2693,7 +2693,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2704,10 +2704,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2715,10 +2715,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2729,7 +2729,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2760,145 +2760,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2909,73 +2901,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2986,30 +2970,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -3017,6 +2991,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 @@ -6870,7 +6848,7 @@ local.get $0 i32.add i32.load16_u - local.tee $2 + local.tee $3 i32.const 7 i32.shr_u if @@ -6881,7 +6859,7 @@ local.get $4 i32.gt_u i32.const 0 - local.get $2 + local.get $3 i32.const 55295 i32.sub i32.const 1025 @@ -6907,7 +6885,7 @@ local.get $7 i32.const 1023 i32.and - local.get $2 + local.get $3 local.tee $1 i32.const 1023 i32.and @@ -6916,7 +6894,7 @@ i32.or i32.const 65536 i32.add - local.tee $2 + local.tee $3 i32.const 131072 i32.ge_u if @@ -6939,7 +6917,7 @@ end end end - local.get $2 + local.get $3 i32.const 304 i32.eq if @@ -6955,7 +6933,7 @@ i32.add local.set $5 else - local.get $2 + local.get $3 i32.const 931 i32.eq if @@ -6972,10 +6950,10 @@ if (result i32) block $~lib/util/string/isFinalSigma|inlined.0 (result i32) i32.const 0 - local.set $3 + local.set $2 i32.const 0 local.get $4 - local.tee $2 + local.tee $3 i32.const 30 i32.sub local.tee $1 @@ -6985,20 +6963,18 @@ select local.set $9 loop $while-continue|1 - local.get $2 + local.get $3 local.get $9 i32.gt_s if - local.get $2 - local.set $1 i32.const -1 - local.set $2 + local.set $1 block $~lib/util/string/codePointBefore|inlined.0 - local.get $1 + local.get $3 i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $1 + local.get $3 i32.const 1 i32.sub i32.const 1 @@ -7011,7 +6987,7 @@ i32.and i32.const 56320 i32.eq - local.get $1 + local.get $3 i32.const 2 i32.sub i32.const 0 @@ -7021,7 +6997,7 @@ local.get $7 i32.const 1023 i32.and - local.get $1 + local.get $3 i32.const 2 i32.sub i32.const 1 @@ -7037,7 +7013,7 @@ i32.add i32.const 65536 i32.add - local.set $2 + local.set $1 local.get $10 i32.const 64512 i32.and @@ -7053,13 +7029,13 @@ i32.const 55296 i32.eq select - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 918000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 8 i32.shr_u i32.const 7212 @@ -7069,14 +7045,14 @@ i32.shl i32.const 7212 i32.add - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $2 + local.get $1 i32.const 7 i32.and i32.shr_u @@ -7088,11 +7064,11 @@ i32.eqz if i32.const 0 - local.get $2 + local.get $1 i32.const 127370 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 8 i32.shr_u i32.const 10220 @@ -7102,14 +7078,14 @@ i32.shl i32.const 10220 i32.add - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $2 + local.get $1 i32.const 7 i32.and i32.shr_u @@ -7122,28 +7098,28 @@ br_if $~lib/util/string/isFinalSigma|inlined.0 drop i32.const 1 - local.set $3 + local.set $2 end + local.get $3 local.get $1 - local.get $2 i32.const 65536 i32.ge_s i32.const 1 i32.add i32.sub - local.set $2 + local.set $3 br $while-continue|1 end end i32.const 0 - local.get $3 + local.get $2 i32.eqz br_if $~lib/util/string/isFinalSigma|inlined.0 drop local.get $4 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 30 i32.add local.tee $1 @@ -7152,13 +7128,13 @@ local.get $8 i32.lt_s select - local.set $3 + local.set $2 loop $while-continue|2 local.get $2 local.get $3 - i32.lt_s + i32.gt_s if - local.get $2 + local.get $3 i32.const 1 i32.shl local.get $0 @@ -7170,13 +7146,13 @@ i32.const 55296 i32.eq local.get $8 - local.get $2 + local.get $3 i32.const 1 i32.add i32.ne i32.and if - local.get $2 + local.get $3 i32.const 1 i32.shl local.get $0 @@ -7268,9 +7244,9 @@ i32.ge_u i32.const 1 i32.add - local.get $2 + local.get $3 i32.add - local.set $2 + local.set $3 br $while-continue|2 end end @@ -7282,7 +7258,7 @@ select i32.store16 else - local.get $2 + local.get $3 i32.const 9398 i32.sub i32.const 25 @@ -7293,17 +7269,17 @@ i32.shl local.get $6 i32.add - local.get $2 + local.get $3 i32.const 26 i32.add i32.store16 else - local.get $2 + local.get $3 i32.const 0 call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.tee $2 + local.tee $3 i32.const 65536 i32.lt_u if @@ -7312,7 +7288,7 @@ i32.shl local.get $6 i32.add - local.get $2 + local.get $3 i32.store16 else local.get $5 @@ -7320,15 +7296,15 @@ i32.shl local.get $6 i32.add - local.get $2 + local.get $3 i32.const 65536 i32.sub - local.tee $2 + local.tee $3 i32.const 10 i32.shr_u i32.const 55296 i32.or - local.get $2 + local.get $3 i32.const 1023 i32.and i32.const 56320 @@ -7352,7 +7328,7 @@ i32.shl local.get $6 i32.add - local.get $2 + local.get $3 i32.const 7084 i32.add i32.load8_u diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 9f3e92b0f1..dcb7a1ad25 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -1754,17 +1754,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1910,19 +1910,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1937,7 +1937,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -1948,10 +1948,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -1959,10 +1959,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -1973,7 +1973,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2028,7 +2028,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2039,10 +2039,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2050,10 +2050,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2064,7 +2064,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2090,17 +2090,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2115,7 +2115,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2126,10 +2126,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2137,10 +2137,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2151,7 +2151,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2182,145 +2182,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2331,73 +2323,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2408,30 +2392,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2439,6 +2413,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 41e94970ea..bc8051ae8a 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -2827,17 +2827,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2983,19 +2983,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -3010,7 +3010,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -3021,10 +3021,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -3032,10 +3032,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -3046,7 +3046,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -3101,7 +3101,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -3112,10 +3112,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -3123,10 +3123,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -3137,7 +3137,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -3163,17 +3163,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -3188,7 +3188,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -3199,10 +3199,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -3210,10 +3210,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -3224,7 +3224,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -3255,145 +3255,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -3404,73 +3396,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -3481,30 +3465,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -3512,6 +3486,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 @@ -6374,6 +6352,14 @@ i64.const 100000000 i64.ge_u if + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add local.get $1 local.get $1 i64.const 100000000 @@ -6385,20 +6371,8 @@ i32.wrap_i64 local.tee $3 i32.const 10000 - i32.div_u - local.set $4 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $3 - i32.const 10000 i32.rem_u - local.tee $3 + local.tee $4 i32.const 100 i32.div_u i32.const 2 @@ -6406,7 +6380,7 @@ i32.const 15804 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -6426,7 +6400,10 @@ i32.shl local.get $0 i32.add - local.get $4 + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -6434,7 +6411,7 @@ i32.const 15804 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -7236,8 +7213,8 @@ (local $6 i64) (local $7 i64) (local $8 i64) - (local $9 i64) - (local $10 i32) + (local $9 i32) + (local $10 i64) (local $11 i64) (local $12 i64) (local $13 i64) @@ -7269,7 +7246,7 @@ select i32.const 1075 i32.sub - local.tee $10 + local.tee $9 i32.const 1 i32.sub local.get $1 @@ -7309,7 +7286,7 @@ i64.shl i64.const 1 i64.sub - local.get $10 + local.get $9 local.get $4 i32.sub local.get $2 @@ -7322,7 +7299,7 @@ i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $10 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -7363,56 +7340,56 @@ local.get $1 i64.clz i64.shl - local.tee $6 + local.tee $1 i64.const 4294967295 i64.and local.set $3 + local.get $1 + i64.const 32 + i64.shr_u + local.tee $10 global.get $~lib/util/number/_frc_pow - local.tee $11 + local.tee $13 i64.const 4294967295 i64.and local.tee $1 - local.tee $7 - local.get $6 - i64.const 32 - i64.shr_u - local.tee $13 + local.tee $6 i64.mul local.get $3 - local.get $7 + local.get $6 i64.mul i64.const 32 i64.shr_u i64.add local.set $6 global.get $~lib/util/number/_frc_plus - local.tee $8 + local.tee $7 i64.const 4294967295 i64.and - local.set $7 - local.get $1 - local.get $8 + local.set $11 + local.get $7 i64.const 32 i64.shr_u local.tee $14 + local.get $1 i64.mul local.get $1 - local.get $7 + local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $8 + local.set $7 global.get $~lib/util/number/_frc_minus - local.tee $9 + local.tee $8 i64.const 4294967295 i64.and local.set $12 - local.get $1 - local.get $9 + local.get $8 i64.const 32 i64.shr_u local.tee $15 + local.get $1 i64.mul local.get $1 local.get $12 @@ -7420,25 +7397,25 @@ i64.const 32 i64.shr_u i64.add - local.set $9 + local.set $8 local.get $5 i32.const 1 i32.shl i32.const 22864 i32.add + local.get $10 local.get $13 - local.get $11 i64.const 32 i64.shr_u local.tee $1 - local.tee $11 + local.tee $10 i64.mul local.get $6 i64.const 32 i64.shr_u i64.add local.get $3 - local.get $11 + local.get $10 i64.mul local.get $6 i64.const 4294967295 @@ -7452,14 +7429,14 @@ local.get $1 local.get $14 i64.mul - local.get $8 + local.get $7 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $7 + local.get $11 i64.mul - local.get $8 + local.get $7 i64.const 4294967295 i64.and i64.add @@ -7472,7 +7449,7 @@ i64.sub local.tee $3 global.get $~lib/util/number/_exp_pow - local.get $10 + local.get $9 i32.add i32.const -64 i32.sub @@ -7480,14 +7457,14 @@ local.get $1 local.get $15 i64.mul - local.get $9 + local.get $8 i64.const 32 i64.shr_u i64.add local.get $1 local.get $12 i64.mul - local.get $9 + local.get $8 i64.const 4294967295 i64.and i64.add @@ -7593,86 +7570,39 @@ (local $8 i32) (local $9 i32) (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 25884 - i32.lt_s - if - i32.const 42288 - i32.const 42336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i64.const 0 - i64.store offset=8 - local.get $3 - i64.const 0 - i64.store offset=16 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 - local.get $2 - i32.eqz - br_if $folding-inner0 - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link + block $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 25884 + i32.lt_s + if + i32.const 42288 + i32.const 42336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i64.const 0 + i64.store + local.get $3 + i64.const 0 + i64.store offset=8 + local.get $3 + i64.const 0 + i64.store offset=16 + block $folding-inner3 + block $folding-inner1 + block $folding-inner0 + local.get $2 + i32.eqz + br_if $folding-inner0 local.get $1 - local.set $0 - br $folding-inner1 - end - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 - i32.const 2147483647 - local.get $2 - local.get $2 - i32.const 0 - i32.lt_s - select - local.set $7 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $8 - if - local.get $3 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -7680,204 +7610,247 @@ i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 i32.store offset=4 - local.get $0 + local.get $1 i32.load offset=4 - i32.const 1712 + local.get $0 i32.store - br $folding-inner1 + local.get $1 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + br $folding-inner3 end - else - local.get $3 - i32.eqz - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $7 - local.get $3 - local.get $7 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + i32.const 2147483647 + local.get $2 + local.get $2 + i32.const 0 i32.lt_s select - local.tee $4 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $1 - i32.store + local.set $7 local.get $1 - i32.load offset=4 - local.set $3 - loop $for-loop|0 - local.get $4 - local.get $5 - i32.gt_s + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $8 + if + local.get $3 + i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - local.get $2 - local.get $5 i32.const 1 - i32.shl + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=4 local.get $0 - i32.add - i32.load16_u - i32.store16 - local.get $5 - i32.const 2 - i32.shl - local.get $3 - i32.add - local.get $2 + i32.load offset=4 + i32.const 1712 i32.store - local.get $1 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link + br $folding-inner1 + end + else + local.get $3 + i32.eqz + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $7 + local.get $3 + local.get $7 + i32.lt_s + select + local.tee $4 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $1 + i32.store + local.get $1 + i32.load offset=4 + local.set $3 + loop $for-loop|0 + local.get $4 local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + local.get $2 + local.get $5 + i32.const 1 + i32.shl + local.get $0 + i32.add + i32.load16_u + i32.store16 + local.get $5 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.get $2 + i32.store + local.get $1 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0 + end end + br $folding-inner3 end global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=12 - loop $while-continue|1 - local.get $0 - local.get $1 - local.get $4 - call $~lib/string/String#indexOf - local.tee $5 - i32.const -1 - i32.xor - if - local.get $5 + i32.const 0 + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=12 + loop $while-continue|1 + local.get $0 + local.get $1 local.get $4 - i32.sub - local.tee $6 - i32.const 0 - i32.gt_s + call $~lib/string/String#indexOf + local.tee $5 + i32.const -1 + i32.xor if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=16 - local.get $6 + local.get $5 local.get $4 + i32.sub + local.tee $6 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store offset=16 + local.get $6 + local.get $4 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $9 + call $~lib/memory/memory.copy + local.get $2 + local.get $6 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=20 + local.get $2 + i32.const 1712 + call $~lib/array/Array<~lib/string/String>#push + end + local.get $10 i32.const 1 - i32.shl - local.get $0 i32.add - local.get $9 - call $~lib/memory/memory.copy - local.get $2 - local.get $6 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=20 - local.get $2 - i32.const 1712 - call $~lib/array/Array<~lib/string/String>#push + local.tee $10 + local.get $7 + i32.eq + br_if $folding-inner4 + local.get $5 + local.get $8 + i32.add + local.set $4 + br $while-continue|1 end - local.get $10 + end + local.get $4 + i32.eqz + if + local.get $2 + local.get $0 + call $~lib/array/Array<~lib/string/String>#push + br $folding-inner4 + end + local.get $3 + local.get $4 + i32.sub + local.tee $1 + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store offset=4 + local.get $1 + local.get $4 + i32.const 1 + i32.shl + local.get $0 i32.add - local.tee $10 - local.get $7 - i32.eq - br_if $folding-inner2 - local.get $5 - local.get $8 - i32.add - local.set $4 - br $while-continue|1 + local.get $3 + call $~lib/memory/memory.copy + local.get $2 + local.get $1 + call $~lib/array/Array<~lib/string/String>#push + else + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=20 + local.get $2 + i32.const 1712 + call $~lib/array/Array<~lib/string/String>#push end + br $folding-inner4 end - local.get $4 - i32.eqz - if - local.get $2 - local.get $0 - call $~lib/array/Array<~lib/string/String>#push - br $folding-inner2 - end - local.get $3 - local.get $4 - i32.sub - local.tee $1 i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store offset=4 - local.get $1 - local.get $4 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $3 - call $~lib/memory/memory.copy - local.get $2 - local.get $1 - call $~lib/array/Array<~lib/string/String>#push - else - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=20 - local.get $2 - i32.const 1712 - call $~lib/array/Array<~lib/string/String>#push - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + i32.const 4 + i32.const 0 + call $~lib/rt/__newArray + local.set $0 end - i32.const 0 - i32.const 4 - i32.const 0 - call $~lib/rt/__newArray - local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 return end global.get $~lib/memory/__stack_pointer @@ -22049,12 +22022,12 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store + local.get $4 local.get $3 local.get $5 i32.sub local.tee $3 - local.get $4 - i32.gt_u + i32.lt_u if local.get $4 local.get $3 @@ -22128,11 +22101,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $4 - local.get $1 - i32.const 1 - i32.shl - local.tee $3 + local.tee $5 local.get $0 i32.const 20 i32.sub @@ -22141,8 +22110,12 @@ i32.shr_u i32.const 1 i32.shl - local.tee $1 - i32.lt_u + local.tee $3 + local.get $1 + i32.const 1 + i32.shl + local.tee $4 + i32.gt_u select i32.eqz if @@ -22154,50 +22127,50 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store - local.get $5 - local.get $0 local.get $1 + local.get $0 + local.get $3 call $~lib/memory/memory.copy + local.get $5 + local.get $4 local.get $3 - local.get $1 i32.sub local.tee $0 - local.get $4 - i32.gt_u + i32.lt_u if - local.get $4 + local.get $5 local.get $0 i32.const 2 i32.sub - local.get $4 + local.get $5 i32.div_u local.tee $6 i32.mul - local.set $3 + local.set $4 local.get $1 - local.get $5 + local.get $3 i32.add - local.tee $1 + local.tee $3 local.get $2 - local.get $4 + local.get $5 local.get $6 call $~lib/memory/memory.repeat - local.get $1 local.get $3 + local.get $4 i32.add local.get $2 local.get $0 - local.get $3 + local.get $4 i32.sub call $~lib/memory/memory.copy else local.get $1 - local.get $5 + local.get $3 i32.add local.get $2 local.get $0 @@ -22207,7 +22180,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 ) (func $~lib/string/String#trimStart (param $0 i32) (result i32) (local $1 i32) @@ -23081,286 +23054,229 @@ (local $9 i32) (local $10 i32) (local $11 i32) - block $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 25884 + i32.lt_s + if + i32.const 42288 + i32.const 42336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $folding-inner0 + local.get $1 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 25884 - i32.lt_s + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $7 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + i32.ge_u if - i32.const 42288 - i32.const 42336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $8 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $4 + local.get $4 + local.get $7 i32.ge_u if - local.get $4 - local.get $8 - i32.ge_u - if - local.get $2 - local.get $0 - local.get $1 - local.get $0 - call $~lib/string/String.__eq - select - local.set $0 - end - br $folding-inner2 + local.get $2 + local.get $0 + local.get $1 + local.get $0 + call $~lib/string/String.__eq + select + local.set $0 end + br $folding-inner0 + end + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $3 + local.get $7 + i32.eqz + if + local.get $3 + i32.eqz + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + i32.const 1 + i32.add + i32.mul + local.get $4 + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $5 local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 + local.get $3 i32.const 1 - i32.shr_u - local.set $3 - local.get $8 - i32.eqz - if - local.get $3 - i32.eqz - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.const 1 - i32.add - i32.mul - local.get $4 - i32.add - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store - local.get $11 - local.get $2 - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $3 - local.set $1 - loop $for-loop|0 - local.get $4 - local.get $5 - i32.gt_u - if - local.get $1 - i32.const 1 - i32.shl - local.get $11 - i32.add - local.get $5 - i32.const 1 - i32.shl - local.get $0 - i32.add - i32.load16_u - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.const 1 - i32.shl - local.get $11 - i32.add - local.get $2 - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $1 - local.get $3 - i32.add - local.set $1 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - br $folding-inner1 - end + i32.shl + call $~lib/memory/memory.copy local.get $3 - local.get $8 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - local.tee $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - local.get $5 - local.get $0 + local.set $1 + loop $for-loop|0 local.get $4 - call $~lib/memory/memory.copy - loop $while-continue|1 - local.get $0 - local.get $1 - local.get $10 - call $~lib/string/String#indexOf - local.tee $4 - i32.const -1 - i32.xor - if - local.get $4 - i32.const 1 - i32.shl - local.get $5 - i32.add - local.get $2 - local.get $3 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $4 - local.get $8 - i32.add - local.set $10 - br $while-continue|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $4 - local.set $5 - loop $while-continue|2 - local.get $0 - local.get $1 - local.get $10 - call $~lib/string/String#indexOf - local.tee $7 - i32.const -1 - i32.xor + local.get $9 + i32.gt_u if - local.get $11 - if (result i32) - local.get $11 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - else - i32.const 0 - end - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store offset=4 - end + local.get $1 + i32.const 1 + i32.shl local.get $5 - local.get $3 - local.get $9 - local.get $7 - local.get $10 - i32.sub - local.tee $6 - i32.add i32.add - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $5 - i32.const 1 - i32.shl - local.tee $5 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $11 - i32.store offset=4 - end local.get $9 i32.const 1 i32.shl - local.get $11 + local.get $0 i32.add - local.get $10 + i32.load16_u + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.tee $1 i32.const 1 i32.shl - local.get $0 + local.get $5 i32.add - local.get $6 + local.get $2 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $6 + local.get $1 + local.get $3 + i32.add + local.set $1 local.get $9 + i32.const 1 i32.add - local.tee $10 + local.set $9 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $3 + local.get $7 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + local.tee $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + local.get $4 + local.get $0 + local.get $5 + call $~lib/memory/memory.copy + loop $while-continue|1 + local.get $0 + local.get $1 + local.get $10 + call $~lib/string/String#indexOf + local.tee $5 + i32.const -1 + i32.xor + if + local.get $5 i32.const 1 i32.shl - local.get $11 + local.get $4 i32.add local.get $2 local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 - local.get $10 - i32.add - local.set $9 + local.get $5 local.get $7 - local.get $8 i32.add local.set $10 - br $while-continue|2 + br $while-continue|1 end end - local.get $11 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + local.get $4 + local.set $5 + loop $while-continue|2 + local.get $0 + local.get $1 + local.get $10 + call $~lib/string/String#indexOf + local.tee $9 + i32.const -1 + i32.xor if + local.get $11 + if (result i32) + local.get $11 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + else + i32.const 0 + end + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $11 + i32.store offset=4 + end local.get $5 + local.get $3 + local.get $8 local.get $9 - local.get $4 local.get $10 i32.sub - local.tee $1 + local.tee $6 + i32.add i32.add i32.lt_u if @@ -23376,48 +23292,112 @@ local.tee $11 i32.store offset=4 end - local.get $1 - if - local.get $9 - i32.const 1 - i32.shl - local.get $11 - i32.add - local.get $10 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $1 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - end - local.get $5 - local.get $1 + local.get $8 + i32.const 1 + i32.shl + local.get $11 + i32.add + local.get $10 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $6 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $6 + local.get $8 + i32.add + local.tee $10 + i32.const 1 + i32.shl + local.get $11 + i32.add + local.get $2 + local.get $3 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $3 + local.get $10 + i32.add + local.set $8 + local.get $7 local.get $9 i32.add - local.tee $0 - i32.gt_u - if - global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $0 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $11 - i32.store offset=4 - end - br $folding-inner1 + local.set $10 + br $while-continue|2 end - br $folding-inner2 + end + local.get $11 + if + local.get $5 + local.get $8 + local.get $4 + local.get $10 + i32.sub + local.tee $1 + i32.add + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $11 + local.get $5 + i32.const 1 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $11 + i32.store offset=4 + end + local.get $1 + if + local.get $8 + i32.const 1 + i32.shl + local.get $11 + i32.add + local.get $10 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + end + local.get $5 + local.get $1 + local.get $8 + i32.add + local.tee $0 + i32.gt_u + if + global.get $~lib/memory/__stack_pointer + local.get $11 + local.get $0 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $11 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + return end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $0 return end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index eec1ce5183..455b30883c 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -2276,17 +2276,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2432,19 +2432,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2459,7 +2459,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2470,10 +2470,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2481,10 +2481,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2495,7 +2495,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2550,7 +2550,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2561,10 +2561,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2572,10 +2572,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2586,7 +2586,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2612,17 +2612,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2637,7 +2637,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2648,10 +2648,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2659,10 +2659,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2673,7 +2673,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2704,145 +2704,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2853,73 +2845,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2930,30 +2914,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2961,6 +2935,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 130dcd3d8c..ba232bae61 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -4061,17 +4061,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -4217,19 +4217,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -4244,7 +4244,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -4255,10 +4255,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -4266,10 +4266,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -4280,7 +4280,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -4335,7 +4335,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -4346,10 +4346,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -4357,10 +4357,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -4371,7 +4371,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -4397,17 +4397,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -4422,7 +4422,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -4433,10 +4433,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -4444,10 +4444,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -4458,7 +4458,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -4489,145 +4489,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -4638,73 +4630,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -4715,30 +4699,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -4746,6 +4720,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 @@ -5122,10 +5100,10 @@ local.get $4 i32.lt_s select - local.set $3 + local.set $5 local.get $0 i32.load offset=4 - local.tee $5 + local.tee $3 local.get $1 i32.const 0 i32.lt_s @@ -5175,14 +5153,14 @@ local.tee $2 i32.const 2 i32.shl - local.get $5 - i32.add local.get $3 + i32.add + local.get $5 i32.const 0 i32.lt_s if (result i32) - local.get $3 local.get $4 + local.get $5 i32.add local.tee $3 i32.const 0 @@ -5191,11 +5169,11 @@ i32.gt_s select else - local.get $3 + local.get $5 local.get $4 - local.get $3 local.get $4 - i32.lt_s + local.get $5 + i32.gt_s select end local.get $2 @@ -6662,7 +6640,7 @@ local.get $2 i32.const 1 i32.sub - local.set $5 + local.set $6 loop $while-continue|1 local.get $1 local.get $7 @@ -6677,17 +6655,17 @@ i32.load16_u local.set $4 local.get $2 - local.get $5 + local.get $6 local.get $1 i32.sub i32.const 1 i32.shl local.get $3 i32.add - local.tee $6 + local.tee $5 i32.load16_u i32.store16 - local.get $6 + local.get $5 local.get $4 i32.store16 local.get $1 @@ -25781,6 +25759,14 @@ i64.const 100000000 i64.ge_u if + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.get $0 + i32.add local.get $1 local.get $1 i64.const 100000000 @@ -25792,20 +25778,8 @@ i32.wrap_i64 local.tee $3 i32.const 10000 - i32.div_u - local.set $4 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $3 - i32.const 10000 i32.rem_u - local.tee $3 + local.tee $4 i32.const 100 i32.div_u i32.const 2 @@ -25813,7 +25787,7 @@ i32.const 8012 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -25833,7 +25807,10 @@ i32.shl local.get $0 i32.add - local.get $4 + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -25841,7 +25818,7 @@ i32.const 8012 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -27593,22 +27570,25 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i64) + (local $3 i32) (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) (local $10 i64) - (local $11 i32) + (local $11 i64) (local $12 i64) - (local $13 i32) + (local $13 i64) (local $14 i64) + (local $15 i64) + (local $16 i64) + (local $17 i64) local.get $1 f64.const 0 f64.lt - local.tee $9 + local.tee $6 if (result f64) local.get $0 i32.const 45 @@ -27619,74 +27599,74 @@ local.get $1 end i64.reinterpret_f64 - local.tee $14 + local.tee $2 i64.const 9218868437227405312 i64.and i64.const 52 i64.shr_u i32.wrap_i64 - local.set $13 - local.get $14 + local.set $3 + local.get $2 i64.const 4503599627370495 i64.and - local.get $13 + local.get $3 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl i64.add - local.set $14 - local.get $13 + local.set $2 + local.get $3 i32.const 1 - local.get $13 + local.get $3 select i32.const 1075 i32.sub - local.tee $13 + local.tee $3 i32.const 1 i32.sub - local.get $14 + local.get $2 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $2 + local.tee $4 i64.clz i32.wrap_i64 - local.tee $11 + local.tee $5 i32.sub - local.set $8 - local.get $2 - local.get $11 + local.set $7 + local.get $4 + local.get $5 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $14 - local.get $14 + local.get $2 + local.get $2 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $11 + local.tee $5 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $13 - local.get $11 + local.get $3 + local.get $5 i32.sub - local.get $8 + local.get $7 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $8 + local.get $7 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $8 + local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -27695,9 +27675,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $13 + local.tee $3 local.get $1 - local.get $13 + local.get $3 f64.convert_i32_s f64.ne i32.add @@ -27705,132 +27685,107 @@ i32.shr_s i32.const 1 i32.add - local.tee $13 + local.tee $3 i32.const 3 i32.shl - local.tee $11 + local.tee $5 i32.sub global.set $~lib/util/number/_K - local.get $11 + local.get $5 i32.const 9864 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $13 + local.get $3 i32.const 1 i32.shl i32.const 10560 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - local.get $14 - local.get $14 + local.get $2 + local.get $2 i64.clz i64.shl local.tee $2 i64.const 4294967295 i64.and - local.set $7 - global.get $~lib/util/number/_frc_pow - local.tee $12 - i64.const 4294967295 - i64.and - local.tee $14 - local.set $3 + local.set $9 local.get $2 i64.const 32 i64.shr_u - local.set $6 - local.get $12 - i64.const 32 - i64.shr_u + local.tee $15 + global.get $~lib/util/number/_frc_pow + local.tee $8 + i64.const 4294967295 + i64.and local.tee $2 - local.set $5 - local.get $3 - local.get $6 + local.tee $4 i64.mul - local.get $3 - local.get $7 + local.get $4 + local.get $9 i64.mul i64.const 32 i64.shr_u i64.add - local.set $4 + local.set $10 global.get $~lib/util/number/_frc_plus - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $10 - local.get $3 + local.set $11 + local.get $4 i64.const 32 i64.shr_u - local.tee $12 + local.tee $16 local.get $2 - local.tee $3 - i64.mul - local.get $12 - local.get $14 i64.mul - local.get $10 - local.get $14 + local.get $2 + local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $12 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - local.get $10 - i64.mul - local.get $12 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub local.set $12 global.get $~lib/util/number/_frc_minus - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $10 - local.get $14 - local.get $3 + local.set $13 + local.get $4 i64.const 32 i64.shr_u - local.tee $3 + local.tee $17 + local.get $2 i64.mul - local.get $10 - local.get $14 + local.get $2 + local.get $13 i64.mul i64.const 32 i64.shr_u i64.add local.set $14 - local.get $9 + local.get $6 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $5 - local.get $6 + local.get $15 + local.get $8 + i64.const 32 + i64.shr_u + local.tee $2 + local.tee $8 i64.mul - local.get $4 + local.get $10 i64.const 32 i64.shr_u i64.add - local.get $5 - local.get $7 + local.get $8 + local.get $9 i64.mul - local.get $4 + local.get $10 i64.const 4294967295 i64.and i64.add @@ -27839,22 +27794,43 @@ i64.const 32 i64.shr_u i64.add + local.get $2 + local.get $16 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $11 + i64.mul local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $4 global.get $~lib/util/number/_exp_pow - local.get $8 + local.get $7 i32.add i32.const -64 i32.sub - local.get $12 + local.get $4 local.get $2 - local.get $3 + local.get $17 i64.mul local.get $14 i64.const 32 i64.shr_u i64.add local.get $2 - local.get $10 + local.get $13 i64.mul local.get $14 i64.const 4294967295 @@ -27868,13 +27844,13 @@ i64.const 1 i64.add i64.sub - local.get $9 + local.get $6 call $~lib/util/number/genDigits - local.get $9 + local.get $6 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $6 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -64903,6 +64879,7 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $5 i32.const 0 i32.store local.get $0 @@ -64911,6 +64888,23 @@ i32.const 2 i32.shr_u local.set $4 + local.get $5 + i32.const 12 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.load + local.tee $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + local.get $0 + local.get $3 + i32.load offset=4 local.get $1 i32.const 0 i32.lt_s @@ -64918,9 +64912,9 @@ local.get $1 local.get $4 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -64932,25 +64926,7 @@ i32.lt_s select end - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $3 - i32.load - local.tee $5 - i32.store - local.get $0 - local.get $5 - call $~lib/rt/itcms/__link - local.get $0 - local.get $3 - i32.load offset=4 - local.get $1 + local.tee $1 i32.const 2 i32.shl i32.add @@ -65014,6 +64990,7 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $5 i32.const 0 i32.store local.get $0 @@ -65022,6 +64999,23 @@ i32.const 3 i32.shr_u local.set $4 + local.get $5 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.load + local.tee $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + local.get $0 + local.get $3 + i32.load offset=4 local.get $1 i32.const 0 i32.lt_s @@ -65029,9 +65023,9 @@ local.get $1 local.get $4 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -65043,25 +65037,7 @@ i32.lt_s select end - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $3 - i32.load - local.tee $5 - i32.store - local.get $0 - local.get $5 - call $~lib/rt/itcms/__link - local.get $0 - local.get $3 - i32.load offset=4 - local.get $1 + local.tee $1 i32.const 3 i32.shl i32.add @@ -65239,12 +65215,28 @@ unreachable end global.get $~lib/memory/__stack_pointer + local.tee $5 i32.const 0 i32.store local.get $0 local.tee $3 i32.load offset=8 local.set $4 + local.get $5 + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $3 + i32.load + local.tee $5 + i32.store + local.get $0 + local.get $5 + call $~lib/rt/itcms/__link + local.get $0 local.get $1 i32.const 0 i32.lt_s @@ -65252,9 +65244,9 @@ local.get $1 local.get $4 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -65266,23 +65258,7 @@ i32.lt_s select end - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $3 - i32.load - local.tee $5 - i32.store - local.get $0 - local.get $5 - call $~lib/rt/itcms/__link - local.get $0 - local.get $1 + local.tee $1 local.get $3 i32.load offset=4 i32.add @@ -65427,7 +65403,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -65444,20 +65419,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i32.const 0 i32.store - i32.const 4 local.get $0 local.tee $2 i32.load offset=8 - local.tee $3 - local.get $3 - i32.const 4 - i32.gt_s - select local.set $4 - local.get $5 + local.get $3 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -65466,13 +65435,19 @@ local.get $0 local.get $2 i32.load - local.tee $5 + local.tee $3 i32.store local.get $0 - local.get $5 + local.get $3 call $~lib/rt/itcms/__link local.get $0 + i32.const 4 local.get $4 + local.get $4 + i32.const 4 + i32.gt_s + select + local.tee $3 local.get $2 i32.load offset=4 i32.add @@ -65483,7 +65458,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -65493,19 +65468,19 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end local.tee $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.gt_s select - local.get $4 + local.get $3 i32.sub i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -65518,7 +65493,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -65535,20 +65509,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i32.const 0 i32.store - i32.const 4 local.get $0 local.tee $2 i32.load offset=8 - local.tee $3 - local.get $3 - i32.const 4 - i32.gt_s - select local.set $4 - local.get $5 + local.get $3 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new @@ -65557,13 +65525,19 @@ local.get $0 local.get $2 i32.load - local.tee $5 + local.tee $3 i32.store local.get $0 - local.get $5 + local.get $3 call $~lib/rt/itcms/__link local.get $0 + i32.const 4 + local.get $4 local.get $4 + i32.const 4 + i32.gt_s + select + local.tee $3 local.get $2 i32.load offset=4 i32.add @@ -65574,7 +65548,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -65584,19 +65558,19 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end local.tee $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.gt_s select - local.get $4 + local.get $3 i32.sub i32.store offset=8 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index 55659c75d1..9dfea1e60b 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -1835,17 +1835,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1991,19 +1991,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2018,7 +2018,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2029,10 +2029,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2040,10 +2040,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2054,7 +2054,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2109,7 +2109,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2120,10 +2120,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2131,10 +2131,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2145,7 +2145,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2171,17 +2171,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2196,7 +2196,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2207,10 +2207,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2218,10 +2218,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2232,7 +2232,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2263,145 +2263,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2412,73 +2404,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2489,30 +2473,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2520,6 +2494,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index aac6d7283a..fb837cd23e 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -1933,17 +1933,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2089,19 +2089,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2116,7 +2116,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -2127,10 +2127,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2138,10 +2138,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -2152,7 +2152,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -2207,7 +2207,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -2218,10 +2218,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2229,10 +2229,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -2243,7 +2243,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -2269,17 +2269,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -2294,7 +2294,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -2305,10 +2305,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2316,10 +2316,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2330,7 +2330,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2361,145 +2361,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2510,73 +2502,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2587,30 +2571,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2618,6 +2592,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 @@ -4124,8 +4102,8 @@ (local $6 i64) (local $7 i64) (local $8 i64) - (local $9 i64) - (local $10 i32) + (local $9 i32) + (local $10 i64) (local $11 i64) (local $12 i64) (local $13 i64) @@ -4157,7 +4135,7 @@ select i32.const 1075 i32.sub - local.tee $10 + local.tee $9 i32.const 1 i32.sub local.get $1 @@ -4197,7 +4175,7 @@ i64.shl i64.const 1 i64.sub - local.get $10 + local.get $9 local.get $4 i32.sub local.get $2 @@ -4210,7 +4188,7 @@ i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $10 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -4251,56 +4229,56 @@ local.get $1 i64.clz i64.shl - local.tee $6 + local.tee $1 i64.const 4294967295 i64.and local.set $3 + local.get $1 + i64.const 32 + i64.shr_u + local.tee $10 global.get $~lib/util/number/_frc_pow - local.tee $11 + local.tee $13 i64.const 4294967295 i64.and local.tee $1 - local.tee $7 - local.get $6 - i64.const 32 - i64.shr_u - local.tee $13 + local.tee $6 i64.mul local.get $3 - local.get $7 + local.get $6 i64.mul i64.const 32 i64.shr_u i64.add local.set $6 global.get $~lib/util/number/_frc_plus - local.tee $8 + local.tee $7 i64.const 4294967295 i64.and - local.set $7 - local.get $1 - local.get $8 + local.set $11 + local.get $7 i64.const 32 i64.shr_u local.tee $14 + local.get $1 i64.mul local.get $1 - local.get $7 + local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $8 + local.set $7 global.get $~lib/util/number/_frc_minus - local.tee $9 + local.tee $8 i64.const 4294967295 i64.and local.set $12 - local.get $1 - local.get $9 + local.get $8 i64.const 32 i64.shr_u local.tee $15 + local.get $1 i64.mul local.get $1 local.get $12 @@ -4308,25 +4286,25 @@ i64.const 32 i64.shr_u i64.add - local.set $9 + local.set $8 local.get $5 i32.const 1 i32.shl i32.const 3920 i32.add + local.get $10 local.get $13 - local.get $11 i64.const 32 i64.shr_u local.tee $1 - local.tee $11 + local.tee $10 i64.mul local.get $6 i64.const 32 i64.shr_u i64.add local.get $3 - local.get $11 + local.get $10 i64.mul local.get $6 i64.const 4294967295 @@ -4340,14 +4318,14 @@ local.get $1 local.get $14 i64.mul - local.get $8 + local.get $7 i64.const 32 i64.shr_u i64.add local.get $1 - local.get $7 + local.get $11 i64.mul - local.get $8 + local.get $7 i64.const 4294967295 i64.and i64.add @@ -4360,7 +4338,7 @@ i64.sub local.tee $3 global.get $~lib/util/number/_exp_pow - local.get $10 + local.get $9 i32.add i32.const -64 i32.sub @@ -4368,14 +4346,14 @@ local.get $1 local.get $15 i64.mul - local.get $9 + local.get $8 i64.const 32 i64.shr_u i64.add local.get $1 local.get $12 i64.mul - local.get $9 + local.get $8 i64.const 4294967295 i64.and i64.add diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index eace7c06c8..4afd75a6d7 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -1619,17 +1619,17 @@ select if local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1775,19 +1775,19 @@ local.get $0 i32.const 2 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 i32.const 2 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1802,7 +1802,7 @@ local.get $0 local.get $1 i32.load offset=1 - local.tee $3 + local.tee $4 i32.const 8 i32.shl local.get $5 @@ -1813,10 +1813,10 @@ local.get $0 local.get $1 i32.load offset=5 - local.tee $4 + local.tee $3 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -1824,10 +1824,10 @@ local.get $0 local.get $1 i32.load offset=9 - local.tee $3 + local.tee $4 i32.const 8 i32.shl - local.get $4 + local.get $3 i32.const 24 i32.shr_u i32.or @@ -1838,7 +1838,7 @@ local.tee $5 i32.const 8 i32.shl - local.get $3 + local.get $4 i32.const 24 i32.shr_u i32.or @@ -1893,7 +1893,7 @@ local.get $0 local.get $1 i32.load offset=2 - local.tee $3 + local.tee $4 i32.const 16 i32.shl local.get $5 @@ -1904,10 +1904,10 @@ local.get $0 local.get $1 i32.load offset=6 - local.tee $4 + local.tee $3 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -1915,10 +1915,10 @@ local.get $0 local.get $1 i32.load offset=10 - local.tee $3 + local.tee $4 i32.const 16 i32.shl - local.get $4 + local.get $3 i32.const 16 i32.shr_u i32.or @@ -1929,7 +1929,7 @@ local.tee $5 i32.const 16 i32.shl - local.get $3 + local.get $4 i32.const 16 i32.shr_u i32.or @@ -1955,17 +1955,17 @@ i32.load local.set $5 local.get $0 - local.tee $3 + local.tee $4 i32.const 1 i32.add local.set $0 local.get $1 - local.tee $4 + local.tee $3 i32.const 1 i32.add local.set $1 - local.get $3 local.get $4 + local.get $3 i32.load8_u i32.store8 local.get $2 @@ -1980,7 +1980,7 @@ local.get $0 local.get $1 i32.load offset=3 - local.tee $3 + local.tee $4 i32.const 24 i32.shl local.get $5 @@ -1991,10 +1991,10 @@ local.get $0 local.get $1 i32.load offset=7 - local.tee $4 + local.tee $3 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2002,10 +2002,10 @@ local.get $0 local.get $1 i32.load offset=11 - local.tee $3 + local.tee $4 i32.const 24 i32.shl - local.get $4 + local.get $3 i32.const 8 i32.shr_u i32.or @@ -2016,7 +2016,7 @@ local.tee $5 i32.const 24 i32.shl - local.get $3 + local.get $4 i32.const 8 i32.shr_u i32.or @@ -2047,145 +2047,137 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 8 @@ -2196,73 +2188,65 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 - local.get $1 + local.get $4 + i32.const 2 + i32.add + local.tee $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 + local.get $1 local.tee $4 i32.const 2 i32.add - local.set $0 - local.get $1 - local.tee $3 + local.set $1 + local.get $3 + local.tee $0 i32.const 2 i32.add - local.set $1 + local.set $3 local.get $4 - local.get $3 + local.get $0 i32.load8_u offset=1 i32.store8 offset=1 - local.get $0 local.get $1 + local.get $3 i32.load8_u i32.store8 - local.get $0 - local.tee $4 + local.get $1 i32.const 2 i32.add local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $3 + i32.const 2 + i32.add + local.set $1 end local.get $2 i32.const 4 @@ -2273,30 +2257,20 @@ i32.load8_u i32.store8 local.get $0 - local.tee $4 - i32.const 2 - i32.add - local.set $0 local.get $1 - local.tee $3 - i32.const 2 - i32.add - local.set $1 - local.get $4 - local.get $3 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $1 - i32.load8_u - i32.store8 - local.get $0 - local.tee $4 i32.const 2 i32.add - local.set $0 + local.tee $4 local.get $1 + i32.const 2 + i32.add local.tee $3 + i32.load8_u + i32.store8 + local.get $3 i32.const 2 i32.add local.set $1 @@ -2304,6 +2278,10 @@ local.get $3 i32.load8_u offset=1 i32.store8 offset=1 + local.get $4 + i32.const 2 + i32.add + local.set $0 end local.get $2 i32.const 2 @@ -2975,22 +2953,25 @@ ) (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) (local $2 i64) - (local $3 i64) + (local $3 i32) (local $4 i64) - (local $5 i64) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) (local $10 i64) - (local $11 i32) + (local $11 i64) (local $12 i64) - (local $13 i32) + (local $13 i64) (local $14 i64) + (local $15 i64) + (local $16 i64) + (local $17 i64) local.get $1 f64.const 0 f64.lt - local.tee $9 + local.tee $6 if (result f64) local.get $0 i32.const 45 @@ -3001,74 +2982,74 @@ local.get $1 end i64.reinterpret_f64 - local.tee $14 + local.tee $2 i64.const 9218868437227405312 i64.and i64.const 52 i64.shr_u i32.wrap_i64 - local.set $13 - local.get $14 + local.set $3 + local.get $2 i64.const 4503599627370495 i64.and - local.get $13 + local.get $3 i32.const 0 i32.ne i64.extend_i32_u i64.const 52 i64.shl i64.add - local.set $14 - local.get $13 + local.set $2 + local.get $3 i32.const 1 - local.get $13 + local.get $3 select i32.const 1075 i32.sub - local.tee $13 + local.tee $3 i32.const 1 i32.sub - local.get $14 + local.get $2 i64.const 1 i64.shl i64.const 1 i64.add - local.tee $2 + local.tee $4 i64.clz i32.wrap_i64 - local.tee $11 + local.tee $5 i32.sub - local.set $8 - local.get $2 - local.get $11 + local.set $7 + local.get $4 + local.get $5 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus - local.get $14 - local.get $14 + local.get $2 + local.get $2 i64.const 4503599627370496 i64.eq i32.const 1 i32.add - local.tee $11 + local.tee $5 i64.extend_i32_s i64.shl i64.const 1 i64.sub - local.get $13 - local.get $11 + local.get $3 + local.get $5 i32.sub - local.get $8 + local.get $7 i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $8 + local.get $7 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $8 + local.tee $7 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3077,9 +3058,9 @@ f64.add local.tee $1 i32.trunc_f64_s - local.tee $13 + local.tee $3 local.get $1 - local.get $13 + local.get $3 f64.convert_i32_s f64.ne i32.add @@ -3087,132 +3068,107 @@ i32.shr_s i32.const 1 i32.add - local.tee $13 + local.tee $3 i32.const 3 i32.shl - local.tee $11 + local.tee $5 i32.sub global.set $~lib/util/number/_K - local.get $11 + local.get $5 i32.const 1328 i32.add i64.load global.set $~lib/util/number/_frc_pow - local.get $13 + local.get $3 i32.const 1 i32.shl i32.const 2024 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow - local.get $14 - local.get $14 + local.get $2 + local.get $2 i64.clz i64.shl local.tee $2 i64.const 4294967295 i64.and - local.set $7 - global.get $~lib/util/number/_frc_pow - local.tee $12 - i64.const 4294967295 - i64.and - local.tee $14 - local.set $3 + local.set $9 local.get $2 i64.const 32 i64.shr_u - local.set $6 - local.get $12 - i64.const 32 - i64.shr_u + local.tee $15 + global.get $~lib/util/number/_frc_pow + local.tee $8 + i64.const 4294967295 + i64.and local.tee $2 - local.set $5 - local.get $3 - local.get $6 + local.tee $4 i64.mul - local.get $3 - local.get $7 + local.get $4 + local.get $9 i64.mul i64.const 32 i64.shr_u i64.add - local.set $4 + local.set $10 global.get $~lib/util/number/_frc_plus - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $10 - local.get $3 + local.set $11 + local.get $4 i64.const 32 i64.shr_u - local.tee $12 + local.tee $16 local.get $2 - local.tee $3 i64.mul - local.get $12 - local.get $14 - i64.mul - local.get $10 - local.get $14 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $12 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - local.get $10 + local.get $2 + local.get $11 i64.mul - local.get $12 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.sub local.set $12 global.get $~lib/util/number/_frc_minus - local.tee $3 + local.tee $4 i64.const 4294967295 i64.and - local.set $10 - local.get $14 - local.get $3 + local.set $13 + local.get $4 i64.const 32 i64.shr_u - local.tee $3 + local.tee $17 + local.get $2 i64.mul - local.get $10 - local.get $14 + local.get $2 + local.get $13 i64.mul i64.const 32 i64.shr_u i64.add local.set $14 - local.get $9 + local.get $6 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $5 - local.get $6 + local.get $15 + local.get $8 + i64.const 32 + i64.shr_u + local.tee $2 + local.tee $8 i64.mul - local.get $4 + local.get $10 i64.const 32 i64.shr_u i64.add - local.get $5 - local.get $7 + local.get $8 + local.get $9 i64.mul - local.get $4 + local.get $10 i64.const 4294967295 i64.and i64.add @@ -3221,22 +3177,43 @@ i64.const 32 i64.shr_u i64.add + local.get $2 + local.get $16 + i64.mul + local.get $12 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $11 + i64.mul local.get $12 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $4 global.get $~lib/util/number/_exp_pow - local.get $8 + local.get $7 i32.add i32.const -64 i32.sub - local.get $12 + local.get $4 local.get $2 - local.get $3 + local.get $17 i64.mul local.get $14 i64.const 32 i64.shr_u i64.add local.get $2 - local.get $10 + local.get $13 i64.mul local.get $14 i64.const 4294967295 @@ -3250,13 +3227,13 @@ i64.const 1 i64.add i64.sub - local.get $9 + local.get $6 call $~lib/util/number/genDigits - local.get $9 + local.get $6 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $9 + local.get $6 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) From 4d6625809c707ca5567e54e60c0a74651a19ccac Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 21 Aug 2021 17:21:22 +0300 Subject: [PATCH 20/32] remove early merge blocks --- src/module.ts | 1 - tests/compiler/for.optimized.wat | 8 +- tests/compiler/std/array.optimized.wat | 204 +++--- tests/compiler/std/math.optimized.wat | 716 ++++++++++---------- tests/compiler/std/typedarray.optimized.wat | 147 ++-- tests/compiler/wasi/trace.optimized.wat | 147 ++-- tests/compiler/while.optimized.wat | 40 +- 7 files changed, 631 insertions(+), 632 deletions(-) diff --git a/src/module.ts b/src/module.ts index a7cbdb910e..6ae9250d81 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2269,7 +2269,6 @@ export class Module { passes.push("local-cse"); passes.push("remove-unused-brs"); passes.push("remove-unused-names"); - passes.push("merge-blocks"); passes.push("precompute-propagate"); } if (optimizeLevel >= 3) { diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 3714775f39..3658b8dae1 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -1317,7 +1317,7 @@ end i32.const 0 local.set $0 - loop $for-loop|08 + loop $for-loop|09 local.get $0 i32.const 10 i32.lt_s @@ -1354,7 +1354,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|08 + br $for-loop|09 end end local.get $0 @@ -1441,7 +1441,7 @@ call $for/Ref#constructor local.tee $0 i32.store - loop $for-loop|09 + loop $for-loop|010 local.get $0 if local.get $1 @@ -1459,7 +1459,7 @@ local.tee $0 i32.store end - br $for-loop|09 + br $for-loop|010 end end local.get $1 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 4a274c0b1c..489be304c8 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -10690,23 +10690,20 @@ (local $2 i64) (local $3 i32) (local $4 i64) - (local $5 i32) - (local $6 i32) + (local $5 i64) + (local $6 i64) (local $7 i32) - (local $8 i64) - (local $9 i64) + (local $8 i32) + (local $9 i32) (local $10 i64) (local $11 i64) (local $12 i64) (local $13 i64) (local $14 i64) - (local $15 i64) - (local $16 i64) - (local $17 i64) local.get $1 f64.const 0 f64.lt - local.tee $6 + local.tee $8 if (result f64) local.get $0 i32.const 45 @@ -10749,14 +10746,14 @@ i64.shl i64.const 1 i64.add - local.tee $4 + local.tee $5 i64.clz i32.wrap_i64 - local.tee $5 + local.tee $7 i32.sub - local.set $7 - local.get $4 + local.set $9 local.get $5 + local.get $7 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -10766,25 +10763,25 @@ i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $7 i64.extend_i32_s i64.shl i64.const 1 i64.sub local.get $3 - local.get $5 - i32.sub local.get $7 i32.sub + local.get $9 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $7 + local.get $9 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -10806,10 +10803,10 @@ local.tee $3 i32.const 3 i32.shl - local.tee $5 + local.tee $7 i32.sub global.set $~lib/util/number/_K - local.get $5 + local.get $7 i32.const 12008 i32.add i64.load @@ -10828,99 +10825,103 @@ local.tee $2 i64.const 4294967295 i64.and - local.set $9 + local.set $11 local.get $2 i64.const 32 i64.shr_u - local.tee $15 + local.tee $14 global.get $~lib/util/number/_frc_pow - local.tee $8 + local.tee $5 i64.const 4294967295 i64.and local.tee $2 local.tee $4 i64.mul local.get $4 - local.get $9 + local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $10 + local.set $12 + local.get $5 + i64.const 32 + i64.shr_u + local.tee $5 + local.set $13 global.get $~lib/util/number/_frc_plus local.tee $4 i64.const 4294967295 i64.and - local.set $11 + local.set $6 local.get $4 i64.const 32 i64.shr_u - local.tee $16 + local.tee $10 local.get $2 i64.mul local.get $2 - local.get $11 + local.get $6 i64.mul i64.const 32 i64.shr_u i64.add - local.set $12 + local.set $4 + local.get $5 + local.get $10 + i64.mul + local.get $4 + i64.const 32 + i64.shr_u + i64.add + local.get $5 + local.get $6 + i64.mul + local.get $4 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $4 global.get $~lib/util/number/_frc_minus - local.tee $4 + local.tee $6 i64.const 4294967295 i64.and - local.set $13 - local.get $4 + local.set $10 + local.get $6 i64.const 32 i64.shr_u - local.tee $17 + local.tee $6 local.get $2 i64.mul local.get $2 - local.get $13 + local.get $10 i64.mul i64.const 32 i64.shr_u i64.add - local.set $14 - local.get $6 + local.set $2 + local.get $8 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $15 - local.get $8 - i64.const 32 - i64.shr_u - local.tee $2 - local.tee $8 - i64.mul - local.get $10 - i64.const 32 - i64.shr_u - i64.add - local.get $8 - local.get $9 - i64.mul - local.get $10 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $16 + local.get $13 + local.get $14 i64.mul local.get $12 i64.const 32 i64.shr_u i64.add - local.get $2 local.get $11 + local.get $13 i64.mul local.get $12 i64.const 4294967295 @@ -10931,26 +10932,24 @@ i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.sub - local.tee $4 + local.get $4 global.get $~lib/util/number/_exp_pow - local.get $7 + local.get $9 i32.add i32.const -64 i32.sub local.get $4 - local.get $2 - local.get $17 + local.get $5 + local.get $6 i64.mul - local.get $14 + local.get $2 i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $13 + local.get $5 + local.get $10 i64.mul - local.get $14 + local.get $2 i64.const 4294967295 i64.and i64.add @@ -10962,13 +10961,13 @@ i64.const 1 i64.add i64.sub - local.get $6 + local.get $8 call $~lib/util/number/genDigits - local.get $6 + local.get $8 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $6 + local.get $8 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) @@ -34862,13 +34861,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.tee $3 local.tee $2 local.get $0 i32.store local.get $2 local.get $1 i32.store offset=4 - local.get $2 + i32.const 0 + local.set $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -34881,7 +34883,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $3 + local.tee $4 local.get $1 i32.load offset=12 i32.const 0 @@ -34889,7 +34891,7 @@ select local.tee $6 i32.add - local.tee $2 + local.tee $3 i32.const 268435455 i32.gt_u if @@ -34901,83 +34903,83 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 2 i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.load offset=4 local.set $5 - local.get $3 + local.get $4 i32.const 2 i32.shl - local.set $3 + local.set $4 local.get $0 i32.load offset=4 local.set $0 loop $for-loop|0 - local.get $3 + local.get $2 local.get $4 - i32.gt_u + i32.lt_u if - local.get $4 + local.get $2 local.get $5 i32.add local.get $0 - local.get $4 + local.get $2 i32.add i32.load local.tee $7 i32.store - local.get $2 + local.get $3 local.get $7 i32.const 1 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 4 i32.add - local.set $4 + local.set $2 br $for-loop|0 end end - local.get $3 + local.get $4 local.get $5 i32.add - local.set $0 + local.set $2 local.get $1 i32.load offset=4 - local.set $4 + local.set $1 local.get $6 i32.const 2 i32.shl local.set $5 i32.const 0 - local.set $1 + local.set $0 loop $for-loop|1 - local.get $1 + local.get $0 local.get $5 i32.lt_u if local.get $0 - local.get $1 + local.get $2 i32.add + local.get $0 local.get $1 - local.get $4 i32.add i32.load - local.tee $3 + local.tee $4 i32.store - local.get $2 local.get $3 + local.get $4 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 4 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end @@ -34989,7 +34991,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end i32.const 32000 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index d2de4aa07f..7538432978 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -7413,114 +7413,179 @@ i64.const 52 i64.shr_u local.set $14 - local.get $0 - local.tee $1 - i64.reinterpret_f64 - local.tee $2 - i64.const 52 - i64.shr_u - local.tee $8 - i64.const 1 - i64.sub - i64.const 2046 - i64.ge_u - if (result i32) - i32.const 1 - else - local.get $14 - i64.const 2047 - i64.and - i64.const 958 - i64.sub - i64.const 128 - i64.ge_u - end - if - local.get $6 - i64.const 1 - i64.shl + block $~lib/util/math/exp_inline|inlined.0 (result f64) + local.get $0 + local.tee $1 + i64.reinterpret_f64 + local.tee $2 + i64.const 52 + i64.shr_u + local.tee $8 i64.const 1 i64.sub - i64.const -9007199254740993 + i64.const 2046 i64.ge_u - if - f64.const 1 - local.get $6 - i64.const 1 - i64.shl - i64.eqz - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const nan:0x8000000000000 - local.get $2 - i64.const 4607182418800017408 - i64.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - local.get $1 - local.get $4 - f64.add + if (result i32) i32.const 1 + else + local.get $14 + i64.const 2047 + i64.and + i64.const 958 + i64.sub + i64.const 128 + i64.ge_u + end + if local.get $6 i64.const 1 i64.shl - i64.const -9007199254740992 - i64.gt_u - local.get $2 i64.const 1 - i64.shl - i64.const -9007199254740992 - i64.gt_u - select - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const nan:0x8000000000000 + i64.sub + i64.const -9007199254740993 + i64.ge_u + if + f64.const 1 + local.get $6 + i64.const 1 + i64.shl + i64.eqz + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const nan:0x8000000000000 + local.get $2 + i64.const 4607182418800017408 + i64.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + local.get $1 + local.get $4 + f64.add + i32.const 1 + local.get $6 + i64.const 1 + i64.shl + i64.const -9007199254740992 + i64.gt_u + local.get $2 + i64.const 1 + i64.shl + i64.const -9007199254740992 + i64.gt_u + select + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const nan:0x8000000000000 + local.get $2 + i64.const 1 + i64.shl + i64.const 9214364837600034816 + i64.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const 0 + local.get $6 + i64.const 63 + i64.shr_u + i64.eqz + local.get $2 + i64.const 1 + i64.shl + i64.const 9214364837600034816 + i64.lt_u + i32.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + local.get $4 + local.get $4 + f64.mul + br $~lib/util/math/pow_lut|inlined.0 + end local.get $2 i64.const 1 i64.shl - i64.const 9214364837600034816 - i64.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const 0 - local.get $6 - i64.const 63 - i64.shr_u - i64.eqz - local.get $2 i64.const 1 - i64.shl - i64.const 9214364837600034816 - i64.lt_u - i32.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - local.get $4 - local.get $4 - f64.mul - br $~lib/util/math/pow_lut|inlined.0 - end - local.get $2 - i64.const 1 - i64.shl - i64.const 1 - i64.sub - i64.const -9007199254740993 - i64.ge_u - if - f64.const 1 - local.get $1 - local.get $1 - f64.mul - local.tee $0 - f64.neg - local.get $0 + i64.sub + i64.const -9007199254740993 + i64.ge_u + if + f64.const 1 + local.get $1 + local.get $1 + f64.mul + local.tee $0 + f64.neg + local.get $0 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + if (result i32) + block $~lib/util/math/checkint|inlined.0 (result i32) + i32.const 0 + local.get $6 + i64.const 52 + i64.shr_u + i64.const 2047 + i64.and + local.tee $5 + i64.const 1023 + i64.lt_u + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 2 + local.get $5 + i64.const 1075 + i64.gt_u + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 0 + i64.const 1 + i64.const 1075 + local.get $5 + i64.sub + i64.shl + local.tee $5 + i64.const 1 + i64.sub + local.get $6 + i64.and + i64.const 0 + i64.ne + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 1 + local.get $5 + local.get $6 + i64.and + i64.const 0 + i64.ne + br_if $~lib/util/math/checkint|inlined.0 + drop + i32.const 2 + end + i32.const 1 + i32.eq + else + i32.const 0 + end + select + local.tee $0 + f64.div + local.get $0 + local.get $6 + i64.const 63 + i64.shr_u + i32.wrap_i64 + select + br $~lib/util/math/pow_lut|inlined.0 + end local.get $2 i64.const 63 i64.shr_u i32.wrap_i64 - if (result i32) - block $~lib/util/math/checkint|inlined.0 (result i32) + if + block $~lib/util/math/checkint|inlined.1 (result i32) i32.const 0 local.get $6 i64.const 52 @@ -7530,13 +7595,13 @@ local.tee $5 i64.const 1023 i64.lt_u - br_if $~lib/util/math/checkint|inlined.0 + br_if $~lib/util/math/checkint|inlined.1 drop i32.const 2 local.get $5 i64.const 1075 i64.gt_u - br_if $~lib/util/math/checkint|inlined.0 + br_if $~lib/util/math/checkint|inlined.1 drop i32.const 0 i64.const 1 @@ -7551,7 +7616,7 @@ i64.and i64.const 0 i64.ne - br_if $~lib/util/math/checkint|inlined.0 + br_if $~lib/util/math/checkint|inlined.1 drop i32.const 1 local.get $5 @@ -7559,303 +7624,238 @@ i64.and i64.const 0 i64.ne - br_if $~lib/util/math/checkint|inlined.0 + br_if $~lib/util/math/checkint|inlined.1 drop i32.const 2 end + local.tee $11 + i32.eqz + if + local.get $1 + local.get $1 + f64.sub + local.tee $0 + local.get $0 + f64.div + br $~lib/util/math/pow_lut|inlined.0 + end + local.get $8 + i64.const 2047 + i64.and + local.set $8 + i32.const 262144 + i32.const 0 + local.get $11 i32.const 1 i32.eq - else - i32.const 0 + select + local.set $12 + local.get $2 + i64.const 9223372036854775807 + i64.and + local.set $2 end - select - local.tee $0 - f64.div - local.get $0 - local.get $6 - i64.const 63 - i64.shr_u - i32.wrap_i64 - select - br $~lib/util/math/pow_lut|inlined.0 - end - local.get $2 - i64.const 63 - i64.shr_u - i32.wrap_i64 - if - block $~lib/util/math/checkint|inlined.1 (result i32) - i32.const 0 - local.get $6 - i64.const 52 - i64.shr_u + local.get $14 + i64.const 2047 + i64.and + i64.const 958 + i64.sub + i64.const 128 + i64.ge_u + if + f64.const 1 + local.get $2 + i64.const 4607182418800017408 + i64.eq + br_if $~lib/util/math/pow_lut|inlined.0 + drop + f64.const 1 + local.get $14 i64.const 2047 i64.and - local.tee $5 - i64.const 1023 + i64.const 958 i64.lt_u - br_if $~lib/util/math/checkint|inlined.1 + br_if $~lib/util/math/pow_lut|inlined.0 drop - i32.const 2 - local.get $5 - i64.const 1075 + f64.const inf + f64.const 0 + local.get $14 + i64.const 2048 + i64.lt_u + local.get $2 + i64.const 4607182418800017408 i64.gt_u - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 0 - i64.const 1 - i64.const 1075 - local.get $5 - i64.sub - i64.shl - local.tee $5 - i64.const 1 - i64.sub - local.get $6 - i64.and - i64.const 0 - i64.ne - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 1 - local.get $5 - local.get $6 - i64.and - i64.const 0 - i64.ne - br_if $~lib/util/math/checkint|inlined.1 - drop - i32.const 2 - end - local.tee $11 - i32.eqz - if - local.get $1 - local.get $1 - f64.sub - local.tee $0 - local.get $0 - f64.div + i32.eq + select br $~lib/util/math/pow_lut|inlined.0 end local.get $8 - i64.const 2047 - i64.and - local.set $8 - i32.const 262144 - i32.const 0 - local.get $11 - i32.const 1 - i32.eq - select - local.set $12 - local.get $2 - i64.const 9223372036854775807 - i64.and + i64.eqz + if (result i64) + local.get $1 + f64.const 4503599627370496 + f64.mul + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + i64.const 234187180623265792 + i64.sub + else + local.get $2 + end local.set $2 end - local.get $14 - i64.const 2047 + local.get $2 + local.get $2 + i64.const 4604531861337669632 + i64.sub + local.tee $8 + i64.const -4503599627370496 i64.and - i64.const 958 i64.sub - i64.const 128 - i64.ge_u - if - f64.const 1 - local.get $2 - i64.const 4607182418800017408 - i64.eq - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const 1 - local.get $14 - i64.const 2047 - i64.and - i64.const 958 - i64.lt_u - br_if $~lib/util/math/pow_lut|inlined.0 - drop - f64.const inf - f64.const 0 - local.get $14 - i64.const 2048 - i64.lt_u - local.get $2 - i64.const 4607182418800017408 - i64.gt_u - i32.eq - select - br $~lib/util/math/pow_lut|inlined.0 - end + local.tee $5 + i64.const 2147483648 + i64.add + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $1 local.get $8 - i64.eqz - if (result i64) - local.get $1 - f64.const 4503599627370496 - f64.mul - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - i64.const 234187180623265792 - i64.sub - else - local.get $2 - end - local.set $2 - end - local.get $2 - local.get $2 - i64.const 4604531861337669632 - i64.sub - local.tee $8 - i64.const -4503599627370496 - i64.and - i64.sub - local.tee $5 - i64.const 2147483648 - i64.add - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $1 - local.get $8 - i64.const 45 - i64.shr_u - i64.const 127 - i64.and - i32.wrap_i64 - i32.const 5 - i32.shl - i32.const 10272 - i32.add - local.tee $11 - f64.load - local.tee $0 - f64.mul - f64.const 1 - f64.sub - local.set $13 - local.get $8 - i64.const 52 - i64.shr_s - f64.convert_i64_s - local.tee $17 - f64.const 0.6931471805598903 - f64.mul - local.get $11 - f64.load offset=16 - f64.add - local.tee $18 - local.get $13 - local.get $5 - f64.reinterpret_i64 - local.get $1 - f64.sub - local.get $0 - f64.mul - local.tee $7 - f64.add - local.tee $10 - f64.add - local.set $15 - local.get $10 - local.get $10 - f64.const -0.5 - f64.mul - local.tee $9 - f64.mul - local.set $16 - local.get $15 - local.get $13 - local.get $13 - f64.const -0.5 - f64.mul - local.tee $1 - f64.mul - local.tee $0 - f64.add - local.tee $13 - local.get $13 - local.get $17 - f64.const 5.497923018708371e-14 - f64.mul - local.get $11 - f64.load offset=24 - f64.add - local.get $18 - local.get $15 - f64.sub - local.get $10 - f64.add - f64.add - local.get $7 - local.get $9 - local.get $1 - f64.add - f64.mul - f64.add - local.get $15 - local.get $13 - f64.sub - local.get $0 - f64.add - f64.add - local.get $10 - local.get $16 - f64.mul - local.get $10 - f64.const 0.5000000000000007 - f64.mul - f64.const -0.6666666666666679 - f64.add - local.get $16 - local.get $10 - f64.const -0.6666666663487739 - f64.mul - f64.const 0.7999999995323976 - f64.add - local.get $16 - local.get $10 - f64.const 1.0000415263675542 - f64.mul - f64.const -1.142909628459501 - f64.add - f64.mul - f64.add - f64.mul - f64.add - f64.mul - f64.add - local.tee $0 - f64.add - local.tee $7 - f64.sub - local.get $0 - f64.add - global.set $~lib/util/math/log_tail - block $~lib/util/math/exp_inline|inlined.0 (result f64) - local.get $6 - i64.const -134217728 + i64.const 45 + i64.shr_u + i64.const 127 i64.and + i32.wrap_i64 + i32.const 5 + i32.shl + i32.const 10272 + i32.add + local.tee $11 + f64.load + local.tee $0 + f64.mul + f64.const 1 + f64.sub + local.set $13 + local.get $8 + i64.const 52 + i64.shr_s + f64.convert_i64_s + local.tee $17 + f64.const 0.6931471805598903 + f64.mul + local.get $11 + f64.load offset=16 + f64.add + local.tee $18 + local.get $13 + local.get $5 f64.reinterpret_i64 + local.get $1 + f64.sub + local.get $0 + f64.mul + local.tee $7 + f64.add + local.tee $10 + f64.add + local.set $15 + local.get $10 + local.get $10 + f64.const -0.5 + f64.mul + local.tee $9 + f64.mul + local.set $16 + local.get $15 + local.get $13 + local.get $13 + f64.const -0.5 + f64.mul + local.tee $1 + f64.mul local.tee $0 + f64.add + local.tee $13 + local.get $13 + local.get $17 + f64.const 5.497923018708371e-14 + f64.mul + local.get $11 + f64.load offset=24 + f64.add + local.get $18 + local.get $15 + f64.sub + local.get $10 + f64.add + f64.add local.get $7 + local.get $9 + local.get $1 + f64.add + f64.mul + f64.add + local.get $15 + local.get $13 + f64.sub + local.get $0 + f64.add + f64.add + local.get $10 + local.get $16 + f64.mul + local.get $10 + f64.const 0.5000000000000007 + f64.mul + f64.const -0.6666666666666679 + f64.add + local.get $16 + local.get $10 + f64.const -0.6666666663487739 + f64.mul + f64.const 0.7999999995323976 + f64.add + local.get $16 + local.get $10 + f64.const 1.0000415263675542 + f64.mul + f64.const -1.142909628459501 + f64.add + f64.mul + f64.add + f64.mul + f64.add + f64.mul + f64.add + local.tee $0 + f64.add + local.tee $1 + f64.sub + local.get $0 + f64.add + global.set $~lib/util/math/log_tail + local.get $6 + i64.const -134217728 + i64.and + f64.reinterpret_i64 + local.tee $7 + local.get $1 i64.reinterpret_f64 i64.const -134217728 i64.and f64.reinterpret_i64 - local.tee $1 + local.tee $0 f64.mul local.set $9 local.get $4 - local.get $0 + local.get $7 f64.sub - local.get $1 + local.get $0 f64.mul local.get $4 - local.get $7 local.get $1 + local.get $0 f64.sub global.get $~lib/util/math/log_tail f64.add diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index ba232bae61..a17d2b8ca1 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -27572,23 +27572,20 @@ (local $2 i64) (local $3 i32) (local $4 i64) - (local $5 i32) - (local $6 i32) + (local $5 i64) + (local $6 i64) (local $7 i32) - (local $8 i64) - (local $9 i64) + (local $8 i32) + (local $9 i32) (local $10 i64) (local $11 i64) (local $12 i64) (local $13 i64) (local $14 i64) - (local $15 i64) - (local $16 i64) - (local $17 i64) local.get $1 f64.const 0 f64.lt - local.tee $6 + local.tee $8 if (result f64) local.get $0 i32.const 45 @@ -27631,14 +27628,14 @@ i64.shl i64.const 1 i64.add - local.tee $4 + local.tee $5 i64.clz i32.wrap_i64 - local.tee $5 + local.tee $7 i32.sub - local.set $7 - local.get $4 + local.set $9 local.get $5 + local.get $7 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -27648,25 +27645,25 @@ i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $7 i64.extend_i32_s i64.shl i64.const 1 i64.sub local.get $3 - local.get $5 - i32.sub local.get $7 i32.sub + local.get $9 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $7 + local.get $9 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -27688,10 +27685,10 @@ local.tee $3 i32.const 3 i32.shl - local.tee $5 + local.tee $7 i32.sub global.set $~lib/util/number/_K - local.get $5 + local.get $7 i32.const 9864 i32.add i64.load @@ -27710,99 +27707,103 @@ local.tee $2 i64.const 4294967295 i64.and - local.set $9 + local.set $11 local.get $2 i64.const 32 i64.shr_u - local.tee $15 + local.tee $14 global.get $~lib/util/number/_frc_pow - local.tee $8 + local.tee $5 i64.const 4294967295 i64.and local.tee $2 local.tee $4 i64.mul local.get $4 - local.get $9 + local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $10 + local.set $12 + local.get $5 + i64.const 32 + i64.shr_u + local.tee $5 + local.set $13 global.get $~lib/util/number/_frc_plus local.tee $4 i64.const 4294967295 i64.and - local.set $11 + local.set $6 local.get $4 i64.const 32 i64.shr_u - local.tee $16 + local.tee $10 local.get $2 i64.mul local.get $2 - local.get $11 + local.get $6 i64.mul i64.const 32 i64.shr_u i64.add - local.set $12 + local.set $4 + local.get $5 + local.get $10 + i64.mul + local.get $4 + i64.const 32 + i64.shr_u + i64.add + local.get $5 + local.get $6 + i64.mul + local.get $4 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $4 global.get $~lib/util/number/_frc_minus - local.tee $4 + local.tee $6 i64.const 4294967295 i64.and - local.set $13 - local.get $4 + local.set $10 + local.get $6 i64.const 32 i64.shr_u - local.tee $17 + local.tee $6 local.get $2 i64.mul local.get $2 - local.get $13 + local.get $10 i64.mul i64.const 32 i64.shr_u i64.add - local.set $14 - local.get $6 + local.set $2 + local.get $8 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $15 - local.get $8 - i64.const 32 - i64.shr_u - local.tee $2 - local.tee $8 - i64.mul - local.get $10 - i64.const 32 - i64.shr_u - i64.add - local.get $8 - local.get $9 - i64.mul - local.get $10 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $16 + local.get $13 + local.get $14 i64.mul local.get $12 i64.const 32 i64.shr_u i64.add - local.get $2 local.get $11 + local.get $13 i64.mul local.get $12 i64.const 4294967295 @@ -27813,26 +27814,24 @@ i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.sub - local.tee $4 + local.get $4 global.get $~lib/util/number/_exp_pow - local.get $7 + local.get $9 i32.add i32.const -64 i32.sub local.get $4 - local.get $2 - local.get $17 + local.get $5 + local.get $6 i64.mul - local.get $14 + local.get $2 i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $13 + local.get $5 + local.get $10 i64.mul - local.get $14 + local.get $2 i64.const 4294967295 i64.and i64.add @@ -27844,13 +27843,13 @@ i64.const 1 i64.add i64.sub - local.get $6 + local.get $8 call $~lib/util/number/genDigits - local.get $6 + local.get $8 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $6 + local.get $8 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 4afd75a6d7..883d189a7b 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -2955,23 +2955,20 @@ (local $2 i64) (local $3 i32) (local $4 i64) - (local $5 i32) - (local $6 i32) + (local $5 i64) + (local $6 i64) (local $7 i32) - (local $8 i64) - (local $9 i64) + (local $8 i32) + (local $9 i32) (local $10 i64) (local $11 i64) (local $12 i64) (local $13 i64) (local $14 i64) - (local $15 i64) - (local $16 i64) - (local $17 i64) local.get $1 f64.const 0 f64.lt - local.tee $6 + local.tee $8 if (result f64) local.get $0 i32.const 45 @@ -3014,14 +3011,14 @@ i64.shl i64.const 1 i64.add - local.tee $4 + local.tee $5 i64.clz i32.wrap_i64 - local.tee $5 + local.tee $7 i32.sub - local.set $7 - local.get $4 + local.set $9 local.get $5 + local.get $7 i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_plus @@ -3031,25 +3028,25 @@ i64.eq i32.const 1 i32.add - local.tee $5 + local.tee $7 i64.extend_i32_s i64.shl i64.const 1 i64.sub local.get $3 - local.get $5 - i32.sub local.get $7 i32.sub + local.get $9 + i32.sub i64.extend_i32_s i64.shl global.set $~lib/util/number/_frc_minus - local.get $7 + local.get $9 global.set $~lib/util/number/_exp i32.const 348 i32.const -61 global.get $~lib/util/number/_exp - local.tee $7 + local.tee $9 i32.sub f64.convert_i32_s f64.const 0.30102999566398114 @@ -3071,10 +3068,10 @@ local.tee $3 i32.const 3 i32.shl - local.tee $5 + local.tee $7 i32.sub global.set $~lib/util/number/_K - local.get $5 + local.get $7 i32.const 1328 i32.add i64.load @@ -3093,99 +3090,103 @@ local.tee $2 i64.const 4294967295 i64.and - local.set $9 + local.set $11 local.get $2 i64.const 32 i64.shr_u - local.tee $15 + local.tee $14 global.get $~lib/util/number/_frc_pow - local.tee $8 + local.tee $5 i64.const 4294967295 i64.and local.tee $2 local.tee $4 i64.mul local.get $4 - local.get $9 + local.get $11 i64.mul i64.const 32 i64.shr_u i64.add - local.set $10 + local.set $12 + local.get $5 + i64.const 32 + i64.shr_u + local.tee $5 + local.set $13 global.get $~lib/util/number/_frc_plus local.tee $4 i64.const 4294967295 i64.and - local.set $11 + local.set $6 local.get $4 i64.const 32 i64.shr_u - local.tee $16 + local.tee $10 local.get $2 i64.mul local.get $2 - local.get $11 + local.get $6 i64.mul i64.const 32 i64.shr_u i64.add - local.set $12 + local.set $4 + local.get $5 + local.get $10 + i64.mul + local.get $4 + i64.const 32 + i64.shr_u + i64.add + local.get $5 + local.get $6 + i64.mul + local.get $4 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.set $4 global.get $~lib/util/number/_frc_minus - local.tee $4 + local.tee $6 i64.const 4294967295 i64.and - local.set $13 - local.get $4 + local.set $10 + local.get $6 i64.const 32 i64.shr_u - local.tee $17 + local.tee $6 local.get $2 i64.mul local.get $2 - local.get $13 + local.get $10 i64.mul i64.const 32 i64.shr_u i64.add - local.set $14 - local.get $6 + local.set $2 + local.get $8 i32.const 1 i32.shl local.get $0 i32.add local.get $0 - local.get $15 - local.get $8 - i64.const 32 - i64.shr_u - local.tee $2 - local.tee $8 - i64.mul - local.get $10 - i64.const 32 - i64.shr_u - i64.add - local.get $8 - local.get $9 - i64.mul - local.get $10 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $2 - local.get $16 + local.get $13 + local.get $14 i64.mul local.get $12 i64.const 32 i64.shr_u i64.add - local.get $2 local.get $11 + local.get $13 i64.mul local.get $12 i64.const 4294967295 @@ -3196,26 +3197,24 @@ i64.const 32 i64.shr_u i64.add - i64.const 1 - i64.sub - local.tee $4 + local.get $4 global.get $~lib/util/number/_exp_pow - local.get $7 + local.get $9 i32.add i32.const -64 i32.sub local.get $4 - local.get $2 - local.get $17 + local.get $5 + local.get $6 i64.mul - local.get $14 + local.get $2 i64.const 32 i64.shr_u i64.add - local.get $2 - local.get $13 + local.get $5 + local.get $10 i64.mul - local.get $14 + local.get $2 i64.const 4294967295 i64.and i64.add @@ -3227,13 +3226,13 @@ i64.const 1 i64.add i64.sub - local.get $6 + local.get $8 call $~lib/util/number/genDigits - local.get $6 + local.get $8 i32.sub global.get $~lib/util/number/_K call $~lib/util/number/prettify - local.get $6 + local.get $8 i32.add ) (func $~lib/util/number/dtoa_buffered (param $0 i32) (param $1 f64) (result i32) diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index 659118e014..1712d22a33 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -1364,14 +1364,14 @@ end i32.const 10 local.set $0 - loop $while-continue|04 + loop $while-continue|05 local.get $0 if local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|04 + br $while-continue|05 end end local.get $0 @@ -1387,24 +1387,24 @@ local.set $0 i32.const 10 local.set $2 - loop $while-continue|05 + loop $while-continue|06 local.get $0 if - loop $while-continue|16 + loop $while-continue|17 local.get $2 if local.get $2 i32.const 1 i32.sub local.set $2 - br $while-continue|16 + br $while-continue|17 end end local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|05 + br $while-continue|06 end end local.get $0 @@ -1476,7 +1476,7 @@ call $while/Ref#constructor local.tee $0 i32.store - loop $while-continue|07 + loop $while-continue|08 local.get $0 if local.get $2 @@ -1494,7 +1494,7 @@ local.tee $0 i32.store end - br $while-continue|07 + br $while-continue|08 end end local.get $2 @@ -1539,10 +1539,10 @@ call $while/Ref#constructor local.tee $0 i32.store - loop $while-continue|06 + loop $while-continue|07 call $while/Ref#constructor if - block $while-break|07 + block $while-break|08 local.get $2 i32.const 1 i32.add @@ -1552,9 +1552,9 @@ if i32.const 0 local.set $0 - br $while-break|07 + br $while-break|08 end - br $while-continue|06 + br $while-continue|07 end end end @@ -1584,47 +1584,47 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - loop $while-continue|08 + loop $while-continue|09 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 1 i32.lt_s - br_if $while-continue|08 + br_if $while-continue|09 end i32.const 0 local.set $0 - loop $while-continue|010 + loop $while-continue|011 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 1 i32.lt_s - br_if $while-continue|010 + br_if $while-continue|011 end global.get $~lib/rt/itcms/state i32.const 0 i32.gt_s if - loop $while-continue|012 + loop $while-continue|013 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|012 + br $while-continue|013 end end end call $~lib/rt/itcms/step drop - loop $while-continue|113 + loop $while-continue|114 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|113 + br $while-continue|114 end end global.get $~lib/rt/itcms/total From b4c67fb13a4b49bc7e7a953e9c5af074f14eee6c Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 21 Aug 2021 17:25:53 +0300 Subject: [PATCH 21/32] reorder --- src/module.ts | 2 +- tests/compiler/for.optimized.wat | 8 +++--- tests/compiler/while.optimized.wat | 40 +++++++++++++++--------------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/module.ts b/src/module.ts index 6ae9250d81..fefceabc24 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2286,8 +2286,8 @@ export class Module { if (optimizeLevel >= 3 || shrinkLevel >= 1) { passes.push("dce"); } - passes.push("remove-unused-names"); passes.push("remove-unused-brs"); + passes.push("remove-unused-names"); if (optimizeLevel >= 3 || shrinkLevel >= 2) { passes.push("inlining"); passes.push("precompute-propagate"); diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 3658b8dae1..3714775f39 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -1317,7 +1317,7 @@ end i32.const 0 local.set $0 - loop $for-loop|09 + loop $for-loop|08 local.get $0 i32.const 10 i32.lt_s @@ -1354,7 +1354,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|09 + br $for-loop|08 end end local.get $0 @@ -1441,7 +1441,7 @@ call $for/Ref#constructor local.tee $0 i32.store - loop $for-loop|010 + loop $for-loop|09 local.get $0 if local.get $1 @@ -1459,7 +1459,7 @@ local.tee $0 i32.store end - br $for-loop|010 + br $for-loop|09 end end local.get $1 diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index 1712d22a33..659118e014 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -1364,14 +1364,14 @@ end i32.const 10 local.set $0 - loop $while-continue|05 + loop $while-continue|04 local.get $0 if local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|05 + br $while-continue|04 end end local.get $0 @@ -1387,24 +1387,24 @@ local.set $0 i32.const 10 local.set $2 - loop $while-continue|06 + loop $while-continue|05 local.get $0 if - loop $while-continue|17 + loop $while-continue|16 local.get $2 if local.get $2 i32.const 1 i32.sub local.set $2 - br $while-continue|17 + br $while-continue|16 end end local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|06 + br $while-continue|05 end end local.get $0 @@ -1476,7 +1476,7 @@ call $while/Ref#constructor local.tee $0 i32.store - loop $while-continue|08 + loop $while-continue|07 local.get $0 if local.get $2 @@ -1494,7 +1494,7 @@ local.tee $0 i32.store end - br $while-continue|08 + br $while-continue|07 end end local.get $2 @@ -1539,10 +1539,10 @@ call $while/Ref#constructor local.tee $0 i32.store - loop $while-continue|07 + loop $while-continue|06 call $while/Ref#constructor if - block $while-break|08 + block $while-break|07 local.get $2 i32.const 1 i32.add @@ -1552,9 +1552,9 @@ if i32.const 0 local.set $0 - br $while-break|08 + br $while-break|07 end - br $while-continue|07 + br $while-continue|06 end end end @@ -1584,47 +1584,47 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - loop $while-continue|09 + loop $while-continue|08 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 1 i32.lt_s - br_if $while-continue|09 + br_if $while-continue|08 end i32.const 0 local.set $0 - loop $while-continue|011 + loop $while-continue|010 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 1 i32.lt_s - br_if $while-continue|011 + br_if $while-continue|010 end global.get $~lib/rt/itcms/state i32.const 0 i32.gt_s if - loop $while-continue|013 + loop $while-continue|012 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|013 + br $while-continue|012 end end end call $~lib/rt/itcms/step drop - loop $while-continue|114 + loop $while-continue|113 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|114 + br $while-continue|113 end end global.get $~lib/rt/itcms/total From 3600b920c9d5f5b2df408a4463bcd99be963b803 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 21 Aug 2021 17:49:44 +0300 Subject: [PATCH 22/32] simplify --- src/module.ts | 5 ++--- tests/compiler/std/math.optimized.wat | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/module.ts b/src/module.ts index fefceabc24..77b2461cf7 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2307,11 +2307,10 @@ export class Module { passes.push("remove-unused-brs"); passes.push("coalesce-locals"); passes.push("simplify-locals"); - passes.push("vacuum"); - - passes.push("reorder-locals"); passes.push("coalesce-locals"); passes.push("reorder-locals"); + passes.push("vacuum"); + if (optimizeLevel >= 3 || shrinkLevel >= 1) { passes.push("merge-locals"); } diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 7538432978..6e43ecb881 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1597,7 +1597,7 @@ else f32.const 0 end - local.set $5 + local.set $6 local.get $2 i32.const 8388607 i32.and @@ -1616,10 +1616,10 @@ local.tee $0 local.get $0 f32.mul - local.tee $6 - local.get $6 + local.tee $4 + local.get $4 f32.mul - local.set $4 + local.set $5 local.get $0 local.get $1 f32.const 0.5 @@ -1627,15 +1627,15 @@ local.get $1 f32.mul local.tee $0 - local.get $6 local.get $4 + local.get $5 f32.const 0.2849878668785095 f32.mul f32.const 0.6666666269302368 f32.add f32.mul - local.get $4 - local.get $4 + local.get $5 + local.get $5 f32.const 0.24279078841209412 f32.mul f32.const 0.40000972151756287 @@ -1649,7 +1649,7 @@ local.tee $4 f32.const 9.05800061445916e-06 f32.mul - local.get $5 + local.get $6 f32.add f32.add local.get $0 @@ -11629,14 +11629,14 @@ local.get $1 f64.const 0.5 f64.mul - local.tee $9 - f64.sub local.tee $10 - f64.const 1 - local.get $10 f64.sub + local.tee $9 + f64.const 1 local.get $9 f64.sub + local.get $10 + f64.sub local.get $1 local.get $1 local.get $1 From ed131d8623cf0efb40c6ce806f02f535f7db6848 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sun, 22 Aug 2021 13:26:11 +0300 Subject: [PATCH 23/32] remove "remove-unused-names" --- src/module.ts | 1 - tests/compiler/std/math.optimized.wat | 18 +++++++++--------- tests/compiler/while.optimized.wat | 4 +--- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/module.ts b/src/module.ts index 77b2461cf7..c966666b96 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2304,7 +2304,6 @@ export class Module { passes.push("local-cse"); } passes.push("reorder-locals"); - passes.push("remove-unused-brs"); passes.push("coalesce-locals"); passes.push("simplify-locals"); passes.push("coalesce-locals"); diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 6e43ecb881..29fc606a72 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1416,17 +1416,17 @@ local.get $0 local.tee $3 i64.reinterpret_f64 - local.set $4 - local.get $3 - local.get $3 - f64.sub - f64.const 0 - f64.div - local.get $4 + local.tee $4 i64.const 4607182418800017408 i64.lt_s - br_if $__inlined_func$~lib/math/NativeMath.acosh - drop + if + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.div + br $__inlined_func$~lib/math/NativeMath.acosh + end local.get $4 i64.const 52 i64.shr_u diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index 659118e014..995f0147ed 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -1345,13 +1345,11 @@ i32.const 1 i32.add local.tee $0 - local.set $1 - local.get $0 i32.const 10 i32.ne br_if $while-continue|03 end - local.get $1 + local.get $0 i32.const 10 i32.ne if From a4f2b511e4012167769d6e0c1d5248d3d4be6eee Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sun, 22 Aug 2021 13:59:34 +0300 Subject: [PATCH 24/32] better? --- src/module.ts | 3 +- tests/compiler/assert-nonnull.optimized.wat | 116 +- tests/compiler/call-super.optimized.wat | 847 +- tests/compiler/class-implements.optimized.wat | 84 +- .../class-overloading-cast.optimized.wat | 164 +- .../compiler/class-overloading.optimized.wat | 419 +- tests/compiler/class.optimized.wat | 158 +- tests/compiler/comma.optimized.wat | 30 +- tests/compiler/constructor.optimized.wat | 103 +- tests/compiler/do.optimized.wat | 540 +- .../empty-exportruntime.optimized.wat | 36 +- tests/compiler/empty-new.optimized.wat | 31 +- tests/compiler/exports.optimized.wat | 107 +- .../exportstar-rereexport.optimized.wat | 267 +- .../extends-baseaggregate.optimized.wat | 733 +- .../compiler/extends-recursive.optimized.wat | 110 +- tests/compiler/features/simd.optimized.wat | 151 +- .../field-initialization.optimized.wat | 311 +- tests/compiler/for.optimized.wat | 527 +- tests/compiler/function-call.optimized.wat | 31 +- .../function-expression.optimized.wat | 810 +- tests/compiler/function-types.optimized.wat | 11 +- tests/compiler/getter-call.optimized.wat | 503 +- tests/compiler/heap.optimized.wat | 16 +- .../implicit-getter-setter.optimized.wat | 117 +- tests/compiler/infer-array.optimized.wat | 199 +- tests/compiler/infer-generic.optimized.wat | 587 +- tests/compiler/inlining.optimized.wat | 370 +- tests/compiler/instanceof-class.optimized.wat | 169 +- tests/compiler/issues/1095.optimized.wat | 567 +- tests/compiler/issues/1225.optimized.wat | 41 +- tests/compiler/issues/1699.optimized.wat | 746 +- tests/compiler/logical.optimized.wat | 31 +- tests/compiler/loop-flow.optimized.wat | 36 +- tests/compiler/managed-cast.optimized.wat | 148 +- tests/compiler/memmove.optimized.wat | 251 +- tests/compiler/new.optimized.wat | 75 +- tests/compiler/number.optimized.wat | 413 +- tests/compiler/object-literal.optimized.wat | 924 +- .../optional-typeparameters.optimized.wat | 89 +- tests/compiler/reexport.optimized.wat | 99 +- tests/compiler/rereexport.optimized.wat | 39 +- tests/compiler/resolve-access.optimized.wat | 676 +- tests/compiler/resolve-binary.optimized.wat | 280 +- .../resolve-elementaccess.optimized.wat | 257 +- .../resolve-function-expression.optimized.wat | 289 +- tests/compiler/resolve-nested.optimized.wat | 91 +- tests/compiler/resolve-new.optimized.wat | 31 +- .../resolve-propertyaccess.optimized.wat | 101 +- tests/compiler/resolve-ternary.optimized.wat | 350 +- tests/compiler/resolve-unary.optimized.wat | 206 +- tests/compiler/rt/finalize.optimized.wat | 31 +- tests/compiler/rt/instanceof.optimized.wat | 75 +- .../runtime-incremental-export.optimized.wat | 36 +- .../rt/runtime-minimal-export.optimized.wat | 75 +- tests/compiler/std-wasi/console.optimized.wat | 1932 +- tests/compiler/std-wasi/crypto.optimized.wat | 531 +- tests/compiler/std-wasi/process.optimized.wat | 395 +- tests/compiler/std/array-access.optimized.wat | 43 +- .../compiler/std/array-literal.optimized.wat | 41 +- tests/compiler/std/array.optimized.wat | 10125 ++--- tests/compiler/std/arraybuffer.optimized.wat | 247 +- tests/compiler/std/dataview.optimized.wat | 275 +- tests/compiler/std/date.optimized.wat | 1217 +- tests/compiler/std/map.optimized.wat | 13278 ++++--- tests/compiler/std/math.optimized.wat | 2783 +- tests/compiler/std/mod.optimized.wat | 278 +- tests/compiler/std/new.optimized.wat | 63 +- .../std/operator-overloading.optimized.wat | 257 +- tests/compiler/std/set.optimized.wat | 9138 ++--- tests/compiler/std/static-array.optimized.wat | 43 +- tests/compiler/std/staticarray.optimized.wat | 1247 +- .../std/string-casemapping.optimized.wat | 1266 +- .../std/string-encoding.optimized.wat | 960 +- tests/compiler/std/string.optimized.wat | 1807 +- tests/compiler/std/symbol.optimized.wat | 691 +- tests/compiler/std/typedarray.optimized.wat | 32964 ++++++++-------- tests/compiler/std/uri.optimized.wat | 91 +- tests/compiler/super-inline.optimized.wat | 83 +- tests/compiler/templateliteral.optimized.wat | 846 +- tests/compiler/throw.optimized.wat | 264 +- tests/compiler/typeof.optimized.wat | 31 +- tests/compiler/wasi/trace.optimized.wat | 305 +- tests/compiler/while.optimized.wat | 639 +- 84 files changed, 47619 insertions(+), 47728 deletions(-) diff --git a/src/module.ts b/src/module.ts index c966666b96..a800440878 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2273,9 +2273,10 @@ export class Module { } if (optimizeLevel >= 3) { passes.push("simplify-locals-nostructure"); - passes.push("flatten"); passes.push("vacuum"); + passes.push("flatten"); passes.push("simplify-locals-notee-nostructure"); + passes.push("vacuum"); passes.push("licm"); passes.push("merge-locals"); passes.push("reorder-locals"); diff --git a/tests/compiler/assert-nonnull.optimized.wat b/tests/compiler/assert-nonnull.optimized.wat index 7974350127..2a632a59f7 100644 --- a/tests/compiler/assert-nonnull.optimized.wat +++ b/tests/compiler/assert-nonnull.optimized.wat @@ -146,11 +146,11 @@ ) (func $export:assert-nonnull/testProp (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s @@ -206,11 +206,11 @@ ) (func $export:assert-nonnull/testArr (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s @@ -306,11 +306,11 @@ ) (func $export:assert-nonnull/testElem (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s @@ -366,21 +366,9 @@ ) (func $export:assert-nonnull/testAll (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 1404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -389,9 +377,21 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i64.const 0 - i64.store - block $__inlined_func$assert-nonnull/testAll + local.get $0 + i32.store + block $__inlined_func$assert-nonnull/testAll (result i32) + local.get $1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1404 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store block $folding-inner0 local.get $0 i32.eqz @@ -419,6 +419,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 br $__inlined_func$assert-nonnull/testAll end i32.const 1056 @@ -432,7 +433,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 17808 @@ -444,21 +444,9 @@ ) (func $export:assert-nonnull/testAll2 (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 1404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -467,9 +455,21 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - i64.const 0 - i64.store - block $__inlined_func$assert-nonnull/testAll2 + local.get $0 + i32.store + block $__inlined_func$assert-nonnull/testAll2 (result i32) + local.get $1 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1404 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store block $folding-inner0 local.get $0 i32.eqz @@ -497,6 +497,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 br $__inlined_func$assert-nonnull/testAll2 end i32.const 1056 @@ -510,7 +511,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 17808 @@ -549,11 +549,11 @@ ) (func $export:assert-nonnull/testFn2 (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s @@ -609,11 +609,11 @@ ) (func $export:assert-nonnull/testRet (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s @@ -698,11 +698,11 @@ ) (func $export:assert-nonnull/testObjRet (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index c1a35f7016..72456d2d0c 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -120,6 +120,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -127,10 +128,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17980 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -144,7 +145,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -169,8 +170,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -178,10 +180,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1488 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1296 i32.const 1360 @@ -190,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -205,16 +208,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -222,11 +225,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1496,8 +1499,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -1799,11 +1802,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -1815,7 +1818,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1837,7 +1840,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1935,437 +1938,435 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 5 + i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer + end + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 38 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $1 + i32.const 1056 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if i32.const 0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $0 + i32.const 1056 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 8 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 1 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 56 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 + i32.const 1056 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 i32.const 8 - i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer + end + local.get $0 + i32.const 1 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 85 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $1 + i32.const 1056 + i32.const 56 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if i32.const 0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - local.tee $0 + i32.const 1056 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 11 + i32.const 1056 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 10 call $~lib/rt/itcms/__new local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer + end + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 + i32.const 1056 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 18000 i32.const 18048 diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index 3bb34d32c7..f5d697f39d 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -142,6 +142,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -149,10 +150,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17948 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -166,7 +167,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -191,8 +192,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -200,10 +202,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1504 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -212,7 +215,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1508 @@ -227,16 +230,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -244,11 +247,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1228,17 +1231,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1251,16 +1254,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1268,15 +1271,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1303,12 +1306,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1318,7 +1321,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1327,19 +1330,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1365,26 +1368,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1542,12 +1545,11 @@ ) (func $class-implements/C#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1564 i32.lt_s diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index 2a0569c480..6634bbe2fe 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -156,6 +156,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -163,10 +164,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18084 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -180,7 +181,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -205,8 +206,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -214,10 +216,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1616 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -226,7 +229,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1620 @@ -241,16 +244,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -258,11 +261,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1242,17 +1245,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1265,16 +1268,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1282,15 +1285,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1317,12 +1320,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1332,7 +1335,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1341,19 +1344,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1379,26 +1382,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1589,20 +1592,21 @@ (func $start:class-overloading-cast (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer + (local $2 i32) block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1700 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 memory.size @@ -1637,7 +1641,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1646,24 +1650,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $class-overloading-cast/A#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 global.set $class-overloading-cast/v global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1674,24 +1678,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $class-overloading-cast/A#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 global.set $class-overloading-cast/v2 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1702,13 +1706,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 6 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1722,45 +1726,45 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 global.set $class-overloading-cast/v3 global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/v - local.tee $0 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) block $default block $case1 - local.get $0 + local.get $1 i32.const 8 i32.sub i32.load - local.tee $0 + local.tee $1 i32.const 3 i32.ne if - local.get $0 + local.get $1 i32.const 5 i32.eq br_if $case1 @@ -1774,12 +1778,12 @@ end i32.const 1456 end - local.tee $0 + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1488 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1854,13 +1858,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 8 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1874,33 +1878,34 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 9 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 global.set $class-overloading-cast/c global.get $~lib/memory/__stack_pointer local.tee $0 + local.tee $2 global.get $class-overloading-cast/c local.tee $1 i32.store offset=8 - local.get $0 + local.get $2 i32.const 1600 i32.store offset=12 local.get $1 @@ -1928,10 +1933,11 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 + local.tee $2 global.get $class-overloading-cast/c local.tee $1 i32.store offset=8 - local.get $0 + local.get $2 i32.const 1600 i32.store offset=12 local.get $1 diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index 80ec4e221b..435966d3b4 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -180,6 +180,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -187,10 +188,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18316 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -204,7 +205,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -229,8 +230,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -238,10 +240,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1792 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1280 i32.const 1344 @@ -250,7 +253,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1796 @@ -265,16 +268,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -282,11 +285,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1266,17 +1269,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1289,16 +1292,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1306,15 +1309,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1341,12 +1344,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1356,7 +1359,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1365,19 +1368,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1403,26 +1406,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1709,11 +1712,11 @@ (func $start:class-overloading (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s @@ -1816,14 +1819,14 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -1870,14 +1873,14 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -1924,14 +1927,14 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -1999,15 +2002,15 @@ i32.const 1056 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $0 + local.get $1 i32.const 1616 i32.store - local.get $0 + local.get $1 i32.const 1616 i32.store offset=4 i32.const 1616 @@ -2025,15 +2028,15 @@ i32.const 1056 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $0 + local.get $1 i32.const 1616 i32.store - local.get $0 + local.get $1 i32.const 1616 i32.store offset=4 i32.const 1616 @@ -2049,15 +2052,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $0 + local.get $1 i32.const 1616 i32.store - local.get $0 + local.get $1 i32.const 1616 i32.store offset=4 i32.const 1616 @@ -2108,43 +2111,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual21 - block $default22 - block $case223 - block $case124 - block $case025 + block $__inlined_func$class-overloading/A#b@virtual22 + block $default23 + block $case224 + block $case125 + block $case026 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case025 $case124 $case025 $case025 $case223 $default22 + br_table $case026 $case125 $case026 $case026 $case224 $default23 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual21 + br $__inlined_func$class-overloading/A#b@virtual22 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual21 + br $__inlined_func$class-overloading/A#b@virtual22 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual21 + br $__inlined_func$class-overloading/A#b@virtual22 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2162,43 +2165,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@virtual30 - block $default31 - block $case232 - block $case133 - block $case034 + block $__inlined_func$class-overloading/A#get:c@virtual31 + block $default32 + block $case233 + block $case134 + block $case035 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case034 $case133 $case034 $case034 $case232 $default31 + br_table $case035 $case134 $case035 $case035 $case233 $default32 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual30 + br $__inlined_func$class-overloading/A#get:c@virtual31 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual30 + br $__inlined_func$class-overloading/A#get:c@virtual31 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual30 + br $__inlined_func$class-overloading/A#get:c@virtual31 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2214,43 +2217,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual39 - block $default40 - block $case241 - block $case142 - block $case043 + block $__inlined_func$class-overloading/A#b@virtual40 + block $default41 + block $case242 + block $case143 + block $case044 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case043 $case142 $case043 $case043 $case241 $default40 + br_table $case044 $case143 $case044 $case044 $case242 $default41 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual39 + br $__inlined_func$class-overloading/A#b@virtual40 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual39 + br $__inlined_func$class-overloading/A#b@virtual40 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual39 + br $__inlined_func$class-overloading/A#b@virtual40 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2298,43 +2301,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual48 - block $default49 - block $case250 - block $case151 - block $case052 + block $__inlined_func$class-overloading/A#b@virtual49 + block $default50 + block $case251 + block $case152 + block $case053 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case052 $case151 $case052 $case052 $case250 $default49 + br_table $case053 $case152 $case053 $case053 $case251 $default50 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual48 + br $__inlined_func$class-overloading/A#b@virtual49 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual48 + br $__inlined_func$class-overloading/A#b@virtual49 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual48 + br $__inlined_func$class-overloading/A#b@virtual49 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2352,43 +2355,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@virtual57 - block $default58 - block $case259 - block $case160 - block $case061 + block $__inlined_func$class-overloading/A#get:c@virtual58 + block $default59 + block $case260 + block $case161 + block $case062 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case061 $case160 $case061 $case061 $case259 $default58 + br_table $case062 $case161 $case062 $case062 $case260 $default59 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual57 + br $__inlined_func$class-overloading/A#get:c@virtual58 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual57 + br $__inlined_func$class-overloading/A#get:c@virtual58 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual57 + br $__inlined_func$class-overloading/A#get:c@virtual58 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2404,43 +2407,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual66 - block $default67 - block $case268 - block $case169 - block $case070 + block $__inlined_func$class-overloading/A#b@virtual67 + block $default68 + block $case269 + block $case170 + block $case071 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case070 $case169 $case070 $case070 $case268 $default67 + br_table $case071 $case170 $case071 $case071 $case269 $default68 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual66 + br $__inlined_func$class-overloading/A#b@virtual67 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual66 + br $__inlined_func$class-overloading/A#b@virtual67 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual66 + br $__inlined_func$class-overloading/A#b@virtual67 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1520 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2513,43 +2516,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual75 - block $default76 - block $case277 - block $case178 - block $case079 + block $__inlined_func$class-overloading/A#b@virtual77 + block $default78 + block $case279 + block $case180 + block $case081 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case079 $case178 $case079 $case079 $case277 $default76 + br_table $case081 $case180 $case081 $case081 $case279 $default78 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual75 + br $__inlined_func$class-overloading/A#b@virtual77 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual75 + br $__inlined_func$class-overloading/A#b@virtual77 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual75 + br $__inlined_func$class-overloading/A#b@virtual77 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1648 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -2567,43 +2570,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@virtual84 - block $default85 - block $case286 - block $case187 - block $case088 + block $__inlined_func$class-overloading/A#get:c@virtual86 + block $default87 + block $case288 + block $case189 + block $case090 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case088 $case187 $case088 $case088 $case286 $default85 + br_table $case090 $case189 $case090 $case090 $case288 $default87 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual84 + br $__inlined_func$class-overloading/A#get:c@virtual86 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual84 + br $__inlined_func$class-overloading/A#get:c@virtual86 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual84 + br $__inlined_func$class-overloading/A#get:c@virtual86 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1648 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -2621,43 +2624,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual93 - block $default94 - block $case295 - block $case196 - block $case097 + block $__inlined_func$class-overloading/A#b@virtual95 + block $default96 + block $case297 + block $case198 + block $case099 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case097 $case196 $case097 $case097 $case295 $default94 + br_table $case099 $case198 $case099 $case099 $case297 $default96 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual93 + br $__inlined_func$class-overloading/A#b@virtual95 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual93 + br $__inlined_func$class-overloading/A#b@virtual95 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual93 + br $__inlined_func$class-overloading/A#b@virtual95 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1648 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -2699,8 +2702,8 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/IA#foo@virtual - block $default102 - block $case1103 + block $default105 + block $case1106 local.get $0 i32.const 8 i32.sub @@ -2712,8 +2715,8 @@ local.get $0 i32.const 12 i32.eq - br_if $case1103 - br $default102 + br_if $case1106 + br $default105 end i32.const 1680 global.set $class-overloading/which @@ -2726,14 +2729,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1680 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1680 call $~lib/string/String.__eq i32.eqz @@ -2774,9 +2777,9 @@ global.get $class-overloading/ic local.tee $0 i32.store - block $__inlined_func$class-overloading/IA#foo@virtual105 - block $default106 - block $case1107 + block $__inlined_func$class-overloading/IA#foo@virtual109 + block $default110 + block $case1111 local.get $0 i32.const 8 i32.sub @@ -2788,28 +2791,28 @@ local.get $0 i32.const 12 i32.eq - br_if $case1107 - br $default106 + br_if $case1111 + br $default110 end i32.const 1680 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual105 + br $__inlined_func$class-overloading/IA#foo@virtual109 end i32.const 1712 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual105 + br $__inlined_func$class-overloading/IA#foo@virtual109 end unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $class-overloading/which local.tee $1 + global.get $class-overloading/which + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1712 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1712 call $~lib/string/String.__eq i32.eqz @@ -2875,7 +2878,7 @@ global.get $class-overloading/b2 local.tee $0 i32.store - block $__inlined_func$class-overloading/A2#foo@virtual + block $__inlined_func$class-overloading/A2#foo@virtual (result i32) local.get $0 i32.const 8 i32.sub @@ -2964,6 +2967,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + i32.const 3 br $__inlined_func$class-overloading/A2#foo@virtual end i32.const 1744 @@ -2973,6 +2977,16 @@ call $~lib/builtins/abort unreachable end + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1552 + i32.const 209 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -2988,12 +3002,11 @@ ) (func $class-overloading/B#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index 6b28ef8193..2b77481469 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -113,6 +113,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -120,10 +121,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17972 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -137,7 +138,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -162,19 +163,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1536 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -183,7 +186,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1540 @@ -198,28 +201,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1482,7 +1485,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1510,11 +1513,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1533,9 +1536,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1551,7 +1554,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1566,18 +1569,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1588,7 +1591,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1602,13 +1605,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1621,89 +1627,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1711,7 +1717,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1778,24 +1784,24 @@ (local $0 i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1834,19 +1840,19 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 32 call $~lib/memory/memory.fill local.get $0 - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 call $~lib/rt/itcms/__link local.get $0 - local.get $1 + local.get $2 i32.store offset=4 local.get $0 i32.const 32 @@ -1858,10 +1864,10 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.get $0 i32.store - local.get $2 + local.get $1 local.get $0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/comma.optimized.wat b/tests/compiler/comma.optimized.wat index 30a6004906..23ce049407 100644 --- a/tests/compiler/comma.optimized.wat +++ b/tests/compiler/comma.optimized.wat @@ -75,12 +75,36 @@ global.set $comma/a i32.const 1 global.set $comma/b - i32.const 2 + global.get $comma/a + i32.const 1 + i32.add global.set $comma/a - i32.const 2 + global.get $comma/a global.set $comma/b - i32.const 2 + global.get $comma/b global.set $comma/a + global.get $comma/a + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $comma/b + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 19 + i32.const 1 + call $~lib/builtins/abort + unreachable + end loop $for-loop|0 global.get $comma/a local.get $0 diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index 8681487ce4..a306bb39a8 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -197,6 +197,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -204,10 +205,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17988 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -221,7 +222,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -246,8 +247,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -255,10 +257,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1488 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -267,7 +270,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -282,16 +285,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -299,11 +302,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1573,8 +1576,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -1782,43 +1785,43 @@ ) (func $start:constructor (local $0 i32) - memory.size - i32.const 16 - i32.shl - i32.const 17988 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + memory.size + i32.const 16 + i32.shl + i32.const 17988 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1604 i32.lt_s diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index 769ebdd80b..2998791caa 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -120,6 +120,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -127,10 +128,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17892 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -144,7 +145,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -169,8 +170,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -178,10 +180,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1472 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1280 i32.const 1344 @@ -190,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1476 @@ -205,16 +208,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -222,11 +225,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1154,307 +1157,306 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - i32.const 10 - local.set $0 - loop $do-continue|0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - br_if $do-continue|0 - end - local.get $0 - if - i32.const 0 - i32.const 1056 + block $folding-inner0 i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - loop $do-continue|00 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub local.set $0 + loop $do-continue|0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + br_if $do-continue|0 + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - br_if $do-continue|00 - end - local.get $0 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $2 - i32.const 10 - local.set $0 - loop $do-continue|01 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $do-continue|00 + local.get $0 + local.tee $1 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + br_if $do-continue|00 + end local.get $0 - i32.const 1 - i32.sub + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $1 + i32.const 10 local.set $0 - local.get $3 - i32.const 1 - i32.add - local.set $3 - loop $do-continue|1 + loop $do-continue|01 + local.get $0 + i32.const 1 + i32.sub + local.set $0 local.get $2 i32.const 1 i32.add local.set $2 + loop $do-continue|1 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.tee $0 + br_if $do-continue|1 + end local.get $0 - i32.const 1 - i32.sub - local.tee $0 - br_if $do-continue|1 + if + i32.const 0 + i32.const 1056 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 40 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + br_if $do-continue|01 end local.get $0 if i32.const 0 i32.const 1056 - i32.const 39 - i32.const 5 + i32.const 42 + i32.const 3 call $~lib/builtins/abort unreachable end local.get $2 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 i32.const 9 i32.ne if i32.const 0 i32.const 1056 - i32.const 40 - i32.const 5 + i32.const 44 + i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - br_if $do-continue|01 - end - local.get $0 - if i32.const 0 - i32.const 1056 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $do-continue|02 + local.set $0 + loop $do-continue|02 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.ne + br_if $do-continue|02 + end local.get $0 - i32.const 1 - i32.add - local.tee $0 i32.const 10 i32.ne - br_if $do-continue|02 - end - local.get $0 - i32.const 10 - i32.ne - if + if + i32.const 0 + i32.const 1056 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1056 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $do-continue|03 + local.set $0 + loop $do-continue|03 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.ne + br_if $do-continue|03 + end local.get $0 - i32.const 1 - i32.add - local.tee $0 i32.const 10 i32.ne - br_if $do-continue|03 - end - local.get $0 - i32.const 10 - i32.ne - if + if + i32.const 0 + i32.const 1056 + i32.const 70 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1056 - i32.const 70 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $do-continue|04 + local.set $0 + loop $do-continue|04 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.ne + br_if $do-continue|04 + end local.get $0 - i32.const 1 - i32.add - local.tee $0 i32.const 10 i32.ne - br_if $do-continue|04 - end - local.get $0 - i32.const 10 - i32.ne - if + if + i32.const 0 + i32.const 1056 + i32.const 116 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1056 - i32.const 116 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - i32.const 0 - local.set $2 - loop $do-continue|05 + local.set $0 + i32.const 0 + local.set $1 + loop $do-continue|05 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.ne + if + loop $do-continue|17 + local.get $1 + i32.const 1 + i32.add + local.tee $1 + i32.const 10 + i32.rem_s + br_if $do-continue|17 + end + br $do-continue|05 + end + end local.get $0 - i32.const 1 - i32.add - local.tee $0 i32.const 10 i32.ne if - loop $do-continue|17 - local.get $2 - i32.const 1 - i32.add - local.tee $2 - i32.const 10 - i32.rem_s - br_if $do-continue|17 - end - br $do-continue|05 + i32.const 0 + i32.const 1056 + i32.const 134 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 134 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 90 - i32.ne - if + local.get $1 + i32.const 90 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 17892 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace i32.const 0 - i32.const 1056 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - memory.size - i32.const 16 - i32.shl - i32.const 17892 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1508 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 call $do/Ref#constructor i32.store - loop $do-continue|08 - local.get $2 + loop $do-continue|06 + local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $1 i32.const 10 i32.eq if @@ -1467,9 +1469,9 @@ i32.store end local.get $0 - br_if $do-continue|08 + br_if $do-continue|06 end - local.get $2 + local.get $1 i32.const 10 i32.ne if @@ -1504,15 +1506,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 call $do/Ref#constructor - local.tee $0 + local.tee $1 i32.store - loop $do-continue|06 - block $do-break|07 + loop $do-continue|08 + block $do-break|09 local.get $2 i32.const 1 i32.add @@ -1521,11 +1523,11 @@ i32.eq if i32.const 0 - local.set $0 - br $do-break|07 + local.set $1 + br $do-break|09 end call $do/Ref#constructor - br_if $do-continue|06 + br_if $do-continue|08 end end local.get $2 @@ -1539,7 +1541,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 if i32.const 0 i32.const 1056 @@ -1843,8 +1845,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 1fe41540de..4ebea25e78 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -168,19 +168,21 @@ local.get $0 call $~lib/rt/itcms/Object#unlink global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1568 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -189,7 +191,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1572 @@ -204,28 +206,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1514,8 +1516,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -1811,8 +1813,8 @@ i32.load offset=8 local.set $1 local.get $0 - global.get $~lib/rt/itcms/white local.get $2 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index 53bb82de6d..6c059cde77 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -116,6 +116,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -123,10 +124,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17852 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -140,7 +141,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -165,8 +166,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -174,10 +176,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1440 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -186,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -201,16 +204,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -218,11 +221,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1401,8 +1404,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index c891abccb7..d74685608f 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -170,6 +170,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -177,10 +178,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17868 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -194,7 +195,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -219,8 +220,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -228,10 +230,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1440 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -240,7 +243,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -255,16 +258,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -272,11 +275,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1256,17 +1259,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1279,16 +1282,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1296,15 +1299,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1331,12 +1334,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1346,7 +1349,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1355,19 +1358,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1393,26 +1396,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1427,34 +1430,34 @@ local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 4 i32.add - local.tee $0 + local.tee $1 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 ) (func $export/mul (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -1607,11 +1610,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:exports/Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s @@ -1701,11 +1704,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:exports/vehicles.Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index 98532485b9..04be352f01 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -171,6 +171,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -178,10 +179,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17956 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -195,7 +196,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -220,8 +221,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -229,10 +231,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1536 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1296 i32.const 1360 @@ -241,7 +244,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1540 @@ -256,16 +259,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -273,11 +276,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1240,134 +1243,132 @@ ) (func $~start (local $0 i32) - block $__inlined_func$start:exportstar-rereexport + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 17956 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + call $exports/Car#constructor + global.set $reexport/car + global.get $~lib/memory/__stack_pointer + global.get $reexport/car + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 2 + i32.ne + if i32.const 0 - i32.store - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + call $exports/Car#constructor + global.set $rereexport/car + global.get $~lib/memory/__stack_pointer + global.get $rereexport/car + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 2 + i32.ne + if i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 17956 - i32.sub + i32.const 1504 + i32.const 18 i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - call $exports/Car#constructor - global.set $reexport/car - global.get $~lib/memory/__stack_pointer - global.get $reexport/car - local.tee $0 - i32.store - local.get $0 - i32.load - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 40 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - call $exports/Car#constructor - global.set $rereexport/car - global.get $~lib/memory/__stack_pointer - global.get $rereexport/car - local.tee $0 - i32.store - local.get $0 - i32.load - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $exports/Car#constructor - global.set $rereexport/exportsNamespaceCar - global.get $~lib/memory/__stack_pointer - global.get $rereexport/exportsNamespaceCar - local.tee $0 - i32.store - local.get $0 - i32.load - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:exportstar-rereexport + call $~lib/builtins/abort + unreachable end - i32.const 17984 - i32.const 18032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + call $exports/Car#constructor + global.set $rereexport/exportsNamespaceCar + global.get $~lib/memory/__stack_pointer + global.get $rereexport/exportsNamespaceCar + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 17984 + i32.const 18032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $exports/Car#constructor (result i32) (local $0 i32) @@ -1586,8 +1587,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index 3c00c1f698..f60d9086f9 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -119,6 +119,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -126,10 +127,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18156 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -143,7 +144,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -168,19 +169,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1696 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1408 i32.const 1472 @@ -189,7 +192,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1700 @@ -204,28 +207,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1488,7 +1491,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1516,11 +1519,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1539,9 +1542,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1557,7 +1560,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1572,18 +1575,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1594,7 +1597,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1608,13 +1611,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1627,89 +1633,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1717,7 +1723,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2495,332 +2501,230 @@ i32.store8 end ) - (func $~lib/array/Array#push (param $0 i32) - (local $1 i32) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - i32.const 1180 - i32.load - local.tee $8 - i32.const 1 - i32.add - local.tee $7 - local.tee $5 - i32.const 1176 + local.get $0 + i32.const 20 + i32.sub + local.tee $2 i32.load - local.tee $10 - i32.const 2 - i32.shr_u - i32.gt_u + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u if + local.get $2 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $4 + local.get $1 + local.get $2 + i32.load offset=16 + local.tee $2 + local.get $1 + local.get $2 + i32.lt_u + select + local.set $5 + block $~lib/util/memory/memmove|inlined.0 + local.get $4 + local.tee $1 + local.get $0 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $1 + i32.sub local.get $5 - i32.const 268435455 - i32.gt_u + i32.sub + i32.const 0 + local.get $5 + i32.const 1 + i32.shl + i32.sub + i32.le_u if - i32.const 1616 - i32.const 1664 - i32.const 18 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - block $__inlined_func$~lib/rt/itcms/__renew - local.get $10 - i32.const 1 - i32.shl - local.tee $4 - i32.const 1073741820 - local.get $4 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - local.get $5 - i32.const 8 + local.get $1 + local.get $0 local.get $5 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $4 - local.get $2 - local.get $4 - i32.gt_u - select - local.tee $9 - local.tee $11 - i32.const 1168 - i32.load - local.tee $6 - local.tee $1 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.gt_u + if + local.get $0 + i32.const 7 i32.and - i32.const 16 - i32.sub - i32.le_u + local.get $1 + i32.const 7 + i32.and + i32.eq if - local.get $3 - local.get $11 - i32.store offset=16 - br $__inlined_func$~lib/rt/itcms/__renew - end - local.get $11 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $5 - local.set $4 - local.get $11 - local.get $3 - i32.load offset=16 - local.tee $2 - local.get $2 - local.get $11 - i32.gt_u - select - local.set $11 - block $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $4 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $4 - i32.sub - local.get $11 - i32.sub - i32.const 0 - local.get $11 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $4 - local.get $1 - local.get $11 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $1 - local.get $4 - i32.gt_u - if + loop $while-continue|0 local.get $1 i32.const 7 i32.and - local.get $4 - i32.const 7 - i32.and - i32.eq if - loop $while-continue|0 - local.get $4 - i32.const 7 - i32.and - if - local.get $11 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $11 - i32.const 1 - i32.sub - local.set $11 - local.get $4 - local.tee $3 - i32.const 1 - i32.add - local.set $4 - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $11 - i32.const 8 - i32.ge_u - if - local.get $4 - local.get $1 - i64.load - i64.store - local.get $11 - i32.const 8 - i32.sub - local.set $11 - local.get $4 - i32.const 8 - i32.add - local.set $4 - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|1 - end - end + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + br $while-continue|0 end - loop $while-continue|2 - local.get $11 - if - local.get $4 - local.tee $3 - i32.const 1 - i32.add - local.set $4 - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - local.get $11 - i32.const 1 - i32.sub - local.set $11 - br $while-continue|2 - end + end + loop $while-continue|1 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $1 + local.get $0 + i64.load + i64.store + local.get $5 + i32.const 8 + i32.sub + local.set $5 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 + br $while-continue|1 end - else + end + end + loop $while-continue|2 + local.get $5 + if local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + else + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $1 + local.get $5 + i32.add i32.const 7 i32.and - local.get $4 - i32.const 7 - i32.and - i32.eq if - loop $while-continue|3 - local.get $4 - local.get $11 - i32.add - i32.const 7 - i32.and - if - local.get $11 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.get $11 - i32.const 1 - i32.sub - local.tee $11 - i32.add - local.get $1 - local.get $11 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $11 - i32.const 8 - i32.ge_u - if - local.get $4 - local.get $11 - i32.const 8 - i32.sub - local.tee $11 - i32.add - local.get $1 - local.get $11 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 end - loop $while-continue|5 - local.get $11 - if - local.get $4 - local.get $11 - i32.const 1 - i32.sub - local.tee $11 - i32.add - local.get $1 - local.get $11 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end + end + loop $while-continue|4 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $5 + i32.const 8 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i64.load + i64.store + br $while-continue|4 end end end - local.get $5 - local.set $1 - end - local.get $1 - local.get $10 - i32.add - local.get $9 - local.get $10 - i32.sub - call $~lib/memory/memory.fill - local.get $1 - local.get $6 - i32.ne - if - i32.const 1168 - local.get $1 - i32.store - i32.const 1172 - local.get $1 - i32.store - i32.const 1168 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link + loop $while-continue|5 + local.get $5 + if + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end end - i32.const 1176 - local.get $9 - i32.store end - i32.const 1172 - i32.load - local.get $8 - i32.const 2 - i32.shl - i32.add - local.get $0 - i32.store - i32.const 1168 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - i32.const 1180 - local.get $7 - i32.store + local.get $4 ) (func $~lib/array/Array~visit (param $0 i32) (local $1 i32) @@ -2906,11 +2810,16 @@ (func $~start (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s @@ -3020,8 +2929,100 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + i32.const 1180 + i32.load + local.tee $4 + i32.const 1 + i32.add + local.tee $5 + local.tee $1 + i32.const 1176 + i32.load + local.tee $3 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $1 + i32.const 268435455 + i32.gt_u + if + i32.const 1616 + i32.const 1664 + i32.const 18 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1168 + i32.load + local.tee $6 + local.get $3 + i32.const 1 + i32.shl + local.tee $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + local.get $1 + i32.const 8 + local.get $1 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.tee $2 + call $~lib/rt/itcms/__renew + local.tee $1 + i32.add + local.get $2 + local.get $3 + i32.sub + call $~lib/memory/memory.fill + local.get $1 + local.get $6 + i32.ne + if + i32.const 1168 + local.get $1 + i32.store + i32.const 1172 + local.get $1 + i32.store + i32.const 1168 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + end + i32.const 1176 + local.get $2 + i32.store + end + i32.const 1172 + i32.load + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $0 + i32.store + i32.const 1168 local.get $0 - call $~lib/array/Array#push + i32.const 1 + call $~lib/rt/itcms/__link + i32.const 1180 + local.get $5 + i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index d9e47c1ab2..a3da8ce0cb 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -108,6 +108,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -115,10 +116,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17868 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -132,7 +133,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -157,19 +158,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1440 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -178,7 +181,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -193,28 +196,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1213,17 +1216,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1236,16 +1239,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1253,15 +1256,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1288,12 +1291,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1303,7 +1306,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1312,19 +1315,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1350,26 +1353,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1384,34 +1387,34 @@ local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 4 i32.add - local.tee $0 + local.tee $1 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 @@ -1592,12 +1595,11 @@ ) (func $export:extends-recursive/Child#constructor (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s diff --git a/tests/compiler/features/simd.optimized.wat b/tests/compiler/features/simd.optimized.wat index 6b1df4a9bf..50a48eb5a1 100644 --- a/tests/compiler/features/simd.optimized.wat +++ b/tests/compiler/features/simd.optimized.wat @@ -1,10 +1,9 @@ (module (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -741,19 +740,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -764,13 +756,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -778,32 +770,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $0 + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -819,16 +811,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -836,7 +828,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -844,10 +836,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -858,11 +850,11 @@ unreachable end end - local.get $1 + local.get $2 i32.load i32.const -4 i32.and - local.get $0 + local.get $1 i32.lt_u if i32.const 0 @@ -872,13 +864,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $2 + local.tee $3 i32.load local.set $2 - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -894,44 +887,44 @@ local.get $2 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 + local.get $3 local.get $2 i32.const 2 i32.and - local.get $0 + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $3 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 + local.get $3 local.get $2 i32.const -2 i32.and i32.store - local.get $1 + local.get $3 i32.const 4 i32.add - local.get $1 + local.get $3 i32.load i32.const -4 i32.and @@ -943,9 +936,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $3 ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -1000,16 +991,32 @@ ) (func $~start (local $0 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 64 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 local.get $0 v128.load offset=16 v128.store offset=32 local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i32.const 42 i32.store8 @@ -1029,8 +1036,16 @@ end local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i32.const 42 i32.store16 @@ -1050,8 +1065,16 @@ end local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i32.const 42 i32.store @@ -1071,8 +1094,16 @@ end local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i64.const 42 i64.store @@ -1092,8 +1123,16 @@ end local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i32.const 42 i32.store @@ -1113,8 +1152,16 @@ end local.get $0 call $~lib/rt/tlsf/__free + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/__alloc + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $0 i64.const 42 i64.store diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 698c7420d1..49c301ffba 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -126,6 +126,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -133,10 +134,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18380 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -150,7 +151,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -175,19 +176,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1792 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -196,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1796 @@ -211,28 +214,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1495,7 +1498,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1523,11 +1526,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1546,9 +1549,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1564,7 +1567,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1579,18 +1582,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1601,7 +1604,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1615,13 +1618,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1634,89 +1640,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1724,7 +1730,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1989,11 +1995,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1996 i32.lt_s @@ -2047,6 +2053,7 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace local.get $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2055,16 +2062,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 4 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.store global.get $~lib/memory/__stack_pointer @@ -2072,9 +2079,8 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 i32.store - local.get $1 + local.get $0 i32.load i32.const 1 i32.ne @@ -2143,20 +2149,21 @@ i32.const 4 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $0 i32.store + local.get $1 local.get $0 - local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.tee $0 i32.store local.get $0 i32.load @@ -2187,20 +2194,21 @@ i32.const 4 i32.const 6 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $0 i32.store + local.get $1 local.get $0 - local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.tee $0 i32.store local.get $0 i32.load @@ -2397,20 +2405,21 @@ i32.const 4 i32.const 11 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $0 i32.store + local.get $1 local.get $0 - local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.tee $0 i32.store local.get $0 i32.load @@ -2441,26 +2450,27 @@ i32.const 4 i32.const 12 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $0 i32.store + local.get $1 local.get $0 - local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.tee $0 i32.store local.get $0 i32.load @@ -2475,9 +2485,11 @@ end global.get $~lib/memory/__stack_pointer call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer + local.get $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2487,30 +2499,30 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 4 i32.const 13 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 local.get $1 + local.get $2 i32.store - local.get $0 local.get $1 + local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load local.get $1 + i32.load + local.get $0 i32.ne if i32.const 0 @@ -2580,20 +2592,21 @@ i32.const 4 i32.const 15 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $0 i32.store + local.get $1 local.get $0 - local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.tee $0 i32.store offset=4 local.get $0 i32.load @@ -2624,26 +2637,27 @@ i32.const 4 i32.const 16 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $0 i32.store + local.get $1 local.get $0 - local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.tee $0 i32.store offset=4 local.get $0 i32.load @@ -2741,7 +2755,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 @@ -2755,7 +2769,7 @@ local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 local.get $0 i32.store local.get $0 @@ -2786,7 +2800,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 @@ -2800,7 +2814,7 @@ local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 local.get $0 i32.store offset=16 local.get $0 @@ -2833,7 +2847,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 @@ -2847,7 +2861,7 @@ local.get $0 i32.const 0 i32.store - local.get $1 + local.get $2 local.get $0 i32.store offset=24 local.get $0 @@ -2861,12 +2875,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.load offset=4 local.tee $0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 1648 i32.store offset=28 local.get $0 @@ -2882,7 +2896,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 @@ -2896,7 +2910,7 @@ local.get $0 i32.const 1680 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 local.get $0 i32.store offset=36 local.get $0 @@ -2912,12 +2926,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.load offset=4 local.tee $0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 1680 i32.store offset=28 local.get $0 @@ -2933,7 +2947,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 call $field-initialization/SomeOtherObject#constructor local.tee $0 i32.store offset=36 @@ -2952,7 +2966,7 @@ local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 local.get $0 i32.store offset=24 local.get $0 @@ -2968,9 +2982,9 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -2983,12 +2997,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.load offset=8 local.tee $0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 1712 i32.store offset=28 local.get $0 @@ -3004,7 +3018,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 call $field-initialization/SomeOtherObject#constructor local.tee $0 i32.store offset=16 @@ -3023,7 +3037,7 @@ local.get $0 i32.const 1776 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 local.get $0 i32.store local.get $0 @@ -3060,12 +3074,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.load offset=8 local.tee $0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 1776 i32.store offset=28 local.get $0 @@ -3098,26 +3112,27 @@ i32.const 4 i32.const 22 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $0 i32.store + local.get $1 local.get $0 - local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.tee $0 i32.store local.get $0 i32.load @@ -3131,7 +3146,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 + local.get $2 i32.const 4 i32.const 23 call $~lib/rt/itcms/__new @@ -3144,7 +3160,6 @@ local.get $0 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $0 i32.store offset=24 local.get $0 @@ -3159,7 +3174,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 + local.get $2 i32.const 4 i32.const 24 call $~lib/rt/itcms/__new @@ -3178,7 +3194,6 @@ local.get $0 local.get $2 call $~lib/rt/itcms/__link - local.get $1 local.get $0 i32.store local.get $0 diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 3714775f39..6e268a43f2 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -120,6 +120,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -127,10 +128,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17892 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -144,7 +145,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -169,8 +170,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -178,10 +180,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1472 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1280 i32.const 1344 @@ -190,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1476 @@ -205,16 +208,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -222,11 +225,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1154,281 +1157,281 @@ (local $0 i32) (local $1 i32) (local $2 i32) - loop $for-loop|0 + block $folding-inner0 + loop $for-loop|0 + local.get $0 + i32.const 10 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end local.get $0 i32.const 10 - i32.lt_s + i32.ne if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1056 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - local.get $0 - i32.const 10 - i32.ne - if i32.const 0 - i32.const 1056 - i32.const 8 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|00 + local.set $0 + loop $for-loop|00 + local.get $0 + i32.const 10 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end + end local.get $0 i32.const 10 - i32.lt_s + i32.ne if + i32.const 0 + i32.const 1056 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $for-loop|01 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 + i32.const 0 + i32.gt_s + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|01 + end end - end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - loop $for-loop|01 local.get $0 - i32.const 0 - i32.gt_s if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|01 + i32.const 0 + i32.const 1056 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - local.get $0 - if i32.const 0 - i32.const 1056 - i32.const 29 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|02 + local.set $0 + loop $for-loop|02 + local.get $0 + i32.const 10 + i32.ne + if + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|02 + end + end local.get $0 i32.const 10 i32.ne if + i32.const 0 + i32.const 1056 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $for-loop|03 local.get $0 i32.const 1 - i32.add - local.set $0 - br $for-loop|02 + i32.sub + local.tee $0 + br_if $for-loop|03 end - end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 39 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - loop $for-loop|03 local.get $0 - i32.const 1 - i32.sub - local.tee $0 - br_if $for-loop|03 - end - local.get $0 - if + if + i32.const 0 + i32.const 1056 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1056 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|05 + local.set $0 + loop $for-loop|05 + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.ne + br_if $for-loop|05 + end local.get $0 - i32.const 1 - i32.add - local.tee $0 i32.const 10 i32.ne - br_if $for-loop|05 - end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 61 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|07 - local.get $0 - i32.const 10 - i32.lt_s if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|07 + i32.const 0 + i32.const 1056 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - local.get $0 - i32.const 10 - i32.ne - if i32.const 0 - i32.const 1056 - i32.const 80 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|08 + local.set $0 + loop $for-loop|07 + local.get $0 + i32.const 10 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|07 + end + end local.get $0 i32.const 10 - i32.lt_s + i32.ne if + i32.const 0 + i32.const 1056 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|08 local.get $0 - i32.const 2 - i32.ge_s + i32.const 10 + i32.lt_s if - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 10 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.add - local.get $2 - local.get $0 + local.get $0 + i32.const 2 + i32.ge_s + if + i32.const 0 + local.set $1 + loop $for-loop|1 local.get $1 + i32.const 10 i32.lt_s - select - local.set $2 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 + if + local.get $2 + i32.const 1 + i32.add + local.get $2 + local.get $0 + local.get $1 + i32.lt_s + select + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 + end end end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|08 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|08 end - end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 121 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 28 - i32.ne - if + local.get $0 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 28 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 17892 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace i32.const 0 - i32.const 1056 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - memory.size - i32.const 16 - i32.shl - i32.const 17892 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1508 i32.lt_s @@ -1439,30 +1442,30 @@ i32.store local.get $0 call $for/Ref#constructor - local.tee $0 + local.tee $1 i32.store - loop $for-loop|09 - local.get $0 + loop $for-loop|06 + local.get $1 if - local.get $1 + local.get $2 i32.const 1 i32.add - local.tee $1 + local.tee $2 i32.const 10 i32.eq if i32.const 0 - local.set $0 + local.set $1 else global.get $~lib/memory/__stack_pointer call $for/Ref#constructor - local.tee $0 + local.tee $1 i32.store end - br $for-loop|09 + br $for-loop|06 end end - local.get $1 + local.get $2 i32.const 10 i32.ne if @@ -1473,7 +1476,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 if i32.const 0 i32.const 1056 @@ -1507,10 +1510,10 @@ call $for/Ref#constructor local.tee $0 i32.store - loop $for-loop|06 + loop $for-loop|09 call $for/Ref#constructor if - block $for-break07 + block $for-break010 local.get $1 i32.const 1 i32.add @@ -1520,13 +1523,13 @@ if i32.const 0 local.set $0 - br $for-break07 + br $for-break010 end global.get $~lib/memory/__stack_pointer call $for/Ref#constructor local.tee $0 i32.store - br $for-loop|06 + br $for-loop|09 end end end @@ -1845,8 +1848,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index 4a8e784af0..dac122fa2d 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -158,6 +158,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -165,10 +166,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18220 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -182,7 +183,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -207,8 +208,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -216,10 +218,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1760 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1472 i32.const 1536 @@ -228,7 +231,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1764 @@ -243,16 +246,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -260,11 +263,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1534,8 +1537,8 @@ i32.load offset=8 local.set $4 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index a26ecf5317..1d69aa111f 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -172,6 +172,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -179,10 +180,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18580 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -196,7 +197,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -221,19 +222,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 2112 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1792 i32.const 1856 @@ -242,7 +245,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 2116 @@ -257,28 +260,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1221,6 +1224,262 @@ end end ) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-continue|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-continue|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $0 + local.get $0 + local.get $1 + i32.lt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $0 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1936 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $1 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $1 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $1 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $1 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 8 + i32.store offset=12 + local.get $0 + i32.const 4 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + i32.store8 + local.get $1 + i32.const 4 + i32.add + local.tee $0 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + i32.const 0 + i32.store8 offset=1 + local.get $1 + i32.const 0 + i32.store8 offset=2 + local.get $0 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + ) (func $function-expression/semanticallyAnonymous~fnDecl|0 (param $0 i64) (result i64) local.get $0 ) @@ -1285,395 +1544,13 @@ end ) (func $~start - call $start:function-expression - ) - (func $function-expression/testField (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2196 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - local.get $5 - i32.const 2032 - i32.store - local.get $5 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2196 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-continue|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-continue|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - memory.size - local.tee $2 - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $0 - local.get $0 - local.get $2 - i32.lt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $0 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $3 - local.get $2 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1936 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1936 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $3 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $2 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $2 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $2 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $2 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 8 - i32.store offset=12 - local.get $0 - i32.const 4 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $2 - i32.load offset=8 - local.set $4 - local.get $0 - global.get $~lib/rt/itcms/white - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 20 - i32.add - local.tee $0 - i32.const 0 - i32.store8 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - i32.const 1 - i32.sub - i32.const 0 - i32.store8 - local.get $0 - i32.const 0 - i32.store8 offset=1 - local.get $0 - i32.const 0 - i32.store8 offset=2 - local.get $2 - i32.const 2 - i32.sub - i32.const 0 - i32.store8 - local.get $2 - i32.const 3 - i32.sub - i32.const 0 - i32.store8 - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.const 2032 - i32.store - local.get $0 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1664 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - i32.const 2016 - i32.load - i32.const 3 - i32.and - i32.eq - if - local.get $1 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 - local.get $0 - i32.const 3 - i32.eq - select - if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - i32.load - call_indirect $0 (type $none_=>_i32) - local.tee $1 - i32.store offset=8 - i32.const 1 - local.get $1 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 25 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 18608 - i32.const 18656 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $start:function-expression - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2196 i32.lt_s @@ -1840,10 +1717,10 @@ i32.const 1504 i32.load call_indirect $0 (type $none_=>_i32) - local.tee $0 + local.tee $1 i32.store i32.const 1 - local.get $0 + local.get $1 i32.load call_indirect $0 (type $i32_=>_i32) i32.const 25 @@ -1879,10 +1756,10 @@ i32.const 1568 i32.load call_indirect $0 (type $none_=>_i32) - local.tee $0 + local.tee $1 i32.store offset=4 i32.const 1 - local.get $0 + local.get $1 i32.load call_indirect $0 (type $i32_=>_i32) i32.const 25 @@ -1931,7 +1808,122 @@ i32.store i32.const 1888 global.set $~lib/rt/itcms/fromSpace - call $function-expression/testField + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 2032 + i32.store + local.get $0 + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 2032 + i32.store + local.get $0 + local.set $1 + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + i32.const 2016 + i32.load + i32.const 3 + i32.and + i32.eq + if + local.get $1 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + i32.const 0 + local.get $1 + i32.const 3 + i32.eq + select + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + i32.load + call_indirect $0 (type $none_=>_i32) + local.tee $0 + i32.store offset=8 + i32.const 1 + local.get $0 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer call $function-expression/semanticallyAnonymous global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/function-types.optimized.wat b/tests/compiler/function-types.optimized.wat index 691bd94c4a..ea2e0791c3 100644 --- a/tests/compiler/function-types.optimized.wat +++ b/tests/compiler/function-types.optimized.wat @@ -40,11 +40,11 @@ ) (func $~start (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1228 i32.lt_s @@ -188,10 +188,9 @@ end unreachable end - i32.const 1056 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 1056 + local.tee $0 i32.store end i32.const 2 diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index 01065000cb..e6e583217c 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -123,6 +123,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -130,10 +131,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17900 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -147,7 +148,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -172,8 +173,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -181,10 +183,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1472 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -193,7 +196,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1476 @@ -208,16 +211,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -225,11 +228,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1225,284 +1228,292 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace ) - (func $getter-call/test (result i32) + (func $getter-call/C#constructor (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1516 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - local.get $5 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1516 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i32.const 0 - i32.store - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 + global.get $~lib/memory/__stack_pointer + i32.const 1516 + i32.lt_s + if + i32.const 17920 + i32.const 17968 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-continue|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub local.set $0 - loop $do-continue|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-continue|0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt end - global.get $~lib/rt/itcms/total - local.tee $0 local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold + i32.const 0 + i32.gt_s + br_if $do-continue|0 end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $3 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold i32.sub - i32.ne + i32.const 1024 + i32.lt_u + i32.const 10 i32.shl - i32.const 65563 i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $0 + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $0 + local.get $0 + local.get $1 + i32.lt_s + select + memory.grow + i32.const 0 + i32.lt_s + if local.get $0 - local.get $1 - i32.lt_s - select memory.grow i32.const 0 i32.lt_s if - local.get $0 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $3 - local.get $1 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort unreachable end end - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz if i32.const 0 i32.const 1392 - i32.const 498 - i32.const 14 + i32.const 496 + i32.const 16 call $~lib/builtins/abort unreachable end - local.get $3 - local.get $0 - call $~lib/rt/tlsf/removeBlock + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $1 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if local.get $0 - i32.load - local.tee $1 - i32.const -4 + local.get $1 + i32.const 2 i32.and i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $1 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $1 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $3 - local.get $1 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $1 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $1 - local.get $1 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 3 - i32.store offset=12 + i32.or + i32.store local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace + i32.const 32 + i32.add local.tee $1 - i32.load offset=8 - local.set $4 - local.get $0 - global.get $~lib/rt/itcms/white - local.get $1 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 i32.or - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $4 - local.get $4 - i32.load offset=4 - i32.const 3 - i32.and + i32.store + local.get $2 + local.get $1 + call $~lib/rt/tlsf/insertBlock + else local.get $0 - i32.or - i32.store offset=4 local.get $1 + i32.const -2 + i32.and + i32.store local.get $0 - i32.store offset=8 - global.get $~lib/rt/itcms/total + i32.const 4 + i32.add local.get $0 i32.load i32.const -4 i32.and - i32.const 4 i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - local.get $0 - i32.const 20 - i32.add - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $2 - i32.store - i32.const 1456 + local.tee $1 + local.get $1 i32.load - call_indirect $0 (type $none_=>_i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const -3 + i32.and + i32.store end - i32.const 17920 - i32.const 17968 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 3 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $4 + local.get $0 + i32.const 20 + i32.add + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) + (func $getter-call/test (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1516 + i32.lt_s + if + i32.const 17920 + i32.const 17968 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + call $getter-call/C#constructor + i32.store + i32.const 1456 + i32.load + call_indirect $0 (type $none_=>_i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) ) diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index a7058bf423..8219627087 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -1718,17 +1718,17 @@ local.get $0 local.get $2 call $~lib/rt/tlsf/allocateBlock - local.tee $6 - i32.const 4 - i32.add - local.set $2 + local.set $6 local.get $1 i32.load i32.const -4 i32.and local.set $7 block $~lib/util/memory/memmove|inlined.0 - local.get $2 + local.get $6 + i32.const 4 + i32.add + local.tee $2 local.get $1 i32.const 4 i32.add @@ -1862,11 +1862,11 @@ local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 - local.get $2 local.get $7 i32.const 1 i32.sub local.tee $7 + local.get $2 i32.add local.get $5 local.get $7 @@ -1881,11 +1881,11 @@ i32.const 8 i32.ge_u if - local.get $2 local.get $7 i32.const 8 i32.sub local.tee $7 + local.get $2 i32.add local.get $5 local.get $7 @@ -1899,11 +1899,11 @@ loop $while-continue|5 local.get $7 if - local.get $2 local.get $7 i32.const 1 i32.sub local.tee $7 + local.get $2 i32.add local.get $5 local.get $7 diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index bc89635562..8b600046f1 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -114,6 +114,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -121,10 +122,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17868 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -138,7 +139,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -163,19 +164,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1440 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -184,7 +187,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1444 @@ -199,28 +202,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1219,17 +1222,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1242,16 +1245,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1259,15 +1262,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1294,12 +1297,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1309,7 +1312,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1318,19 +1321,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1356,26 +1359,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1390,34 +1393,34 @@ local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 4 i32.add - local.tee $0 + local.tee $1 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 @@ -1595,11 +1598,11 @@ ) (func $export:implicit-getter-setter/Basic#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s @@ -1714,11 +1717,11 @@ ) (func $export:implicit-getter-setter/Managed#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index 153caa2238..689696feb2 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -140,6 +140,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -147,10 +148,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18596 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -164,7 +165,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -189,19 +190,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 2112 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1280 i32.const 1344 @@ -210,7 +213,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 2116 @@ -225,28 +228,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1535,8 +1538,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -2531,89 +2534,90 @@ (local $1 i32) (local $2 i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2212 - i32.lt_s - if - i32.const 18624 - i32.const 18672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - memory.size - i32.const 16 - i32.shl - i32.const 18596 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace - local.get $0 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 1056 - call $~lib/rt/__newArray - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - i32.const 3 - i32.const 4 - i32.const 1536 - call $~lib/rt/__newArray - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 5 - i32.const 1584 - call $~lib/rt/__newArray - local.tee $0 - i32.store block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2212 + i32.lt_s + if + i32.const 18624 + i32.const 18672 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store local.get $0 + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + i32.const 18596 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + local.get $0 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 1056 + call $~lib/rt/__newArray + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 3 + i32.const 4 + i32.const 1536 + call $~lib/rt/__newArray + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 5 + i32.const 1584 + call $~lib/rt/__newArray + local.tee $0 + i32.store + local.get $0 + local.tee $1 i32.load offset=12 i32.const 1 i32.le_u br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.load offset=4 i32.const -1 @@ -2642,11 +2646,12 @@ local.tee $0 i32.store local.get $0 + local.tee $1 i32.load offset=12 i32.const 1 i32.le_u br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 f32.load offset=4 drop diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index a59c5eb68b..0282929a49 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -3,10 +3,10 @@ (type $i32_f32_i32_i32_=>_i32 (func (param i32 f32 i32 i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $f32_=>_f32 (func (param f32) (result f32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -145,6 +145,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -152,10 +153,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18068 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -169,7 +170,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -194,8 +195,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -203,10 +205,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1616 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1424 i32.const 1488 @@ -215,7 +218,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1620 @@ -230,16 +233,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -247,11 +250,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1175,6 +1178,262 @@ end end ) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-continue|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-continue|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $0 + local.get $0 + local.get $1 + i32.lt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $0 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $1 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $1 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $1 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $1 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 5 + i32.store offset=12 + local.get $0 + i32.const 4 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + i32.store8 + local.get $1 + i32.const 4 + i32.add + local.tee $0 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + i32.const 0 + i32.store8 offset=1 + local.get $1 + i32.const 0 + i32.store8 offset=2 + local.get $0 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + ) (func $infer-generic/test1 (param $0 f32) (result f32) local.get $0 ) @@ -1223,13 +1482,11 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1684 i32.lt_s @@ -1247,6 +1504,8 @@ local.get $0 i32.const 1200 i32.store offset=4 + i32.const 0 + local.set $0 i32.const 1164 i32.load local.set $1 @@ -1254,32 +1513,32 @@ local.get $1 i32.const 1164 i32.load - local.tee $0 - local.get $0 + local.tee $3 local.get $1 - i32.gt_s + local.get $3 + i32.lt_s select - local.get $2 + local.get $0 i32.gt_s if - local.get $3 + local.get $2 i32.const 1156 i32.load - local.get $2 + local.get $0 i32.const 2 i32.shl i32.add f32.load - local.get $2 + local.get $0 i32.const 1152 i32.const 1200 i32.load call_indirect $0 (type $i32_f32_i32_i32_=>_i32) - local.set $3 - local.get $2 + local.set $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end @@ -1316,8 +1575,8 @@ i32.const 1520 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1326,278 +1585,30 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $2 - loop $do-continue|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-continue|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $4 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $4 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $0 - local.get $0 - local.get $1 - i32.lt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $0 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $4 - local.get $1 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $4 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1568 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $1 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $1 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $1 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $4 - local.get $1 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $1 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $1 - local.get $1 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 5 - i32.store offset=12 - local.get $0 - i32.const 4 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - i32.store8 - local.get $1 - i32.const 4 - i32.add + call $~lib/rt/itcms/__new local.tee $0 - i32.const 1 - i32.sub - i32.const 0 - i32.store8 - local.get $1 - i32.const 0 - i32.store8 offset=1 - local.get $1 - i32.const 0 - i32.store8 offset=2 - local.get $0 - i32.const 2 - i32.sub - i32.const 0 - i32.store8 - local.get $0 - i32.const 3 - i32.sub - i32.const 0 - i32.store8 - local.get $3 - local.get $1 i32.store - local.get $1 + local.get $0 i32.const 0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $1 + local.tee $1 + local.get $0 i32.store - local.get $3 + local.get $1 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index 50cca54290..34fc3332c1 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -132,6 +132,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -139,10 +140,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17964 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -156,7 +157,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -181,8 +182,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -190,10 +192,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1520 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1328 i32.const 1392 @@ -202,7 +205,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1524 @@ -217,16 +220,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -234,11 +237,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1508,8 +1511,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -1760,188 +1763,187 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $__inlined_func$start:inlining + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1580 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 2 + i32.const 1104 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 123 + i32.store + local.get $0 i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 17964 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/pinSpace + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/toSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1580 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 2 - i32.const 1104 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 123 - i32.store - local.get $0 - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 17964 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/pinSpace - i32.const 1284 - i32.const 1280 - i32.store - i32.const 1288 - i32.const 1280 - i32.store - i32.const 1280 - global.set $~lib/rt/itcms/toSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1580 - i32.lt_s - br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1580 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + local.tee $1 + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 16 - i32.const 5 + i32.const 8 + i32.const 6 call $~lib/rt/itcms/__new local.tee $0 - i32.store - local.get $0 + i32.store offset=4 + end + local.get $0 + i32.const 1 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store offset=4 + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 95 i32.const 3 - i32.store offset=8 - local.get $0 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - end - local.get $0 - i32.const 1 - i32.store - local.get $0 + i32.const 1056 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 3 + i32.ne + if i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store offset=4 - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 + i32.const 1056 + i32.const 97 i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=12 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$start:inlining + call $~lib/builtins/abort + unreachable end - i32.const 17984 - i32.const 18032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end + i32.const 17984 + i32.const 18032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index ef47c477d7..18d97ef9c6 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -134,6 +134,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -141,10 +142,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17948 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -158,7 +159,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -183,8 +184,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -192,10 +194,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1504 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -204,7 +207,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1508 @@ -219,16 +222,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -236,11 +239,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1220,17 +1223,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1243,16 +1246,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1260,15 +1263,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1295,12 +1298,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1310,7 +1313,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1319,19 +1322,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1357,26 +1360,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1395,43 +1398,43 @@ (func $start:instanceof-class (local $0 i32) (local $1 i32) - memory.size - i32.const 16 - i32.shl - i32.const 17948 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + memory.size + i32.const 16 + i32.shl + i32.const 17948 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1564 i32.lt_s @@ -1531,35 +1534,35 @@ block $__inlined_func$instanceof-class/Child~instanceof (result i32) i32.const 0 global.get $instanceof-class/b - local.tee $1 + local.tee $0 i32.eqz br_if $__inlined_func$instanceof-class/Child~instanceof drop i32.const 1 block $__inlined_func$~lib/rt/__instanceof (result i32) - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1504 i32.load i32.le_u if loop $do-continue|0 i32.const 1 - local.get $0 + local.get $1 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof drop - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1508 i32.add i32.load offset=4 - local.tee $0 + local.tee $1 br_if $do-continue|0 end end @@ -1568,8 +1571,8 @@ br_if $__inlined_func$instanceof-class/Child~instanceof drop i32.const 1 - block $__inlined_func$~lib/rt/__instanceof6 (result i32) - local.get $1 + block $__inlined_func$~lib/rt/__instanceof9 (result i32) + local.get $0 i32.const 20 i32.sub i32.load offset=12 @@ -1578,12 +1581,12 @@ i32.load i32.le_u if - loop $do-continue|07 + loop $do-continue|010 i32.const 1 local.get $0 i32.const 6 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof6 + br_if $__inlined_func$~lib/rt/__instanceof9 drop local.get $0 i32.const 3 @@ -1592,7 +1595,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-continue|07 + br_if $do-continue|010 end end i32.const 0 diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index 3463ebbed7..d11b8aee86 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -2,9 +2,9 @@ (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -108,6 +108,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -115,10 +116,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18004 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -132,7 +133,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -157,19 +158,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1584 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -178,7 +181,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1588 @@ -193,28 +196,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1157,6 +1160,262 @@ end end ) + (func $~lib/rt/itcms/__new (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-continue|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-continue|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $0 + local.get $0 + local.get $1 + i32.lt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $0 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $1 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $3 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $1 + local.get $3 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $1 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $1 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 3 + i32.store offset=12 + local.get $0 + i32.const 4 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $3 + local.get $0 + local.get $1 + global.get $~lib/rt/itcms/white + i32.or + i32.store offset=4 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $3 + local.get $3 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + i32.store8 + local.get $1 + i32.const 4 + i32.add + local.tee $0 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + i32.const 0 + i32.store8 offset=1 + local.get $1 + i32.const 0 + i32.store8 offset=2 + local.get $0 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 i32.eqz @@ -1240,14 +1499,11 @@ (func $~start (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1620 i32.lt_s @@ -1301,256 +1557,8 @@ i32.const 0 i32.store local.get $0 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-continue|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-continue|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock + call $~lib/rt/itcms/__new local.tee $0 - i32.eqz - if - memory.size - local.tee $0 - i32.const 4 - local.get $2 - i32.load offset=1568 - local.get $0 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $3 - local.get $0 - local.get $3 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $3 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $0 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $3 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $4 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $3 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $3 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $3 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $2 - local.get $2 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 3 - i32.store offset=12 - local.get $0 - i32.const 4 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $3 - i32.load offset=8 - local.set $2 - local.get $0 - global.get $~lib/rt/itcms/white - local.get $3 - i32.or - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=4 - local.get $3 - local.get $0 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 20 - i32.add - local.tee $0 - i32.const 0 - i32.store8 - local.get $0 - i32.const 4 - i32.add - local.tee $2 - i32.const 1 - i32.sub - i32.const 0 - i32.store8 - local.get $0 - i32.const 0 - i32.store8 offset=1 - local.get $0 - i32.const 0 - i32.store8 offset=2 - local.get $2 - i32.const 2 - i32.sub - i32.const 0 - i32.store8 - local.get $2 - i32.const 3 - i32.sub - i32.const 0 - i32.store8 - local.get $0 i32.store local.get $0 i32.const 1456 @@ -1580,10 +1588,11 @@ i32.store local.get $1 local.get $0 - i32.load local.tee $1 + i32.load + local.tee $0 i32.store - local.get $1 + local.get $0 i32.eqz if i32.const 1488 @@ -1593,11 +1602,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $1 - i32.store local.get $0 + i32.store local.get $1 + local.get $0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index eb12e5c29e..c8f4b01e23 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -129,6 +129,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -136,10 +137,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17908 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -153,7 +154,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -178,8 +179,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -187,10 +189,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1488 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -199,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -214,16 +217,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -231,11 +234,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1170,12 +1173,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $1 + local.set $0 loop $do-continue|0 - local.get $1 + local.get $0 call $~lib/rt/itcms/step i32.sub - local.set $1 + local.set $0 global.get $~lib/rt/itcms/state i32.eqz if @@ -1191,7 +1194,7 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $1 + local.get $0 i32.const 0 i32.gt_s br_if $do-continue|0 @@ -1356,8 +1359,8 @@ i32.load offset=8 local.set $2 local.get $0 - global.get $~lib/rt/itcms/white local.get $3 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1433,13 +1436,13 @@ local.tee $1 i32.const 0 i32.store + local.get $1 i32.const 12 local.get $0 i32.sub i32.const -4 i32.and local.tee $2 - local.get $1 i32.add local.tee $0 i32.const 4 diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index bd83374505..7e65c4be95 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -115,6 +115,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -122,10 +123,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18140 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -139,7 +140,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -164,19 +165,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1712 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1344 i32.const 1408 @@ -185,7 +188,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1716 @@ -200,28 +203,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1484,7 +1487,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1512,11 +1515,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1535,9 +1538,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1553,7 +1556,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1568,18 +1571,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1590,7 +1593,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1604,13 +1607,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1623,89 +1629,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1713,7 +1719,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2491,17 +2497,237 @@ i32.store8 end ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.tee $2 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u + if + local.get $2 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $4 + local.get $1 + local.get $2 + i32.load offset=16 + local.tee $2 + local.get $1 + local.get $2 + i32.lt_u + select + local.set $5 + block $~lib/util/memory/memmove|inlined.0 + local.get $4 + local.tee $1 + local.get $0 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $1 + i32.sub + local.get $5 + i32.sub + i32.const 0 + local.get $5 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $1 + local.get $0 + local.get $5 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.gt_u + if + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $1 + i32.const 7 + i32.and + if + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $1 + local.get $0 + i64.load + i64.store + local.get $5 + i32.const 8 + i32.sub + local.set $5 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $5 + if + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + else + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $1 + local.get $5 + i32.add + i32.const 7 + i32.and + if + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $5 + i32.const 8 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $5 + if + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + local.get $4 + ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) local.get $0 i32.load offset=12 local.get $1 @@ -2521,16 +2747,16 @@ local.get $1 i32.const 1 i32.add - local.tee $9 - local.tee $7 + local.tee $6 + local.tee $3 local.get $0 i32.load offset=8 - local.tee $11 + local.tee $5 i32.const 2 i32.shr_u i32.gt_u if - local.get $7 + local.get $3 i32.const 268435455 i32.gt_u if @@ -2541,282 +2767,62 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/rt/itcms/__renew - local.get $11 - i32.const 1 - i32.shl - local.tee $6 - i32.const 1073741820 - local.get $6 - i32.const 1073741820 - i32.lt_u - select - local.tee $4 - local.get $7 - i32.const 8 - local.get $7 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $6 - local.get $4 - local.get $6 - i32.gt_u - select - local.tee $10 - local.tee $12 - local.get $0 - i32.load - local.tee $8 - local.tee $3 - i32.const 20 - i32.sub - local.tee $5 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $5 - local.get $12 - i32.store offset=16 - br $__inlined_func$~lib/rt/itcms/__renew - end - local.get $12 - local.get $5 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $7 - local.set $6 - local.get $12 - local.get $5 - i32.load offset=16 - local.tee $4 - local.get $4 - local.get $12 - i32.gt_u - select - local.set $12 - block $~lib/util/memory/memmove|inlined.0 - local.get $3 - local.get $6 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $3 - local.get $6 - i32.sub - local.get $12 - i32.sub - i32.const 0 - local.get $12 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $6 - local.get $3 - local.get $12 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 - local.get $6 - i32.gt_u - if - local.get $3 - i32.const 7 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $6 - i32.const 7 - i32.and - if - local.get $12 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $12 - i32.const 1 - i32.sub - local.set $12 - local.get $6 - local.tee $5 - i32.const 1 - i32.add - local.set $6 - local.get $3 - local.tee $4 - i32.const 1 - i32.add - local.set $3 - local.get $5 - local.get $4 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $12 - i32.const 8 - i32.ge_u - if - local.get $6 - local.get $3 - i64.load - i64.store - local.get $12 - i32.const 8 - i32.sub - local.set $12 - local.get $6 - i32.const 8 - i32.add - local.set $6 - local.get $3 - i32.const 8 - i32.add - local.set $3 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $12 - if - local.get $6 - local.tee $5 - i32.const 1 - i32.add - local.set $6 - local.get $3 - local.tee $4 - i32.const 1 - i32.add - local.set $3 - local.get $5 - local.get $4 - i32.load8_u - i32.store8 - local.get $12 - i32.const 1 - i32.sub - local.set $12 - br $while-continue|2 - end - end - else - local.get $3 - i32.const 7 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $6 - local.get $12 - i32.add - i32.const 7 - i32.and - if - local.get $12 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $6 - local.get $12 - i32.const 1 - i32.sub - local.tee $12 - i32.add - local.get $3 - local.get $12 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $12 - i32.const 8 - i32.ge_u - if - local.get $6 - local.get $12 - i32.const 8 - i32.sub - local.tee $12 - i32.add - local.get $3 - local.get $12 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $12 - if - local.get $6 - local.get $12 - i32.const 1 - i32.sub - local.tee $12 - i32.add - local.get $3 - local.get $12 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - local.get $7 - local.set $3 - end + local.get $0 + i32.load + local.tee $7 + local.get $5 + i32.const 1 + i32.shl + local.tee $4 + i32.const 1073741820 + local.get $4 + i32.const 1073741820 + i32.lt_u + select + local.tee $4 + local.get $3 + i32.const 8 + local.get $3 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $3 local.get $3 - local.get $11 + local.get $4 + i32.lt_u + select + local.tee $3 + call $~lib/rt/itcms/__renew + local.tee $4 + local.get $5 i32.add - local.get $10 - local.get $11 + local.get $3 + local.get $5 i32.sub call $~lib/memory/memory.fill - local.get $3 - local.get $8 + local.get $4 + local.get $7 i32.ne if local.get $0 - local.get $3 + local.get $4 i32.store local.get $0 - local.get $3 + local.get $4 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link end local.get $0 - local.get $10 + local.get $3 i32.store offset=8 end local.get $0 - local.get $9 + local.get $6 i32.store offset=12 end local.get $0 @@ -2836,55 +2842,56 @@ (local $0 i32) (local $1 i32) (local $2 i32) - memory.size - i32.const 16 - i32.shl - i32.const 18140 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + memory.size + i32.const 16 + i32.shl + i32.const 18140 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1756 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2947,7 +2954,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store call $issues/1699/MultiAssignmentTest#constructor diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index fa16156fa7..6ae2768188 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -120,6 +120,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -127,10 +128,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17908 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -144,7 +145,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -169,8 +170,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -178,10 +180,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1488 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1296 i32.const 1360 @@ -190,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -205,16 +208,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -222,11 +225,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1518,8 +1521,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/loop-flow.optimized.wat b/tests/compiler/loop-flow.optimized.wat index 9812a7bc0e..9a25b49c83 100644 --- a/tests/compiler/loop-flow.optimized.wat +++ b/tests/compiler/loop-flow.optimized.wat @@ -35,13 +35,17 @@ else local.get $0 i32.const 2 - i32.ne - br_if $while-continue|0 - i32.const 1104 - i32.const 1056 - i32.const 24 - i32.const 22 - call $~lib/builtins/abort + i32.eq + if + i32.const 1104 + i32.const 1056 + i32.const 24 + i32.const 22 + call $~lib/builtins/abort + unreachable + else + br $while-continue|0 + end unreachable end end @@ -77,13 +81,17 @@ if local.get $0 i32.const 2 - i32.ne - br_if $do-continue|0 - i32.const 1104 - i32.const 1056 - i32.const 78 - i32.const 22 - call $~lib/builtins/abort + i32.eq + if + i32.const 1104 + i32.const 1056 + i32.const 78 + i32.const 22 + call $~lib/builtins/abort + unreachable + else + br $do-continue|0 + end unreachable end end diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index 83fc6606a2..d28d8339dd 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -124,6 +124,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -131,10 +132,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18060 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -148,7 +149,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -173,8 +174,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -182,10 +184,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1632 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -194,7 +197,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1636 @@ -209,16 +212,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -226,11 +229,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1210,17 +1213,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1233,16 +1236,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1250,15 +1253,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1285,12 +1288,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1300,7 +1303,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1309,19 +1312,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1347,26 +1350,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1418,11 +1421,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1676 i32.lt_s @@ -1532,25 +1535,25 @@ i32.const 20 i32.sub i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1632 i32.load i32.le_u if loop $do-continue|0 i32.const 1 - local.get $2 + local.get $1 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof drop - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $2 + local.tee $1 br_if $do-continue|0 end end @@ -1604,7 +1607,7 @@ local.get $1 local.get $0 i32.store offset=4 - block $__inlined_func$~lib/rt/__instanceof11 (result i32) + block $__inlined_func$~lib/rt/__instanceof14 (result i32) local.get $0 i32.const 20 i32.sub @@ -1614,12 +1617,12 @@ i32.load i32.le_u if - loop $do-continue|012 + loop $do-continue|015 i32.const 1 local.get $1 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof11 + br_if $__inlined_func$~lib/rt/__instanceof14 drop local.get $1 i32.const 3 @@ -1628,7 +1631,7 @@ i32.add i32.load offset=4 local.tee $1 - br_if $do-continue|012 + br_if $do-continue|015 end end i32.const 0 @@ -1665,34 +1668,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - block $__inlined_func$~lib/rt/__instanceof14 (result i32) + block $__inlined_func$~lib/rt/__instanceof18 (result i32) local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1632 i32.load i32.le_u if - loop $do-continue|015 + loop $do-continue|019 i32.const 1 - local.get $2 + local.get $1 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof14 + br_if $__inlined_func$~lib/rt/__instanceof18 drop - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $2 - br_if $do-continue|015 + local.tee $1 + br_if $do-continue|019 end end i32.const 0 @@ -1706,7 +1709,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1728,34 +1731,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - block $__inlined_func$~lib/rt/__instanceof17 (result i32) + block $__inlined_func$~lib/rt/__instanceof22 (result i32) local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1632 i32.load i32.le_u if - loop $do-continue|018 + loop $do-continue|023 i32.const 1 - local.get $2 + local.get $1 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof17 + br_if $__inlined_func$~lib/rt/__instanceof22 drop - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $2 - br_if $do-continue|018 + local.tee $1 + br_if $do-continue|023 end end i32.const 0 @@ -1769,7 +1772,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1826,12 +1829,11 @@ ) (func $managed-cast/Cat#constructor (result i32) (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1676 i32.lt_s diff --git a/tests/compiler/memmove.optimized.wat b/tests/compiler/memmove.optimized.wat index 21ae653cfb..decfd1403c 100644 --- a/tests/compiler/memmove.optimized.wat +++ b/tests/compiler/memmove.optimized.wat @@ -14,80 +14,41 @@ (local $4 i32) (local $5 i32) local.get $0 - block $folding-inner0 - local.get $0 + local.set $5 + local.get $0 + local.get $1 + i32.eq + if + local.get $5 + return + end + local.get $0 + local.get $1 + i32.lt_u + if local.get $1 - i32.eq - br_if $folding-inner0 + i32.const 7 + i32.and local.get $0 - local.get $1 - i32.lt_u + i32.const 7 + i32.and + i32.eq if - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $0 - i32.const 7 - i32.and - if - local.get $2 - i32.eqz - br_if $folding-inner0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $4 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $4 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if local.get $2 - i32.const 8 - i32.ge_u + i32.eqz if - local.get $0 - local.get $1 - i64.load - i64.store - local.get $2 - i32.const 8 - i32.sub - local.set $2 - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|1 + local.get $5 + return end - end - end - loop $while-continue|2 - local.get $2 - if + local.get $2 + i32.const 1 + i32.sub + local.set $2 local.get $0 local.tee $3 i32.const 1 @@ -102,85 +63,133 @@ local.get $4 i32.load8_u i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $2 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $1 + i64.load + i64.store local.get $2 - i32.const 1 + i32.const 8 i32.sub local.set $2 - br $while-continue|2 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 end end - else - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq + end + loop $while-continue|2 + local.get $2 if - loop $while-continue|3 - local.get $0 + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $0 + local.get $2 + i32.add + i32.const 7 + i32.and + if local.get $2 - i32.add - i32.const 7 - i32.and + i32.eqz if - local.get $2 - i32.eqz - br_if $folding-inner0 - local.get $0 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.add - local.get $1 - local.get $2 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 + local.get $5 + return end - end - loop $while-continue|4 + local.get $0 local.get $2 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 8 - i32.sub - local.tee $2 - i32.add - local.get $1 - local.get $2 - i32.add - i64.load - i64.store - br $while-continue|4 - end + i32.const 1 + i32.sub + local.tee $2 + i32.add + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 end end - loop $while-continue|5 + loop $while-continue|4 local.get $2 + i32.const 8 + i32.ge_u if local.get $0 local.get $2 - i32.const 1 + i32.const 8 i32.sub local.tee $2 i32.add local.get $1 local.get $2 i32.add - i32.load8_u - i32.store8 - br $while-continue|5 + i64.load + i64.store + br $while-continue|4 end end end + loop $while-continue|5 + local.get $2 + if + local.get $0 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.add + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end end + local.get $5 ) (func $~start i32.const 8 diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index 45d4e832e8..de7d7ac5f9 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -160,6 +160,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -167,10 +168,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17884 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -184,7 +185,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -209,8 +210,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -218,10 +220,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1440 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -230,7 +233,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -245,16 +248,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -262,11 +265,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1246,17 +1249,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1269,16 +1272,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1286,15 +1289,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1321,12 +1324,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1336,7 +1339,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1345,19 +1348,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1383,26 +1386,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index fb560d0a27..72fc6b5f35 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -167,6 +167,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -174,10 +175,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 21068 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -191,7 +192,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -216,8 +217,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -225,10 +227,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 4656 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1472 i32.const 1536 @@ -237,7 +240,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 4660 @@ -252,16 +255,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -269,11 +272,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1319,8 +1322,8 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1334,7 +1337,7 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $1 global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -1342,7 +1345,7 @@ end global.get $~lib/rt/tlsf/ROOT local.tee $5 - local.get $2 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1353,13 +1356,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1367,29 +1370,29 @@ i32.const 4 i32.sub end - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz if memory.size local.tee $4 - local.get $2 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $1 i32.add else - local.get $2 + local.get $1 end i32.const 4 local.get $5 @@ -1434,7 +1437,7 @@ i32.shl call $~lib/rt/tlsf/addMemory local.get $5 - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz @@ -1451,7 +1454,7 @@ i32.load i32.const -4 i32.and - local.get $2 + local.get $1 i32.lt_u if i32.const 0 @@ -1467,7 +1470,7 @@ local.get $3 i32.load local.set $4 - local.get $2 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1483,9 +1486,9 @@ local.get $4 i32.const -4 i32.and - local.get $2 + local.get $1 i32.sub - local.tee $1 + local.tee $2 i32.const 16 i32.ge_u if @@ -1493,23 +1496,23 @@ local.get $4 i32.const 2 i32.and - local.get $2 + local.get $1 i32.or i32.store - local.get $2 + local.get $1 local.get $3 i32.const 4 i32.add i32.add - local.tee $2 - local.get $1 + local.tee $1 + local.get $2 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $5 - local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $3 @@ -1525,8 +1528,8 @@ i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and @@ -1539,26 +1542,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 + local.get $1 global.get $~lib/rt/itcms/white - local.get $2 i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1574,18 +1577,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1594,18 +1597,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1614,10 +1617,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1626,38 +1629,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $2 i32.const 0 i32.store - local.get $1 - local.get $0 local.get $2 + local.get $0 + local.get $1 i32.sub i32.const -4 i32.and - local.tee $2 + local.tee $1 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 local.get $0 @@ -1670,20 +1673,20 @@ i32.sub i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store offset=12 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 0 i32.store offset=20 - local.get $1 + local.get $2 i32.const 0 i32.store offset=24 local.get $0 @@ -1706,16 +1709,16 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 4 i32.and i32.const 24 i32.add local.tee $0 i32.add - local.set $1 - local.get $2 + local.set $2 + local.get $1 local.get $0 i32.sub local.set $0 @@ -1724,26 +1727,26 @@ i32.const 32 i32.ge_u if - local.get $1 + local.get $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i64.const 0 i64.store offset=16 - local.get $1 + local.get $2 i64.const 0 i64.store offset=24 local.get $0 i32.const 32 i32.sub local.set $0 - local.get $1 + local.get $2 i32.const 32 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end @@ -1858,25 +1861,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4684 - i32.lt_s - if - i32.const 21088 - i32.const 21136 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32 + block $__inlined_func$~lib/util/number/itoa32 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4684 + i32.lt_s + if + i32.const 21088 + i32.const 21136 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.eqz if @@ -1885,7 +1888,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 - local.set $0 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -1896,70 +1898,70 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $1 - select local.tee $2 + select local.tee $0 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.get $1 + local.get $2 i32.add local.tee $3 i32.const 1 i32.shl call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + local.get $1 local.get $0 - local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $2 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -1967,8 +1969,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2120,8 +2122,7 @@ i64.shr_u i32.wrap_i64 local.tee $2 - local.set $5 - local.get $2 + local.tee $5 i32.const 100000 i32.lt_u if (result i32) @@ -2338,17 +2339,17 @@ local.get $10 i64.extend_i32_s i64.shl - local.set $1 + local.set $6 local.get $4 i32.const 1 i32.shl i32.const 3454 i32.add - local.tee $8 + local.tee $2 i32.load16_u local.set $5 loop $while-continue|3 - local.get $1 + local.get $6 local.get $3 local.get $0 i64.sub @@ -2364,13 +2365,13 @@ local.get $0 i64.sub local.get $0 - local.get $1 + local.get $6 i64.add - local.tee $6 + local.tee $1 local.get $9 i64.sub i64.gt_u - local.get $6 + local.get $1 local.get $9 i64.lt_u select @@ -2383,13 +2384,13 @@ i32.sub local.set $5 local.get $0 - local.get $1 + local.get $6 i64.add local.set $0 br $while-continue|3 end end - local.get $8 + local.get $2 local.get $5 i32.store16 local.get $4 @@ -2406,11 +2407,11 @@ local.get $6 i64.const 10 i64.mul - local.tee $0 + local.tee $1 local.get $10 i64.extend_i32_s i64.shr_u - local.tee $1 + local.tee $0 local.get $4 i64.extend_i32_s i64.or @@ -2427,7 +2428,7 @@ i32.shl i32.const 3456 i32.add - local.get $1 + local.get $0 i32.wrap_i64 i32.const 65535 i32.and @@ -2440,7 +2441,7 @@ i32.sub local.set $8 local.get $3 - local.get $0 + local.get $1 local.get $12 i64.and local.tee $6 @@ -2463,13 +2464,13 @@ i64.load32_u local.get $9 i64.mul - local.set $1 + local.set $6 local.get $4 i32.const 1 i32.shl i32.const 3454 i32.add - local.tee $8 + local.tee $2 i32.load16_u local.set $5 loop $while-continue|6 @@ -2480,24 +2481,24 @@ i64.le_u i32.const 0 local.get $0 - local.get $1 + local.get $6 i64.lt_u select if (result i32) i32.const 1 - local.get $1 + local.get $6 local.get $0 i64.sub local.get $0 local.get $11 i64.add - local.tee $6 - local.get $1 + local.tee $1 + local.get $6 i64.sub i64.gt_u local.get $1 local.get $6 - i64.gt_u + i64.lt_u select else i32.const 0 @@ -2514,7 +2515,7 @@ br $while-continue|6 end end - local.get $8 + local.get $2 local.get $5 i32.store16 local.get $4 @@ -3424,7 +3425,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) local.get $1 i32.eqz if @@ -3443,18 +3443,18 @@ local.get $0 local.get $1 i32.add - local.tee $3 + local.tee $4 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $3 + local.get $4 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -3471,61 +3471,61 @@ br $for-loop|0 end end - local.get $3 + local.get $4 i32.const 1 i32.shl i32.const 3456 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $4 i32.const 2 i32.add else - local.get $3 + local.get $4 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $4 i32.const 1 i32.shl i32.const 3456 i32.add - local.tee $3 + local.tee $4 i32.const 2 i32.add - local.get $3 + local.get $4 i32.const 0 local.get $1 i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $4 i32.const 46 i32.store16 local.get $0 i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $4 i32.sub - local.tee $3 + local.tee $4 i32.const 1 i32.shl i32.const 3456 @@ -3542,7 +3542,7 @@ local.set $1 loop $for-loop|1 local.get $1 - local.get $3 + local.get $4 i32.lt_s if local.get $1 @@ -3560,7 +3560,7 @@ end end local.get $0 - local.get $3 + local.get $4 i32.add else local.get $0 @@ -3570,13 +3570,14 @@ i32.const 3458 i32.const 101 i32.store16 - local.get $3 + i32.const 3460 + local.get $4 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $3 + local.tee $1 if i32.const 0 local.get $0 @@ -3584,56 +3585,53 @@ local.set $0 end local.get $0 - local.tee $1 + local.get $0 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - i32.const 3460 - local.get $0 - local.get $1 i32.const 1 i32.add local.tee $0 @@ -3641,7 +3639,7 @@ i32.const 3460 i32.const 45 i32.const 43 - local.get $3 + local.get $1 select i32.store16 local.get $0 @@ -3667,16 +3665,16 @@ i32.const 101 i32.store16 offset=2 local.get $1 - local.tee $2 + local.tee $3 i32.const 4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $1 @@ -3684,63 +3682,61 @@ local.set $1 end local.get $1 - local.tee $3 + local.get $1 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.set $3 - local.get $1 - local.get $3 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $3 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select i32.store16 offset=4 local.get $0 @@ -3789,7 +3785,6 @@ (local $3 i64) (local $4 i64) (local $5 i64) - (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3875,36 +3870,36 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $3 + local.tee $2 i64.const 4294967295 i64.and - local.tee $4 + local.tee $3 i64.const 31 i64.shl - local.tee $2 local.set $5 - local.get $3 + local.get $2 i64.const 32 i64.shr_u - local.tee $3 + local.tee $2 i64.const 31 i64.shl - local.tee $6 - local.get $4 + local.get $3 + i64.const 31 + i64.shl + local.get $3 i64.const 10 i64.shl i64.const 32 i64.shr_u - local.get $2 i64.add - local.tee $2 + local.tee $4 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $4 i64.const 4294967295 i64.and - local.get $3 + local.get $2 i64.const 10 i64.shl i64.add @@ -3915,11 +3910,13 @@ i64.add i64.const 1 i64.sub - local.set $2 + local.set $4 + local.get $2 + i64.const 31 + i64.shl local.get $5 i64.const 32 i64.shr_u - local.get $6 i64.add local.get $5 i64.const 4294967295 @@ -3929,31 +3926,31 @@ i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $4 global.get $~lib/util/number/_exp_pow i32.const 2 i32.add + local.get $4 local.get $2 - local.get $3 i64.const 2147483647 i64.mul - local.get $4 + local.get $3 i64.const 2147483647 i64.mul - local.get $4 + local.get $3 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $4 + local.tee $3 i64.const 32 i64.shr_u i64.add - local.get $3 + local.get $2 i64.const 4294966784 i64.mul - local.get $4 + local.get $3 i64.const 4294967295 i64.and i64.add diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 19ea3c5369..2f20828e2a 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1,12 +1,11 @@ (module (type $i32_=>_none (func (param i32))) - (type $none_=>_none (func)) - (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) @@ -73,6 +72,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -80,10 +80,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18156 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -97,7 +97,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -122,19 +122,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1712 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1200 i32.const 1264 @@ -143,7 +145,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1716 @@ -158,28 +160,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) @@ -1299,19 +1301,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1322,13 +1317,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1336,32 +1331,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $0 + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -1377,16 +1372,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1394,7 +1389,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -1402,10 +1397,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -1416,11 +1411,11 @@ unreachable end end - local.get $1 + local.get $2 i32.load i32.const -4 i32.and - local.get $0 + local.get $1 i32.lt_u if i32.const 0 @@ -1430,13 +1425,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $2 + local.tee $3 i32.load local.set $2 - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1452,44 +1448,44 @@ local.get $2 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 + local.get $3 local.get $2 i32.const 2 i32.and - local.get $0 + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $3 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 + local.get $3 local.get $2 i32.const -2 i32.and i32.store - local.get $1 + local.get $3 i32.const 4 i32.add - local.get $1 + local.get $3 i32.load i32.const -4 i32.and @@ -1501,13 +1497,12 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $3 ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $0 i32.const 1073741804 i32.ge_u @@ -1553,13 +1548,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1567,9 +1562,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -1577,30 +1578,31 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $3 + local.tee $4 i32.load offset=8 - local.set $1 + local.set $3 local.get $2 + local.get $4 global.get $~lib/rt/itcms/white - local.get $3 i32.or i32.store offset=4 local.get $2 - local.get $1 + local.tee $1 + local.get $3 i32.store offset=8 - local.get $1 - local.get $1 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $1 i32.or i32.store offset=4 - local.get $3 - local.get $2 + local.get $4 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.load i32.const -4 i32.and @@ -1608,10 +1610,10 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $1 i32.const 20 i32.add - local.tee $3 + local.tee $2 local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 @@ -1623,7 +1625,7 @@ local.get $0 local.get $1 i32.add - local.tee $2 + local.tee $3 i32.const 1 i32.sub i32.const 0 @@ -1638,12 +1640,12 @@ local.get $1 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $3 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $3 i32.const 3 i32.sub i32.const 0 @@ -1655,7 +1657,7 @@ local.get $1 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $3 i32.const 4 i32.sub i32.const 0 @@ -1670,25 +1672,25 @@ i32.sub i32.const 3 i32.and - local.tee $2 + local.tee $3 i32.add local.tee $1 i32.const 0 i32.store local.get $1 local.get $0 - local.get $2 + local.get $3 i32.sub i32.const -4 i32.and - local.tee $2 + local.tee $3 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 @@ -1708,7 +1710,7 @@ i32.sub i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 @@ -1753,7 +1755,7 @@ local.tee $0 i32.add local.set $1 - local.get $2 + local.get $3 local.get $0 i32.sub local.set $0 @@ -1786,7 +1788,7 @@ end end end - local.get $3 + local.get $2 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2713,33 +2715,26 @@ end ) (func $~start - call $start:object-literal - ) - (func $start:object-literal (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 i32.const 1156 @@ -2774,65 +2769,65 @@ i32.store i32.const 1392 global.set $~lib/rt/itcms/fromSpace - local.get $1 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 123 i32.store - local.get $0 + local.get $1 i32.const 1056 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1056 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 + local.get $1 i32.load i32.const 123 i32.ne @@ -2845,15 +2840,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.load offset=4 local.tee $0 - i32.store local.get $1 + i32.load offset=4 + local.tee $1 + i32.store + local.get $0 i32.const 1056 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -2869,312 +2864,43 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT i32.const 8 - call $~lib/rt/tlsf/__alloc - local.tee $6 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $0 i32.const 0 i32.store - local.get $6 + local.get $0 i32.const 0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 123 i32.store global.get $~lib/memory/__stack_pointer - local.tee $0 i32.const 1056 i32.store local.get $0 - i32.const 4 + call $~lib/string/String#substring + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 1052 - i32.load - i32.const 1 - i32.shr_u - local.tee $3 - local.get $3 - select - local.tee $1 - i32.const 5 - local.get $3 - local.get $3 - i32.const 5 - i32.gt_u - select - local.tee $0 - local.get $0 - local.get $1 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $2 - block $__inlined_func$~lib/string/String#substring - local.get $1 - local.get $0 - local.get $0 - local.get $1 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $1 - local.get $2 - i32.sub - local.tee $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1568 - local.set $5 - br $__inlined_func$~lib/string/String#substring - end - i32.const 0 - local.get $3 - i32.const 1 - i32.shl - local.get $1 - i32.eq - local.get $2 - select - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $5 - br $__inlined_func$~lib/string/String#substring - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - local.get $0 - local.set $4 - block $~lib/util/memory/memmove|inlined.0 - local.get $5 - local.tee $0 - local.get $2 - i32.const 1056 - i32.add - local.tee $1 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $0 - i32.sub - local.get $4 - i32.sub - i32.const 0 - local.get $4 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $0 - local.get $1 - local.get $4 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - local.get $1 - i32.lt_u - if - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $0 - i32.const 7 - i32.and - if - local.get $4 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $4 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $1 - i64.load - i64.store - local.get $4 - i32.const 8 - i32.sub - local.set $4 - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $4 - if - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $2 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $while-continue|2 - end - end - else - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $0 - local.get $4 - i32.add - i32.const 7 - i32.and - if - local.get $4 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - i32.add - local.get $1 - local.get $4 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $4 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $4 - i32.const 8 - i32.sub - local.tee $4 - i32.add - local.get $1 - local.get $4 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $4 - if - local.get $0 - local.get $4 - i32.const 1 - i32.sub - local.tee $4 - i32.add - local.get $1 - local.get $4 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $6 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $6 + i64.const 0 + i64.store + local.get $0 i32.load i32.const 123 i32.ne @@ -3188,14 +2914,14 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $6 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $2 i32.store local.get $1 i32.const 1600 i32.store offset=4 - local.get $0 + local.get $2 i32.const 1600 call $~lib/string/String.__eq i32.eqz @@ -3207,7 +2933,7 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3222,7 +2948,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -3485,7 +3211,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -3494,54 +3220,54 @@ i32.const 16 i32.const 5 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $0 f64.const 0 f64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=12 - local.get $2 + local.get $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 1632 i32.store offset=4 - local.get $2 + local.get $0 i32.const 1632 call $~lib/rt/itcms/__link - local.get $2 + local.get $0 f64.const 0 f64.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $2 + local.get $0 i32.load if i32.const 0 @@ -3553,14 +3279,14 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $2 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $2 i32.store local.get $1 i32.const 1632 i32.store offset=4 - local.get $0 + local.get $2 i32.const 1632 call $~lib/string/String.__eq i32.eqz @@ -3572,7 +3298,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 f64.load offset=8 f64.const 0 f64.ne @@ -3597,7 +3323,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -3717,20 +3443,20 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 local.get $0 i32.load - local.tee $1 + local.tee $2 i32.store - local.get $2 + local.get $1 i32.const 1664 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1664 call $~lib/string/String.__eq i32.eqz @@ -3743,15 +3469,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.load offset=4 - local.tee $1 + local.tee $2 i32.store - local.get $2 + local.get $1 i32.const 1696 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1696 call $~lib/string/String.__eq i32.eqz @@ -3897,23 +3623,23 @@ i32.const 0 i32.gt_s if - loop $while-continue|08 + loop $while-continue|0 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|08 + br $while-continue|0 end end end call $~lib/rt/itcms/step drop - loop $while-continue|19 + loop $while-continue|1 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|19 + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -3939,4 +3665,292 @@ call $~lib/builtins/abort unreachable ) + (func $~lib/string/String#substring (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + if + i32.const 18176 + i32.const 18224 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + i32.const 1052 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + local.get $4 + i32.const 0 + i32.gt_s + select + local.tee $5 + i32.const 5 + local.get $4 + local.get $4 + i32.const 5 + i32.gt_s + select + local.tee $0 + local.get $0 + local.get $5 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $3 + local.get $5 + local.get $0 + local.get $0 + local.get $5 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $0 + local.get $3 + i32.sub + local.tee $5 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1568 + return + end + i32.const 0 + local.get $4 + i32.const 1 + i32.shl + local.get $0 + i32.eq + local.get $3 + select + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1056 + return + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + block $~lib/util/memory/memmove|inlined.0 + local.get $4 + local.tee $0 + local.get $3 + i32.const 1056 + i32.add + local.tee $3 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $3 + local.get $0 + i32.sub + local.get $5 + i32.sub + i32.const 0 + local.get $5 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $0 + local.get $3 + local.get $5 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $3 + i32.lt_u + if + local.get $3 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.tee $1 + i32.const 1 + i32.add + local.set $3 + local.get $2 + local.get $1 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $3 + i64.load + i64.store + local.get $5 + i32.const 8 + i32.sub + local.set $5 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $3 + i32.const 8 + i32.add + local.set $3 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $5 + if + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.tee $1 + i32.const 1 + i32.add + local.set $3 + local.get $2 + local.get $1 + i32.load8_u + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + else + local.get $3 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $0 + local.get $5 + i32.add + i32.const 7 + i32.and + if + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $0 + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $5 + i32.const 8 + i32.sub + local.tee $5 + local.get $0 + i32.add + local.get $3 + local.get $5 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $5 + if + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $0 + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + ) ) diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index 8216c35134..5444208333 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -132,6 +132,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -139,10 +140,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17868 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -156,7 +157,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -181,8 +182,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -190,10 +192,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1440 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -202,7 +205,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -217,16 +220,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -234,11 +237,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1218,17 +1221,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1241,16 +1244,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1258,15 +1261,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1293,12 +1296,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1308,7 +1311,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1317,19 +1320,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1355,26 +1358,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1424,11 +1427,11 @@ ) (func $~start (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s @@ -1493,9 +1496,10 @@ local.get $0 global.set $optional-typeparameters/tConcrete global.get $~lib/memory/__stack_pointer + local.tee $0 global.get $optional-typeparameters/tConcrete i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1519,9 +1523,10 @@ local.get $0 global.set $optional-typeparameters/tDerived global.get $~lib/memory/__stack_pointer + local.tee $0 global.get $optional-typeparameters/tDerived i32.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 679ede0cba..924aef45ba 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -209,6 +209,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -216,10 +217,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17916 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -233,7 +234,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -258,8 +259,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -267,10 +269,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1488 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1296 i32.const 1360 @@ -279,7 +282,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -294,16 +297,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -311,11 +314,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1295,17 +1298,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1318,16 +1321,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1335,15 +1338,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1370,12 +1373,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1385,7 +1388,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1394,19 +1397,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1432,26 +1435,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1466,34 +1469,34 @@ local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 4 i32.add - local.tee $0 + local.tee $1 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 ) (func $export/sub (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -1799,11 +1802,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:exports/vehicles.Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1532 i32.lt_s diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index 92939e7d2e..440cf83d6e 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -171,6 +171,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -178,10 +179,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17956 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -195,7 +196,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -220,8 +221,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -229,10 +231,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1536 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1296 i32.const 1360 @@ -241,7 +244,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1540 @@ -256,16 +259,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -273,11 +276,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1240,11 +1243,11 @@ ) (func $~start (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1572 i32.lt_s @@ -1584,8 +1587,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index 50bd0ea2dd..abc4af72cf 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -126,6 +126,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -133,10 +134,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 19732 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -150,7 +151,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -175,19 +176,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 3296 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1280 i32.const 1344 @@ -196,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 3300 @@ -211,28 +214,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1521,8 +1524,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -2575,25 +2578,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3348 - i32.lt_s - if - i32.const 19760 - i32.const 19808 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64 + block $__inlined_func$~lib/util/number/utoa64 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3348 + i32.lt_s + if + i32.const 19760 + i32.const 19808 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i64.eqz if @@ -2602,7 +2605,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1728 - local.set $2 br $__inlined_func$~lib/util/number/utoa64 end local.get $0 @@ -2612,54 +2614,54 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $3 local.tee $1 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.tee $1 + local.tee $3 i32.const 1 i32.shl i32.const 1 @@ -2667,8 +2669,8 @@ local.tee $2 i32.store local.get $2 - local.get $3 local.get $1 + local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -2722,7 +2724,7 @@ i32.add end end - local.tee $1 + local.tee $3 i32.const 1 i32.shl i32.const 1 @@ -2734,7 +2736,7 @@ i64.const 100000000 i64.ge_u if - local.get $1 + local.get $3 i32.const 4 i32.sub local.tee $1 @@ -2751,10 +2753,10 @@ i64.mul i64.sub i32.wrap_i64 - local.tee $3 + local.tee $4 i32.const 10000 i32.rem_u - local.tee $4 + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -2762,7 +2764,7 @@ i32.const 1740 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -2777,15 +2779,15 @@ local.get $1 i32.const 4 i32.sub - local.tee $1 + local.tee $3 i32.const 1 i32.shl local.get $2 i32.add - local.get $3 + local.get $4 i32.const 10000 i32.div_u - local.tee $3 + local.tee $1 i32.const 100 i32.div_u i32.const 2 @@ -2793,7 +2795,7 @@ i32.const 1740 i32.add i64.load32_u - local.get $3 + local.get $1 i32.const 100 i32.rem_u i32.const 2 @@ -2811,15 +2813,15 @@ local.get $2 local.get $0 i32.wrap_i64 - local.get $1 + local.get $3 call $~lib/util/number/utoa32_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -2896,323 +2898,334 @@ i32.const 1376 global.set $~lib/rt/itcms/fromSpace ) - (func $resolve-access/arrayAccess (result i32) + (func $~lib/rt/__newArray (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3348 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $6 + global.get $~lib/memory/__stack_pointer + i32.const 3348 + i32.lt_s + if + i32.const 19760 + i32.const 19808 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + local.set $5 + i32.const 1056 + local.set $2 + block $~lib/util/memory/memmove|inlined.0 + i32.const 8 i32.const 0 - i32.store - local.get $6 - i32.const 4 + call $~lib/rt/itcms/__new + local.tee $4 + local.tee $3 + i32.const 1056 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + i32.const 1048 + local.get $3 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3348 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - i32.const 8 - local.set $7 + i32.const -16 + i32.le_u + if + local.get $3 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 i32.const 1056 - local.set $3 - block $~lib/util/memory/memmove|inlined.0 - i32.const 8 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $4 - local.tee $0 - i32.const 1056 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - i32.const 1048 - local.get $0 - i32.sub - i32.const -16 - i32.le_u - if - local.get $0 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - i32.const 1056 - i32.lt_u + i32.lt_u + if + local.get $3 + i32.const 7 + i32.and + i32.eqz if - local.get $0 - i32.const 7 - i32.and - i32.eqz - if - loop $while-continue|0 - local.get $0 - i32.const 7 - i32.and - if - local.get $7 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.tee $1 - i32.const 1 - i32.add - local.set $3 - local.get $2 - local.get $1 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $7 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $3 - i64.load - i64.store - local.get $7 - i32.const 8 - i32.sub - local.set $7 - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $3 - i32.const 8 - i32.add - local.set $3 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $7 + loop $while-continue|0 + local.get $3 + i32.const 7 + i32.and if - local.get $0 - local.tee $2 + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 i32.const 1 - i32.add - local.set $0 + i32.sub + local.set $5 local.get $3 local.tee $1 i32.const 1 i32.add local.set $3 local.get $2 + local.tee $0 + i32.const 1 + i32.add + local.set $2 local.get $1 + local.get $0 i32.load8_u i32.store8 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $while-continue|2 + br $while-continue|0 end end - else - local.get $0 - i32.const 7 - i32.and - i32.eqz - if - loop $while-continue|3 - local.get $0 - local.get $7 + loop $while-continue|1 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $3 + local.get $2 + i64.load + i64.store + local.get $5 + i32.const 8 + i32.sub + local.set $5 + local.get $3 + i32.const 8 i32.add - i32.const 7 - i32.and - if - local.get $7 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $7 - i32.const 1 - i32.sub - local.tee $7 - i32.add - local.get $7 - i32.const 1056 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $7 + local.set $3 + local.get $2 i32.const 8 - i32.ge_u - if - local.get $0 - local.get $7 - i32.const 8 - i32.sub - local.tee $7 - i32.add - local.get $7 - i32.const 1056 - i32.add - i64.load - i64.store - br $while-continue|4 - end + i32.add + local.set $2 + br $while-continue|1 end end - loop $while-continue|5 - local.get $7 + end + loop $while-continue|2 + local.get $5 + if + local.get $3 + local.tee $1 + i32.const 1 + i32.add + local.set $3 + local.get $2 + local.tee $0 + i32.const 1 + i32.add + local.set $2 + local.get $1 + local.get $0 + i32.load8_u + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + else + local.get $3 + i32.const 7 + i32.and + i32.eqz + if + loop $while-continue|3 + local.get $3 + local.get $5 + i32.add + i32.const 7 + i32.and if - local.get $0 - local.get $7 + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 i32.const 1 i32.sub - local.tee $7 + local.tee $5 + local.get $3 i32.add - local.get $7 + local.get $5 i32.const 1056 i32.add i32.load8_u i32.store8 - br $while-continue|5 + br $while-continue|3 end end + loop $while-continue|4 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $5 + i32.const 8 + i32.sub + local.tee $5 + local.get $3 + i32.add + local.get $5 + i32.const 1056 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $5 + if + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $3 + i32.add + local.get $5 + i32.const 1056 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end end end - local.get $5 - local.get $4 - local.tee $0 - i32.store - i32.const 16 + end + local.get $4 + local.tee $0 + i32.store + i32.const 16 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $3 + local.get $0 + i32.store + local.get $3 + local.set $2 + local.get $0 + local.tee $1 + if + local.get $2 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $1 + i32.const 20 + i32.sub + local.tee $1 + i32.load offset=4 i32.const 3 - call $~lib/rt/itcms/__new - local.tee $3 - local.get $0 - i32.store - local.get $0 + i32.and + i32.eq if - local.get $3 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $0 + local.get $2 i32.const 20 i32.sub - local.tee $2 i32.load offset=4 i32.const 3 i32.and + local.tee $2 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq if - local.get $3 - i32.const 20 - i32.sub - i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + i32.const 0 + local.get $2 i32.const 3 - i32.and - local.tee $1 - global.get $~lib/rt/itcms/white - i32.eqz i32.eq + select if - local.get $2 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 local.get $1 - i32.const 3 - i32.eq - select - if - local.get $2 - call $~lib/rt/itcms/Object#makeGray - end + call $~lib/rt/itcms/Object#makeGray end end end - local.get $3 - local.get $0 - i32.store offset=4 - local.get $3 - i32.const 8 - i32.store offset=8 - local.get $3 - i32.const 1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $3 - i32.store - local.get $3 - i32.load offset=12 - i32.eqz - if - i32.const 1280 - i32.const 1488 - i32.const 107 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.load offset=4 - i64.load - call $~lib/number/U64#toString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 19760 - i32.const 19808 - i32.const 1 + local.get $3 + local.get $0 + i32.store offset=4 + local.get $3 + i32.const 8 + i32.store offset=8 + local.get $3 i32.const 1 - call $~lib/builtins/abort - unreachable + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) + (func $resolve-access/arrayAccess (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3348 + i32.lt_s + if + i32.const 19760 + i32.const 19808 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + call $~lib/rt/__newArray + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eqz + if + i32.const 1280 + i32.const 1488 + i32.const 107 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i64.load + call $~lib/number/U64#toString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $resolve-access/Container#constructor (result i32) (local $0 i32) @@ -3290,11 +3303,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 3348 i32.lt_s @@ -3305,16 +3318,16 @@ i32.store local.get $1 call $resolve-access/Container#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i64.const 1 i64.store block $__inlined_func$~lib/util/number/utoa32 (result i32) - local.get $1 + local.get $0 i64.load i32.wrap_i64 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3326,7 +3339,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3337,7 +3350,8 @@ br $__inlined_func$~lib/util/number/utoa32 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) @@ -3383,22 +3397,22 @@ i32.add end end - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 local.get $1 + local.get $2 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 end global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index b29cfdffc0..d05f0581a9 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -461,6 +461,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -468,10 +469,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 27676 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -485,7 +486,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -510,8 +511,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -519,10 +521,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 11248 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1632 i32.const 1696 @@ -531,7 +534,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 11252 @@ -546,16 +549,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -563,11 +566,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1837,8 +1840,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -2152,25 +2155,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 11292 - i32.lt_s - if - i32.const 27696 - i32.const 27744 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32 + block $__inlined_func$~lib/util/number/itoa32 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 11292 + i32.lt_s + if + i32.const 27696 + i32.const 27744 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.eqz if @@ -2179,7 +2182,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1408 - local.set $0 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -2190,71 +2192,71 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $1 - select local.tee $2 + select local.tee $0 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.get $1 + local.get $2 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + local.get $1 local.get $0 - local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $2 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -2262,8 +2264,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) (local $4 i32) @@ -3856,13 +3858,13 @@ i32.const 0 i32.lt_s local.tee $5 - if + if (result i32) i32.const 0 local.get $1 i32.sub - local.set $1 + else + local.get $1 end - local.get $1 local.tee $3 i32.const 100000 i32.lt_u @@ -3909,9 +3911,9 @@ i32.add end end - local.set $3 - local.get $1 + local.set $1 local.get $3 + local.get $1 i32.const 1 i32.add local.tee $1 @@ -4118,11 +4120,12 @@ (func $start:resolve-binary (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer + (local $2 i32) block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 11292 i32.lt_s @@ -5070,12 +5073,12 @@ local.get $0 global.set $resolve-binary/foo global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 + local.get $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 10880 @@ -5099,20 +5102,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 10912 i32.store offset=8 - local.get $0 + local.get $2 i32.const 10912 i32.store - local.get $0 + local.get $2 i32.const 10912 i32.store offset=4 i32.const 10912 @@ -5128,20 +5132,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 10944 i32.store offset=8 - local.get $0 + local.get $2 i32.const 10944 i32.store - local.get $0 + local.get $2 i32.const 10944 i32.store offset=4 i32.const 10944 @@ -5157,20 +5162,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 10976 i32.store offset=8 - local.get $0 + local.get $2 i32.const 10976 i32.store - local.get $0 + local.get $2 i32.const 10976 i32.store offset=4 i32.const 10976 @@ -5186,20 +5192,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 11008 i32.store offset=8 - local.get $0 + local.get $2 i32.const 11008 i32.store - local.get $0 + local.get $2 i32.const 11008 i32.store offset=4 i32.const 11008 @@ -5215,20 +5222,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 11040 i32.store offset=8 - local.get $0 + local.get $2 i32.const 11040 i32.store - local.get $0 + local.get $2 i32.const 11040 i32.store offset=4 i32.const 11040 @@ -5244,20 +5252,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 11072 i32.store offset=8 - local.get $0 + local.get $2 i32.const 11072 i32.store - local.get $0 + local.get $2 i32.const 11072 i32.store offset=4 i32.const 11072 @@ -5273,20 +5282,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 11104 i32.store offset=8 - local.get $0 + local.get $2 i32.const 11104 i32.store - local.get $0 + local.get $2 i32.const 11104 i32.store offset=4 i32.const 11104 @@ -5302,20 +5312,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 11136 i32.store offset=8 - local.get $0 + local.get $2 i32.const 11136 i32.store - local.get $0 + local.get $2 i32.const 11136 i32.store offset=4 i32.const 11136 @@ -5331,20 +5342,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 11168 i32.store offset=8 - local.get $0 + local.get $2 i32.const 11168 i32.store - local.get $0 + local.get $2 i32.const 11168 i32.store offset=4 i32.const 11168 @@ -5360,20 +5372,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 11200 i32.store offset=8 - local.get $0 + local.get $2 i32.const 11200 i32.store - local.get $0 + local.get $2 i32.const 11200 i32.store offset=4 i32.const 11200 @@ -5389,20 +5402,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-binary/foo + local.tee $2 local.tee $1 + global.get $resolve-binary/foo + local.tee $0 i32.store offset=12 - local.get $0 local.get $1 - i32.store offset=16 local.get $0 + i32.store offset=16 + local.get $2 i32.const 11232 i32.store offset=8 - local.get $0 + local.get $2 i32.const 11232 i32.store - local.get $0 + local.get $2 i32.const 11232 i32.store offset=4 i32.const 11232 @@ -5422,21 +5436,23 @@ call $resolve-binary/Bar#constructor global.set $resolve-binary/bar2 global.get $~lib/memory/__stack_pointer + local.tee $1 local.tee $0 global.get $resolve-binary/bar i32.store offset=4 local.get $0 global.get $resolve-binary/bar2 - local.tee $1 + local.tee $2 + local.tee $0 i32.store offset=8 - local.get $1 - global.set $resolve-binary/bar local.get $0 + global.set $resolve-binary/bar + local.get $1 global.get $resolve-binary/bar local.tee $0 i32.store local.get $0 - local.get $1 + local.get $2 i32.ne if i32.const 0 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index eae73f314d..55eb8b34cd 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -178,6 +178,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -185,10 +186,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 21236 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -202,7 +203,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -227,19 +228,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 4800 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1360 i32.const 1424 @@ -248,7 +251,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 4804 @@ -263,28 +266,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1547,7 +1550,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1575,11 +1578,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1598,9 +1601,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1616,7 +1619,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1631,18 +1634,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1653,7 +1656,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1667,13 +1670,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1686,89 +1692,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1776,7 +1782,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1919,8 +1925,7 @@ i64.shr_u i32.wrap_i64 local.tee $2 - local.set $5 - local.get $2 + local.tee $5 i32.const 100000 i32.lt_u if (result i32) @@ -2143,7 +2148,7 @@ i32.shl i32.const 1774 i32.add - local.tee $8 + local.tee $7 i32.load16_u local.set $5 loop $while-continue|3 @@ -2188,7 +2193,7 @@ br $while-continue|3 end end - local.get $8 + local.get $7 local.get $5 i32.store16 local.get $4 @@ -2268,7 +2273,7 @@ i32.shl i32.const 1774 i32.add - local.tee $8 + local.tee $7 i32.load16_u local.set $5 loop $while-continue|6 @@ -2313,7 +2318,7 @@ br $while-continue|6 end end - local.get $8 + local.get $7 local.get $5 i32.store16 local.get $4 @@ -3326,8 +3331,6 @@ (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) local.get $2 i32.eqz if @@ -3428,7 +3431,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $5 + local.tee $2 i32.const 1 i32.shl local.get $0 @@ -3442,28 +3445,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $2 + local.set $4 loop $for-loop|1 local.get $2 - local.get $5 - i32.lt_s + local.get $4 + i32.gt_s if - local.get $2 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|1 end end local.get $1 - local.get $5 + local.get $2 i32.add else local.get $1 @@ -3491,6 +3494,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -3537,12 +3541,9 @@ i32.add end end - local.set $1 - local.get $0 - local.get $1 i32.const 1 i32.add - local.tee $0 + local.tee $1 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -3550,7 +3551,7 @@ local.get $2 select i32.store16 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.add else @@ -3586,7 +3587,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -3594,6 +3595,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -3640,21 +3642,18 @@ i32.add end end - local.set $2 - local.get $0 - local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $2 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select i32.store16 offset=4 - local.get $0 local.get $1 + local.get $2 i32.add i32.const 2 i32.add @@ -3948,25 +3947,25 @@ (local $1 f64) (local $2 i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4852 - i32.lt_s - if - i32.const 21264 - i32.const 21312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/dtoa + block $__inlined_func$~lib/util/number/dtoa (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4852 + i32.lt_s + if + i32.const 21264 + i32.const 21312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 f64.promote_f32 local.tee $1 @@ -3978,7 +3977,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1632 - local.set $2 br $__inlined_func$~lib/util/number/dtoa end local.get $1 @@ -3996,7 +3994,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1664 - local.set $2 br $__inlined_func$~lib/util/number/dtoa end global.get $~lib/memory/__stack_pointer @@ -4009,30 +4006,29 @@ f64.const 0 f64.lt select - local.set $2 br $__inlined_func$~lib/util/number/dtoa end local.get $1 call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 - i32.const 1776 local.get $3 + i32.const 1776 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 end - local.get $2 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4226,46 +4222,47 @@ end global.get $~lib/memory/__stack_pointer local.get $1 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add @@ -4320,11 +4317,11 @@ (func $start:resolve-elementaccess (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4852 i32.lt_s diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index 445a7cab22..701c396e52 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -160,6 +160,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -167,10 +168,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 19844 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -184,7 +185,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -209,8 +210,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -218,10 +220,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 3424 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1648 i32.const 1712 @@ -230,7 +233,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3428 @@ -245,16 +248,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -262,11 +265,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1312,8 +1315,8 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1327,7 +1330,7 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $1 global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -1335,7 +1338,7 @@ end global.get $~lib/rt/tlsf/ROOT local.tee $5 - local.get $2 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1346,13 +1349,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1360,29 +1363,29 @@ i32.const 4 i32.sub end - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz if memory.size local.tee $4 - local.get $2 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $1 i32.add else - local.get $2 + local.get $1 end i32.const 4 local.get $5 @@ -1427,7 +1430,7 @@ i32.shl call $~lib/rt/tlsf/addMemory local.get $5 - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz @@ -1444,7 +1447,7 @@ i32.load i32.const -4 i32.and - local.get $2 + local.get $1 i32.lt_u if i32.const 0 @@ -1460,7 +1463,7 @@ local.get $3 i32.load local.set $4 - local.get $2 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1476,9 +1479,9 @@ local.get $4 i32.const -4 i32.and - local.get $2 + local.get $1 i32.sub - local.tee $1 + local.tee $2 i32.const 16 i32.ge_u if @@ -1486,23 +1489,23 @@ local.get $4 i32.const 2 i32.and - local.get $2 + local.get $1 i32.or i32.store - local.get $2 + local.get $1 local.get $3 i32.const 4 i32.add i32.add - local.tee $2 - local.get $1 + local.tee $1 + local.get $2 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $5 - local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $3 @@ -1518,8 +1521,8 @@ i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and @@ -1532,26 +1535,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 + local.get $1 global.get $~lib/rt/itcms/white - local.get $2 i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1567,18 +1570,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1587,18 +1590,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1607,10 +1610,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1619,38 +1622,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $2 i32.const 0 i32.store - local.get $1 - local.get $0 local.get $2 + local.get $0 + local.get $1 i32.sub i32.const -4 i32.and - local.tee $2 + local.tee $1 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 local.get $0 @@ -1663,20 +1666,20 @@ i32.sub i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store offset=12 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 0 i32.store offset=20 - local.get $1 + local.get $2 i32.const 0 i32.store offset=24 local.get $0 @@ -1699,16 +1702,16 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 4 i32.and i32.const 24 i32.add local.tee $0 i32.add - local.set $1 - local.get $2 + local.set $2 + local.get $1 local.get $0 i32.sub local.set $0 @@ -1717,26 +1720,26 @@ i32.const 32 i32.ge_u if - local.get $1 + local.get $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i64.const 0 i64.store offset=16 - local.get $1 + local.get $2 i64.const 0 i64.store offset=24 local.get $0 i32.const 32 i32.sub local.set $0 - local.get $1 + local.get $2 i32.const 32 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end @@ -1857,7 +1860,7 @@ i32.const 1200 i32.load call_indirect $0 (type $i32_=>_i32) - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1870,7 +1873,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa32 - local.get $2 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -1878,74 +1881,74 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1424 - local.set $2 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end i32.const 0 - local.get $2 + local.get $1 i32.sub - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 31 i32.shr_u - local.tee $3 + local.tee $4 select local.tee $0 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.get $3 + local.get $4 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.shl call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $while-continue|0 local.get $0 @@ -1955,20 +1958,20 @@ local.get $0 i32.const 10000 i32.rem_u - local.set $4 + local.set $3 local.get $0 i32.const 10000 i32.div_u local.set $0 - local.get $1 + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $4 + local.get $3 i32.const 100 i32.div_u i32.const 2 @@ -1976,7 +1979,7 @@ i32.const 1836 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -1995,13 +1998,13 @@ i32.const 100 i32.ge_u if - local.get $1 + local.get $2 i32.const 2 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add local.get $0 i32.const 100 @@ -2021,12 +2024,12 @@ i32.const 10 i32.ge_u if - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add local.get $0 i32.const 2 @@ -2036,21 +2039,21 @@ i32.load i32.store else - local.get $1 + local.get $2 i32.const 1 i32.sub i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add local.get $0 i32.const 48 i32.add i32.store16 end - local.get $3 + local.get $4 if - local.get $2 + local.get $1 i32.const 45 i32.store16 end @@ -2061,31 +2064,31 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $2 + local.get $1 i32.store local.get $0 i32.const 3408 i32.store offset=4 block $__inlined_func$~lib/string/String.__eq (result i32) i32.const 1 - local.get $2 + local.get $1 i32.const 3408 i32.eq br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $2 + local.get $1 i32.eqz br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $0 + local.tee $2 i32.const 3404 i32.load i32.const 1 @@ -2095,36 +2098,38 @@ drop block $__inlined_func$~lib/util/string/compareImpl (result i32) i32.const 3408 - local.set $3 - local.get $2 + local.set $4 + local.get $1 + local.tee $0 i32.const 7 i32.and i32.const 1 - local.get $0 + local.get $2 + local.tee $1 i32.const 4 i32.ge_u select i32.eqz if loop $do-continue|0 - local.get $2 + local.get $0 i64.load - local.get $3 + local.get $4 i64.load i64.eq if - local.get $2 + local.get $0 i32.const 8 i32.add - local.set $2 - local.get $3 + local.set $0 + local.get $4 i32.const 8 i32.add - local.set $3 - local.get $0 + local.set $4 + local.get $1 i32.const 4 i32.sub - local.tee $0 + local.tee $1 i32.const 4 i32.ge_u br_if $do-continue|0 @@ -2132,34 +2137,34 @@ end end loop $while-continue|1 - local.get $0 - local.tee $1 + local.get $1 + local.tee $2 i32.const 1 i32.sub - local.set $0 - local.get $1 + local.set $1 + local.get $2 if - local.get $2 + local.get $0 i32.load16_u - local.tee $1 - local.get $3 + local.tee $2 + local.get $4 i32.load16_u - local.tee $4 + local.tee $3 i32.ne if - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $2 + local.get $0 i32.const 2 i32.add - local.set $2 - local.get $3 + local.set $0 + local.get $4 i32.const 2 i32.add - local.set $3 + local.set $4 br $while-continue|1 end end diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index 8916357988..be2a5e5b11 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -129,6 +129,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -136,10 +137,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17876 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -153,7 +154,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -178,8 +179,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -187,10 +189,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1440 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -199,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -214,16 +217,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -231,11 +234,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1215,17 +1218,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1238,16 +1241,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1255,15 +1258,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1290,12 +1293,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1305,7 +1308,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1314,19 +1317,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1352,26 +1355,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1458,11 +1461,11 @@ ) (func $export:resolve-nested/Outer.InnerClass#constructor (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1492 i32.lt_s @@ -1511,11 +1514,11 @@ ) (func $export:resolve-nested/Outer.Inner.EvenInnerClass#constructor (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1492 i32.lt_s diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index aa996c86d2..994bf8daa0 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -125,6 +125,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -132,10 +133,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17860 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -149,7 +150,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -174,8 +175,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -183,10 +185,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1440 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -195,7 +198,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -210,16 +213,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -227,11 +230,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1465,8 +1468,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index a90ff9db80..20b85abf8c 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -160,6 +160,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -167,10 +168,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 20100 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -184,7 +185,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -209,8 +210,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -218,10 +220,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 3680 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1472 i32.const 1536 @@ -230,7 +233,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3684 @@ -245,16 +248,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -262,11 +265,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1536,8 +1539,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -1748,25 +1751,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3716 - i32.lt_s - if - i32.const 20128 - i32.const 20176 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32 + block $__inlined_func$~lib/util/number/itoa32 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3716 + i32.lt_s + if + i32.const 20128 + i32.const 20176 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.eqz if @@ -1775,9 +1778,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 - local.set $1 br $__inlined_func$~lib/util/number/itoa32 end + global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 i32.sub @@ -1788,49 +1791,47 @@ local.tee $3 select local.tee $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -1956,8 +1957,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $1 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2110,11 +2111,11 @@ (func $start:resolve-propertyaccess (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 3716 i32.lt_s diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index aa987b9856..3f38006c58 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -164,6 +164,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -171,10 +172,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 21028 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -188,7 +189,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -213,8 +214,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -222,10 +224,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 4608 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1472 i32.const 1536 @@ -234,7 +237,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 4612 @@ -249,16 +252,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -266,11 +269,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1316,8 +1319,8 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1331,7 +1334,7 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $1 global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -1339,7 +1342,7 @@ end global.get $~lib/rt/tlsf/ROOT local.tee $5 - local.get $2 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1350,13 +1353,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1364,29 +1367,29 @@ i32.const 4 i32.sub end - local.tee $2 + local.tee $1 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz if memory.size local.tee $4 - local.get $2 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $1 i32.add else - local.get $2 + local.get $1 end i32.const 4 local.get $5 @@ -1431,7 +1434,7 @@ i32.shl call $~lib/rt/tlsf/addMemory local.get $5 - local.get $2 + local.get $1 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz @@ -1448,7 +1451,7 @@ i32.load i32.const -4 i32.and - local.get $2 + local.get $1 i32.lt_u if i32.const 0 @@ -1464,7 +1467,7 @@ local.get $3 i32.load local.set $4 - local.get $2 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1480,9 +1483,9 @@ local.get $4 i32.const -4 i32.and - local.get $2 + local.get $1 i32.sub - local.tee $1 + local.tee $2 i32.const 16 i32.ge_u if @@ -1490,23 +1493,23 @@ local.get $4 i32.const 2 i32.and - local.get $2 + local.get $1 i32.or i32.store - local.get $2 + local.get $1 local.get $3 i32.const 4 i32.add i32.add - local.tee $2 - local.get $1 + local.tee $1 + local.get $2 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $5 - local.get $2 + local.get $1 call $~lib/rt/tlsf/insertBlock else local.get $3 @@ -1522,8 +1525,8 @@ i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.load i32.const -3 i32.and @@ -1536,26 +1539,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $1 i32.load offset=8 - local.set $1 + local.set $2 local.get $3 + local.get $1 global.get $~lib/rt/itcms/white - local.get $2 i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $1 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1571,18 +1574,18 @@ i32.const 20 i32.add local.tee $3 - local.set $1 + local.set $2 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.sub i32.const 0 @@ -1591,18 +1594,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=2 - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $2 + local.get $1 i32.const 3 i32.sub i32.const 0 @@ -1611,10 +1614,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store8 offset=3 - local.get $2 + local.get $1 i32.const 4 i32.sub i32.const 0 @@ -1623,38 +1626,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 - local.get $1 + local.get $2 i32.sub i32.const 3 i32.and - local.tee $2 - i32.add local.tee $1 + i32.add + local.tee $2 i32.const 0 i32.store - local.get $1 - local.get $0 local.get $2 + local.get $0 + local.get $1 i32.sub i32.const -4 i32.and - local.tee $2 + local.tee $1 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 local.get $0 @@ -1667,20 +1670,20 @@ i32.sub i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $1 + local.get $2 i32.const 0 i32.store offset=12 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 0 i32.store offset=20 - local.get $1 + local.get $2 i32.const 0 i32.store offset=24 local.get $0 @@ -1703,16 +1706,16 @@ i32.sub i32.const 0 i32.store - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 4 i32.and i32.const 24 i32.add local.tee $0 i32.add - local.set $1 - local.get $2 + local.set $2 + local.get $1 local.get $0 i32.sub local.set $0 @@ -1721,26 +1724,26 @@ i32.const 32 i32.ge_u if - local.get $1 + local.get $2 i64.const 0 i64.store - local.get $1 + local.get $2 i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i64.const 0 i64.store offset=16 - local.get $1 + local.get $2 i64.const 0 i64.store offset=24 local.get $0 i32.const 32 i32.sub local.set $0 - local.get $1 + local.get $2 i32.const 32 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end @@ -2001,8 +2004,7 @@ i64.shr_u i32.wrap_i64 local.tee $2 - local.set $5 - local.get $2 + local.tee $5 i32.const 100000 i32.lt_u if (result i32) @@ -2219,17 +2221,17 @@ local.get $10 i64.extend_i32_s i64.shl - local.set $1 + local.set $6 local.get $4 i32.const 1 i32.shl i32.const 3470 i32.add - local.tee $8 + local.tee $2 i32.load16_u local.set $5 loop $while-continue|3 - local.get $1 + local.get $6 local.get $3 local.get $0 i64.sub @@ -2245,13 +2247,13 @@ local.get $0 i64.sub local.get $0 - local.get $1 + local.get $6 i64.add - local.tee $6 + local.tee $1 local.get $9 i64.sub i64.gt_u - local.get $6 + local.get $1 local.get $9 i64.lt_u select @@ -2264,13 +2266,13 @@ i32.sub local.set $5 local.get $0 - local.get $1 + local.get $6 i64.add local.set $0 br $while-continue|3 end end - local.get $8 + local.get $2 local.get $5 i32.store16 local.get $4 @@ -2287,11 +2289,11 @@ local.get $6 i64.const 10 i64.mul - local.tee $0 + local.tee $1 local.get $10 i64.extend_i32_s i64.shr_u - local.tee $1 + local.tee $0 local.get $4 i64.extend_i32_s i64.or @@ -2308,7 +2310,7 @@ i32.shl i32.const 3472 i32.add - local.get $1 + local.get $0 i32.wrap_i64 i32.const 65535 i32.and @@ -2321,7 +2323,7 @@ i32.sub local.set $8 local.get $3 - local.get $0 + local.get $1 local.get $12 i64.and local.tee $6 @@ -2344,13 +2346,13 @@ i64.load32_u local.get $9 i64.mul - local.set $1 + local.set $6 local.get $4 i32.const 1 i32.shl i32.const 3470 i32.add - local.tee $8 + local.tee $2 i32.load16_u local.set $5 loop $while-continue|6 @@ -2361,24 +2363,24 @@ i64.le_u i32.const 0 local.get $0 - local.get $1 + local.get $6 i64.lt_u select if (result i32) i32.const 1 - local.get $1 + local.get $6 local.get $0 i64.sub local.get $0 local.get $11 i64.add - local.tee $6 - local.get $1 + local.tee $1 + local.get $6 i64.sub i64.gt_u local.get $1 local.get $6 - i64.gt_u + i64.lt_u select else i32.const 0 @@ -2395,7 +2397,7 @@ br $while-continue|6 end end - local.get $8 + local.get $2 local.get $5 i32.store16 local.get $4 @@ -3305,7 +3307,6 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) local.get $1 i32.eqz if @@ -3324,18 +3325,18 @@ local.get $0 local.get $1 i32.add - local.tee $3 + local.tee $4 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $3 + local.get $4 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if local.get $0 @@ -3352,61 +3353,61 @@ br $for-loop|0 end end - local.get $3 + local.get $4 i32.const 1 i32.shl i32.const 3472 i32.add i32.const 3145774 i32.store - local.get $3 + local.get $4 i32.const 2 i32.add else - local.get $3 + local.get $4 i32.const 21 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select if (result i32) - local.get $3 + local.get $4 i32.const 1 i32.shl i32.const 3472 i32.add - local.tee $3 + local.tee $4 i32.const 2 i32.add - local.get $3 + local.get $4 i32.const 0 local.get $1 i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $4 i32.const 46 i32.store16 local.get $0 i32.const 1 i32.add else - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.const 0 - local.get $3 + local.get $4 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $3 + local.get $4 i32.sub - local.tee $3 + local.tee $4 i32.const 1 i32.shl i32.const 3472 @@ -3423,7 +3424,7 @@ local.set $1 loop $for-loop|1 local.get $1 - local.get $3 + local.get $4 i32.lt_s if local.get $1 @@ -3441,7 +3442,7 @@ end end local.get $0 - local.get $3 + local.get $4 i32.add else local.get $0 @@ -3451,13 +3452,14 @@ i32.const 3474 i32.const 101 i32.store16 - local.get $3 + i32.const 3476 + local.get $4 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $3 + local.tee $1 if i32.const 0 local.get $0 @@ -3465,56 +3467,53 @@ local.set $0 end local.get $0 - local.tee $1 + local.get $0 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.set $1 - i32.const 3476 - local.get $0 - local.get $1 i32.const 1 i32.add local.tee $0 @@ -3522,7 +3521,7 @@ i32.const 3476 i32.const 45 i32.const 43 - local.get $3 + local.get $1 select i32.store16 local.get $0 @@ -3548,16 +3547,16 @@ i32.const 101 i32.store16 offset=2 local.get $1 - local.tee $2 + local.tee $3 i32.const 4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $1 @@ -3565,63 +3564,61 @@ local.set $1 end local.get $1 - local.tee $3 + local.get $1 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.set $3 - local.get $1 - local.get $3 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $3 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select i32.store16 offset=4 local.get $0 @@ -3693,16 +3690,15 @@ (local $3 i64) (local $4 i64) (local $5 i64) - (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 4644 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3746,7 +3742,7 @@ global.get $~lib/memory/__stack_pointer i32.const 4644 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -3790,7 +3786,7 @@ global.get $~lib/memory/__stack_pointer i32.const 4644 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -3803,36 +3799,36 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $3 + local.tee $2 i64.const 4294967295 i64.and - local.tee $4 + local.tee $3 i64.const 31 i64.shl - local.tee $2 local.set $5 - local.get $3 + local.get $2 i64.const 32 i64.shr_u - local.tee $3 + local.tee $2 i64.const 31 i64.shl - local.tee $6 - local.get $4 + local.get $3 + i64.const 31 + i64.shl + local.get $3 i64.const 10 i64.shl i64.const 32 i64.shr_u - local.get $2 i64.add - local.tee $2 + local.tee $4 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $4 i64.const 4294967295 i64.and - local.get $3 + local.get $2 i64.const 10 i64.shl i64.add @@ -3843,11 +3839,13 @@ i64.add i64.const 1 i64.sub - local.set $2 + local.set $4 + local.get $2 + i64.const 31 + i64.shl local.get $5 i64.const 32 i64.shr_u - local.get $6 i64.add local.get $5 i64.const 4294967295 @@ -3857,31 +3855,31 @@ i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $4 global.get $~lib/util/number/_exp_pow i32.const 1 i32.add + local.get $4 local.get $2 - local.get $3 i64.const 2147483647 i64.mul - local.get $4 + local.get $3 i64.const 2147483647 i64.mul - local.get $4 + local.get $3 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $4 + local.tee $3 i64.const 32 i64.shr_u i64.add - local.get $3 + local.get $2 i64.const 4294966784 i64.mul - local.get $4 + local.get $3 i64.const 4294967295 i64.and i64.add diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 8856bdb4eb..02ff1cc319 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -180,6 +180,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -187,10 +188,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 20156 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -204,7 +205,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -229,8 +230,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -238,10 +240,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 3728 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1472 i32.const 1536 @@ -250,7 +253,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3732 @@ -265,16 +268,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -282,11 +285,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1556,8 +1559,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -1768,25 +1771,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3772 - i32.lt_s - if - i32.const 20176 - i32.const 20224 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32 + block $__inlined_func$~lib/util/number/itoa32 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3772 + i32.lt_s + if + i32.const 20176 + i32.const 20224 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.eqz if @@ -1795,9 +1798,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 - local.set $1 br $__inlined_func$~lib/util/number/itoa32 end + global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 i32.sub @@ -1808,49 +1811,47 @@ local.tee $3 select local.tee $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -1976,8 +1977,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $1 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2133,11 +2134,12 @@ (func $start:resolve-unary (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer + (local $2 i32) block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 3772 i32.lt_s @@ -2280,17 +2282,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 3424 i32.const 3392 global.get $resolve-unary/a select - local.tee $1 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 3424 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3424 call $~lib/string/String.__eq i32.eqz @@ -2303,17 +2305,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 3392 i32.const 3424 global.get $resolve-unary/a select - local.tee $1 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 3392 i32.store offset=4 - local.get $1 + local.get $0 i32.const 3392 call $~lib/string/String.__eq i32.eqz @@ -2428,15 +2430,16 @@ local.get $0 global.set $resolve-unary/foo global.get $~lib/memory/__stack_pointer + local.tee $1 global.get $resolve-unary/foo i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 3488 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 3488 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 3488 i32.store offset=4 i32.const 3488 @@ -2452,16 +2455,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $resolve-unary/foo i32.store offset=12 - local.get $0 + local.get $1 i32.const 3520 i32.store offset=8 - local.get $0 + local.get $1 i32.const 3520 i32.store - local.get $0 + local.get $1 i32.const 3520 i32.store offset=4 i32.const 3520 @@ -2477,13 +2480,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-unary/foo local.tee $1 + global.get $resolve-unary/foo + local.tee $0 i32.store offset=4 - local.get $1 - global.set $resolve-unary/foo local.get $0 + global.set $resolve-unary/foo + local.get $1 global.get $resolve-unary/foo local.tee $0 i32.store @@ -2499,13 +2502,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-unary/foo local.tee $1 + global.get $resolve-unary/foo + local.tee $0 i32.store offset=4 - local.get $1 - global.set $resolve-unary/foo local.get $0 + global.set $resolve-unary/foo + local.get $1 global.get $resolve-unary/foo local.tee $0 i32.store @@ -2521,16 +2524,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $resolve-unary/foo i32.store offset=12 - local.get $0 + local.get $1 i32.const 3552 i32.store offset=8 - local.get $0 + local.get $1 i32.const 3552 i32.store - local.get $0 + local.get $1 i32.const 3552 i32.store offset=4 i32.const 3552 @@ -2546,16 +2549,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $resolve-unary/foo i32.store offset=12 - local.get $0 + local.get $1 i32.const 3584 i32.store offset=8 - local.get $0 + local.get $1 i32.const 3584 i32.store - local.get $0 + local.get $1 i32.const 3584 i32.store offset=4 i32.const 3584 @@ -2637,15 +2640,16 @@ local.get $0 global.set $resolve-unary/bar global.get $~lib/memory/__stack_pointer + local.tee $1 global.get $resolve-unary/bar i32.store offset=12 - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 3616 i32.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 3616 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 3616 i32.store offset=4 i32.const 3616 @@ -2661,16 +2665,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $resolve-unary/bar i32.store offset=12 - local.get $0 + local.get $1 i32.const 3648 i32.store offset=8 - local.get $0 + local.get $1 i32.const 3648 i32.store - local.get $0 + local.get $1 i32.const 3648 i32.store offset=4 i32.const 3648 @@ -2686,20 +2690,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-unary/bar local.tee $1 + local.tee $2 + global.get $resolve-unary/bar + local.tee $0 i32.store + local.get $2 local.get $0 - local.get $1 i32.store offset=12 - local.get $0 + local.get $1 i32.const 3680 i32.store offset=8 - local.get $0 + local.get $1 i32.const 3680 i32.store - local.get $0 + local.get $1 i32.const 3680 i32.store offset=4 i32.const 3680 @@ -2715,20 +2720,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $resolve-unary/bar local.tee $1 + local.tee $2 + global.get $resolve-unary/bar + local.tee $0 i32.store + local.get $2 local.get $0 - local.get $1 i32.store offset=12 - local.get $0 + local.get $1 i32.const 3712 i32.store offset=8 - local.get $0 + local.get $1 i32.const 3712 i32.store - local.get $0 + local.get $1 i32.const 3712 i32.store offset=4 i32.const 3712 diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index 520c7591bc..296e0db39e 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -123,6 +123,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -130,10 +131,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17908 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -147,7 +148,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -172,8 +173,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -181,10 +183,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1488 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -193,7 +196,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -208,16 +211,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -225,11 +228,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1417,8 +1420,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 6b303de27f..859ab38c35 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -163,6 +163,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -170,10 +171,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17940 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -187,7 +188,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -212,8 +213,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -221,10 +223,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1504 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -233,7 +236,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1508 @@ -248,16 +251,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -265,11 +268,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1249,17 +1252,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1272,16 +1275,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1289,15 +1292,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1324,12 +1327,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1339,7 +1342,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1348,19 +1351,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1386,26 +1389,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index 1fe41540de..4ebea25e78 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -168,19 +168,21 @@ local.get $0 call $~lib/rt/itcms/Object#unlink global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1568 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -189,7 +191,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1572 @@ -204,28 +206,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1514,8 +1516,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -1811,8 +1813,8 @@ i32.load offset=8 local.set $1 local.get $0 - global.get $~lib/rt/itcms/white local.get $2 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/rt/runtime-minimal-export.optimized.wat b/tests/compiler/rt/runtime-minimal-export.optimized.wat index a2c0f41a79..b40a5acab2 100644 --- a/tests/compiler/rt/runtime-minimal-export.optimized.wat +++ b/tests/compiler/rt/runtime-minimal-export.optimized.wat @@ -777,15 +777,15 @@ local.get $0 i32.const 16 i32.add - local.set $3 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 - local.get $3 + local.tee $6 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -796,13 +796,13 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $3 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -810,34 +810,34 @@ i32.const 4 i32.sub end - local.tee $3 - call $~lib/rt/tlsf/searchBlock local.tee $2 + call $~lib/rt/tlsf/searchBlock + local.tee $4 i32.eqz if memory.size - local.tee $4 - local.get $3 + local.tee $5 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $3 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $3 + local.get $2 i32.add else - local.get $3 + local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -851,16 +851,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $2 - local.get $2 - local.get $4 + local.tee $3 + local.get $3 + local.get $5 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $2 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -868,18 +868,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 - local.get $3 + local.get $6 + local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $4 i32.eqz if i32.const 0 @@ -890,11 +890,11 @@ unreachable end end - local.get $2 + local.get $4 i32.load i32.const -4 i32.and - local.get $3 + local.get $2 i32.lt_u if i32.const 0 @@ -904,12 +904,15 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock local.get $2 + local.set $3 + local.get $4 + local.tee $2 i32.load - local.set $4 + local.set $5 local.get $3 i32.const 4 i32.add @@ -923,17 +926,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if local.get $2 - local.get $4 + local.get $5 i32.const 2 i32.and local.get $3 @@ -945,18 +948,18 @@ i32.add i32.add local.tee $3 - local.get $6 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 + local.get $6 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $4 + local.get $5 i32.const -2 i32.and i32.store @@ -986,8 +989,8 @@ i32.load offset=8 local.set $1 local.get $2 - global.get $~lib/rt/tcms/white local.get $0 + global.get $~lib/rt/tcms/white i32.or i32.store offset=4 local.get $2 @@ -1151,8 +1154,8 @@ i32.load offset=8 local.set $1 local.get $0 - global.get $~lib/rt/tcms/white local.get $2 + global.get $~lib/rt/tcms/white i32.or i32.store offset=4 local.get $0 @@ -1402,9 +1405,9 @@ i32.load offset=8 local.set $1 local.get $0 + local.get $2 global.get $~lib/rt/tcms/white i32.eqz - local.get $2 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 7fab83c9f5..67327f682d 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -2,10 +2,10 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $none_=>_none (func)) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) @@ -1727,19 +1727,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1750,13 +1743,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1764,32 +1757,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $0 + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -1805,16 +1798,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1822,7 +1815,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -1830,10 +1823,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -1844,11 +1837,11 @@ unreachable end end - local.get $1 + local.get $2 i32.load i32.const -4 i32.and - local.get $0 + local.get $1 i32.lt_u if i32.const 0 @@ -1858,13 +1851,14 @@ call $~lib/wasi/index/abort unreachable end - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $2 + local.tee $3 i32.load local.set $2 - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1880,44 +1874,44 @@ local.get $2 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 + local.get $3 local.get $2 i32.const 2 i32.and - local.get $0 + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $3 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 + local.get $3 local.get $2 i32.const -2 i32.and i32.store - local.get $1 + local.get $3 i32.const 4 i32.add - local.get $1 + local.get $3 i32.load i32.const -4 i32.and @@ -1929,9 +1923,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $3 ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -1990,10 +1982,10 @@ (local $4 i32) (local $5 i32) i32.const -1 - local.set $2 - i32.const -1 local.set $3 i32.const -1 + local.set $2 + i32.const -1 local.set $4 block $break|0 block $case4|0 @@ -2018,14 +2010,14 @@ end local.get $1 i32.load16_u offset=4 - local.tee $3 + local.tee $2 i32.const 128 i32.ge_u br_if $break|0 end local.get $1 i32.load16_u offset=2 - local.tee $2 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 @@ -2040,12 +2032,12 @@ i32.const 1144 i32.store i32.const 1140 - local.get $2 + local.get $3 i32.const -1 i32.ne i32.const 1 i32.add - local.get $3 + local.get $2 i32.const -1 i32.ne i32.add @@ -2055,12 +2047,12 @@ i32.add i32.store i32.const 1144 - local.get $2 + local.get $3 i32.const 8 i32.shl local.get $5 i32.or - local.get $3 + local.get $2 i32.const 16 i32.shl i32.or @@ -2167,8 +2159,18 @@ end end local.get $3 - call $~lib/rt/tlsf/__alloc local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $3 local.get $1 i32.const 20 i32.sub @@ -2180,9 +2182,9 @@ global.set $~argumentsLength local.get $1 local.get $4 - local.get $2 - call $~lib/string/String.UTF8.encodeUnsafe@varargs local.get $3 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $2 i32.ne if i32.const 0 @@ -2193,10 +2195,10 @@ unreachable end i32.const 1136 - local.get $2 + local.get $3 i32.store i32.const 1140 - local.get $3 + local.get $2 i32.store local.get $0 i32.const 1136 @@ -2204,7 +2206,7 @@ i32.const 1144 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $2 + local.get $3 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2305,6 +2307,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -2312,10 +2315,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 24356 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -2329,7 +2332,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -2354,19 +2357,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 7936 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 5120 i32.const 5184 @@ -2375,7 +2380,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 7940 @@ -2390,28 +2395,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -2880,13 +2885,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2894,9 +2899,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -2908,8 +2919,8 @@ i32.load offset=8 local.set $1 local.get $2 - global.get $~lib/rt/itcms/white local.get $3 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -3241,29 +3252,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 i32.const 0 i32.store offset=8 - local.get $2 + local.get $4 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3271,13 +3282,13 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $8 + local.tee $4 local.get $0 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 @@ -3285,26 +3296,26 @@ local.get $8 i32.ne if - local.get $8 + local.get $4 i32.load offset=16 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $4 i32.load - local.tee $7 + local.tee $5 i32.store offset=8 local.get $2 - local.get $7 + local.get $5 i32.store local.get $2 - local.get $8 + local.get $4 i64.load offset=8 i64.store offset=8 local.get $2 - local.get $7 + local.get $5 call $~lib/util/hash/HASH<~lib/string/String> local.get $1 i32.and @@ -3312,10 +3323,10 @@ i32.shl local.get $6 i32.add - local.tee $7 + local.tee $5 i32.load i32.store offset=16 - local.get $7 + local.get $5 local.get $2 i32.store local.get $2 @@ -3323,10 +3334,10 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 24 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end @@ -3348,7 +3359,7 @@ i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -3468,25 +3479,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64 + block $__inlined_func$~lib/util/number/utoa64 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + if + i32.const 24384 + i32.const 24432 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i64.eqz if @@ -3495,7 +3506,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 6000 - local.set $2 br $__inlined_func$~lib/util/number/utoa64 end local.get $0 @@ -3505,54 +3515,54 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $3 local.tee $1 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.tee $1 + local.tee $3 i32.const 1 i32.shl i32.const 1 @@ -3560,8 +3570,8 @@ local.tee $2 i32.store local.get $2 - local.get $3 local.get $1 + local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -3615,7 +3625,7 @@ i32.add end end - local.tee $1 + local.tee $3 i32.const 1 i32.shl i32.const 1 @@ -3627,7 +3637,7 @@ i64.const 100000000 i64.ge_u if - local.get $1 + local.get $3 i32.const 4 i32.sub local.tee $1 @@ -3644,10 +3654,10 @@ i64.mul i64.sub i32.wrap_i64 - local.tee $3 + local.tee $4 i32.const 10000 i32.rem_u - local.tee $4 + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -3655,7 +3665,7 @@ i32.const 6012 i32.add i64.load32_u - local.get $4 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -3670,15 +3680,15 @@ local.get $1 i32.const 4 i32.sub - local.tee $1 + local.tee $3 i32.const 1 i32.shl local.get $2 i32.add - local.get $3 + local.get $4 i32.const 10000 i32.div_u - local.tee $3 + local.tee $1 i32.const 100 i32.div_u i32.const 2 @@ -3686,7 +3696,7 @@ i32.const 6012 i32.add i64.load32_u - local.get $3 + local.get $1 i32.const 100 i32.rem_u i32.const 2 @@ -3704,15 +3714,15 @@ local.get $2 local.get $0 i32.wrap_i64 - local.get $1 + local.get $3 call $~lib/util/number/utoa32_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -3783,329 +3793,212 @@ unreachable ) (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/console - ) - (func $~lib/console/console.assert (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 + (local $0 i32) + (local $1 i32) + block $folding-inner0 + global.get $~started + if + return + end i32.const 1 + global.set $~started + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 1056 + i32.store + i32.const 0 + i32.const 1056 + call $~lib/console/console.assert + global.get $~lib/memory/__stack_pointer + i32.const 4496 + i32.store i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + i32.const 4496 + call $~lib/console/console.assert global.get $~lib/memory/__stack_pointer - i32.const 1088 + i32.const 4528 + i32.store offset=4 + i32.const 4528 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 4576 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 i32.store - i32.const 2 - i32.const 1088 + local.get $0 + i32.const 4624 + i32.store + i32.const 1 + i32.const 4624 call $~lib/process/writeString - i32.const 2 - local.get $1 + i32.const 1 + i32.const 4576 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4464 i32.store - i32.const 2 + i32.const 1 i32.const 4464 call $~lib/process/writeString - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.log (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4672 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 4720 + i32.store i32.const 1 + i32.const 4720 + call $~lib/process/writeString i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map<~lib/string/String,u64>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 + i32.const 4672 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store i32.const 1 + i32.const 4464 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4752 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 4800 + i32.store i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $2 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - loop $while-continue|0 - local.get $5 - if - local.get $5 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load - local.tee $4 - i32.store - block $__inlined_func$~lib/string/String.__eq (result i32) - i32.const 1 - local.get $1 - local.tee $2 - local.get $4 - i32.eq - br_if $__inlined_func$~lib/string/String.__eq - drop - i32.const 0 - local.get $2 - i32.const 0 - local.get $4 - select - i32.eqz - br_if $__inlined_func$~lib/string/String.__eq - drop - i32.const 0 - local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - local.get $2 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - br_if $__inlined_func$~lib/string/String.__eq - drop - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $4 - i32.const 7 - i32.and - local.get $2 - i32.const 7 - i32.and - i32.or - i32.const 1 - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - select - i32.eqz - if - loop $do-continue|0 - local.get $4 - i64.load - local.get $2 - i64.load - i64.eq - if - local.get $4 - i32.const 8 - i32.add - local.set $4 - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-continue|0 - end - end - end - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $3 - local.get $4 - i32.load16_u - local.tee $7 - i32.ne - if - local.get $7 - local.get $3 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $4 - i32.const 2 - i32.add - local.set $4 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|1 - end - end - i32.const 0 - end - i32.eqz - end - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $6 - i32.const -2 - i32.and - local.set $5 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/console/console.time (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i64) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + i32.const 4800 + call $~lib/process/writeString + i32.const 1 + i32.const 4752 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store + i32.const 1 + i32.const 4464 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4848 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 7972 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - global.get $~lib/console/timers - local.tee $1 + local.tee $0 + i32.const 0 i32.store - local.get $1 local.get $0 - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - if - global.get $~lib/memory/__stack_pointer - i32.const 5376 - i32.store offset=4 - i32.const 1 - i32.const 5376 - call $~lib/process/writeString - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=4 - i32.const 1 - i32.const 5440 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end + i32.const 4896 + i32.store + i32.const 1 + i32.const 4896 + call $~lib/process/writeString + i32.const 1 + i32.const 4848 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - global.get $~lib/console/timers - local.tee $1 + i32.const 4464 i32.store - call $~lib/process/process.hrtime - local.set $3 + i32.const 1 + i32.const 4464 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 24356 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 5044 + i32.const 5040 + i32.store + i32.const 5048 + i32.const 5040 + i32.store + i32.const 5040 + global.set $~lib/rt/itcms/pinSpace + i32.const 5076 + i32.const 5072 + i32.store + i32.const 5080 + i32.const 5072 + i32.store + i32.const 5072 + global.set $~lib/rt/itcms/toSpace + i32.const 5220 + i32.const 5216 + i32.store + i32.const 5224 + i32.const 5216 + i32.store + i32.const 5216 + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4115,103 +4008,106 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 i32.store + local.get $0 + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $1 + i32.store + local.get $0 local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link local.get $0 + i32.const 3 + i32.store offset=4 local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - local.tee $4 - call $~lib/map/Map<~lib/string/String,u64>#find - local.tee $2 - if - local.get $2 - local.get $3 - i64.store offset=8 - else - local.get $1 - i32.load offset=16 - local.get $1 - i32.load offset=12 - i32.eq - if - local.get $1 - local.get $1 - i32.load offset=20 - local.get $1 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $1 - i32.load offset=4 - else - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/map/Map<~lib/string/String,u64>#rehash - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=8 - local.tee $2 - i32.store - local.get $1 - local.get $1 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - i32.const 24 - i32.mul - local.get $2 - i32.add - local.tee $2 - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $2 - local.get $3 - i64.store offset=8 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $2 - local.get $1 - i32.load - local.get $1 - i32.load offset=4 - local.get $4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $2 - i32.store - end + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $0 + i32.const 4 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $~lib/console/timers + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + i32.const 4944 + call $~lib/console/console.time + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + i32.const 4944 + call $~lib/console/console.timeLog + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + i32.const 4944 + call $~lib/console/console.timeEnd + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/console/console.timeLog + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/console/console.timeEnd + global.get $~lib/memory/__stack_pointer + i32.const 7776 + i32.store offset=4 + i32.const 7776 + call $~lib/console/console.time + global.get $~lib/memory/__stack_pointer + i32.const 7776 + i32.store offset=4 + i32.const 7776 + call $~lib/console/console.time + global.get $~lib/memory/__stack_pointer + i32.const 7824 + i32.store offset=4 + i32.const 7824 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 7856 + i32.store offset=4 + i32.const 7856 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 7888 + i32.store offset=4 + i32.const 7888 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 7920 + i32.store offset=4 + i32.const 7920 + call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -4225,11 +4121,9 @@ call $~lib/wasi/index/abort unreachable ) - (func $~lib/console/timeLogImpl (param $0 i32) - (local $1 i32) - (local $2 i64) + (func $~lib/console/console.assert (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4244,72 +4138,73 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 i32.const 0 - i32.store offset=8 - local.get $1 - global.get $~lib/console/timers - local.tee $1 i32.store - local.get $1 - local.get $0 local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - local.tee $1 i32.eqz if - i32.const 5696 - i32.const 5760 - i32.const 105 - i32.const 17 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + i32.const 2 + i32.const 1088 + call $~lib/process/writeString + i32.const 2 + local.get $1 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store + i32.const 2 + i32.const 4464 + call $~lib/process/writeString + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.log (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + if + i32.const 24384 + i32.const 24432 + i32.const 1 + i32.const 1 call $~lib/wasi/index/abort unreachable end - local.get $1 - i64.load offset=8 - local.set $2 - call $~lib/process/process.hrtime - local.get $2 - i64.sub - i64.const 1000000 - i64.div_u - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/number/U64#toString - local.tee $1 - i32.store offset=4 + i32.const 0 + i32.store i32.const 1 local.get $0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 7584 - i32.store offset=8 - i32.const 1 - i32.const 7584 - call $~lib/process/writeString - i32.const 1 - local.get $1 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=8 + i32.const 4464 + i32.store i32.const 1 - i32.const 7616 + i32.const 4464 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.timeLog (param $0 i32) - (local $1 i32) + (func $~lib/map/Map<~lib/string/String,u64>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4324,11 +4219,370 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - global.get $~lib/console/timers + i32.const 0 + i32.store + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $2 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + loop $while-continue|0 + local.get $5 + if + local.get $5 + i32.load offset=16 + local.tee $6 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load + local.tee $0 + i32.store + block $__inlined_func$~lib/string/String.__eq (result i32) + i32.const 1 + local.get $0 + local.get $1 + local.tee $2 + i32.eq + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $2 + i32.const 0 + local.get $0 + select + i32.eqz + br_if $__inlined_func$~lib/string/String.__eq + drop + i32.const 0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $2 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + br_if $__inlined_func$~lib/string/String.__eq + drop + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $4 + i32.const 7 + i32.and + local.get $2 + i32.const 7 + i32.and + i32.or + i32.const 1 + local.get $3 + local.tee $0 + i32.const 4 + i32.ge_u + select + i32.eqz + if + loop $do-continue|0 + local.get $4 + i64.load + local.get $2 + i64.load + i64.eq + if + local.get $4 + i32.const 8 + i32.add + local.set $4 + local.get $2 + i32.const 8 + i32.add + local.set $2 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $3 + i32.const 1 + i32.sub + local.set $0 + local.get $3 + if + local.get $4 + i32.load16_u + local.tee $3 + local.get $2 + i32.load16_u + local.tee $7 + i32.ne + if + local.get $3 + local.get $7 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $4 + i32.const 2 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + end + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $6 + i32.const -2 + i32.and + local.set $5 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $~lib/console/console.time (param $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + global.get $~lib/console/timers + local.tee $3 + i32.store + local.get $3 + local.get $0 + local.get $0 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,u64>#find + if + global.get $~lib/memory/__stack_pointer + i32.const 5376 + i32.store offset=4 + i32.const 1 + i32.const 5376 + call $~lib/process/writeString + i32.const 1 + local.get $0 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=4 + i32.const 1 + i32.const 5440 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/console/timers + local.tee $1 + i32.store + call $~lib/process/process.hrtime + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + local.get $0 + call $~lib/util/hash/HASH<~lib/string/String> + local.tee $5 + call $~lib/map/Map<~lib/string/String,u64>#find + local.tee $2 + if + local.get $2 + local.get $4 + i64.store offset=8 + else + local.get $1 + i32.load offset=16 + local.get $1 + i32.load offset=12 + i32.eq + if + local.get $1 + local.get $1 + i32.load offset=20 + local.get $1 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + local.get $1 + i32.load offset=4 + else + local.get $1 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $~lib/map/Map<~lib/string/String,u64>#rehash + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=8 + local.tee $2 + i32.store + local.get $1 + local.get $1 + i32.load offset=16 + local.tee $3 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + i32.const 24 + i32.mul + local.get $2 + i32.add + local.tee $2 + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $2 + local.get $4 + i64.store offset=8 + local.get $1 + local.get $1 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + local.get $2 + local.get $1 + i32.load + local.get $1 + i32.load offset=4 + local.get $5 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load + i32.store offset=16 + local.get $1 + local.get $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 24384 + i32.const 24432 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + ) + (func $~lib/console/timeLogImpl (param $0 i32) + (local $1 i32) + (local $2 i64) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + if + i32.const 24384 + i32.const 24432 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + local.get $1 + global.get $~lib/console/timers local.tee $1 i32.store local.get $1 @@ -4336,39 +4590,55 @@ local.get $0 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,u64>#find + local.tee $1 i32.eqz if - global.get $~lib/memory/__stack_pointer - i32.const 5536 - i32.store offset=4 - i32.const 1 - i32.const 5536 - call $~lib/process/writeString - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 5616 - i32.store offset=4 - i32.const 1 - i32.const 5616 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 5696 + i32.const 5760 + i32.const 105 + i32.const 17 + call $~lib/wasi/index/abort + unreachable end + local.get $1 + i64.load offset=8 + local.set $2 + call $~lib/process/process.hrtime + local.get $2 + i64.sub + i64.const 1000000 + i64.div_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/number/U64#toString + local.tee $1 + i32.store offset=4 + i32.const 1 local.get $0 - call $~lib/console/timeLogImpl + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 7584 + i32.store offset=8 + i32.const 1 + i32.const 7584 + call $~lib/process/writeString + i32.const 1 + local.get $1 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 7616 + i32.store offset=8 + i32.const 1 + i32.const 7616 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.timeEnd (param $0 i32) + (func $~lib/console/console.timeLog (param $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4409,10 +4679,10 @@ local.get $0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 7648 + i32.const 5616 i32.store offset=4 i32.const 1 - i32.const 7648 + i32.const 5616 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4423,390 +4693,128 @@ local.get $0 call $~lib/console/timeLogImpl global.get $~lib/memory/__stack_pointer - global.get $~lib/console/timers - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - local.tee $0 - if - local.get $0 - local.get $0 - i32.load offset=16 - i32.const 1 - i32.or - i32.store offset=16 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 1 - i32.add - i32.const 4 - local.get $1 - i32.load offset=20 - local.tee $0 - local.get $0 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $1 - i32.load offset=20 - local.get $1 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - local.get $1 - local.get $2 - call $~lib/map/Map<~lib/string/String,u64>#rehash - end - end - global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $start:std-wasi/console - (local $0 i32) + (func $~lib/console/console.timeEnd (param $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 - i32.store - i32.const 0 - i32.const 1056 - call $~lib/console/console.assert - global.get $~lib/memory/__stack_pointer - i32.const 4496 - i32.store - i32.const 1 - i32.const 4496 - call $~lib/console/console.assert - global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store offset=4 - i32.const 4528 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4576 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4624 - i32.store - i32.const 1 - i32.const 4624 - call $~lib/process/writeString - i32.const 1 - i32.const 4576 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4672 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4720 - i32.store - i32.const 1 - i32.const 4720 - call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + if + i32.const 24384 + i32.const 24432 i32.const 1 - i32.const 4672 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4752 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + global.get $~lib/console/timers + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $0 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,u64>#find + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4800 - i32.store + i32.const 5536 + i32.store offset=4 i32.const 1 - i32.const 4800 + i32.const 5536 call $~lib/process/writeString i32.const 1 - i32.const 4752 + local.get $0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store + i32.const 7648 + i32.store offset=4 i32.const 1 - i32.const 4464 + i32.const 7648 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4848 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store + return + end + local.get $0 + call $~lib/console/timeLogImpl + global.get $~lib/memory/__stack_pointer + global.get $~lib/console/timers + local.tee $1 + i32.store + local.get $1 + local.get $0 + local.get $0 + call $~lib/util/hash/HASH<~lib/string/String> + call $~lib/map/Map<~lib/string/String,u64>#find + local.tee $0 + if local.get $0 - i32.const 4896 - i32.store - i32.const 1 - i32.const 4896 - call $~lib/process/writeString + local.get $0 + i32.load offset=16 i32.const 1 - i32.const 4848 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store + i32.or + i32.store offset=16 + local.get $1 + local.get $1 + i32.load offset=20 i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 24356 i32.sub + i32.store offset=20 + local.get $1 + i32.load offset=4 i32.const 1 i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 5044 - i32.const 5040 - i32.store - i32.const 5048 - i32.const 5040 - i32.store - i32.const 5040 - global.set $~lib/rt/itcms/pinSpace - i32.const 5076 - i32.const 5072 - i32.store - i32.const 5080 - i32.const 5072 - i32.store - i32.const 5072 - global.set $~lib/rt/itcms/toSpace - i32.const 5220 - i32.const 5216 - i32.store - i32.const 5224 - i32.const 5216 - i32.store - i32.const 5216 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 1 + i32.add i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 24 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $0 - i32.const 3 - i32.store offset=4 - local.get $0 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store offset=8 - local.get $0 local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 + i32.load offset=20 + local.tee $0 local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $~lib/console/timers - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - i32.const 4944 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - i32.const 4944 - call $~lib/console/console.timeLog - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - i32.const 4944 - call $~lib/console/console.timeEnd - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/console/console.timeLog - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/console/console.timeEnd - global.get $~lib/memory/__stack_pointer - i32.const 7776 - i32.store offset=4 - i32.const 7776 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 7776 - i32.store offset=4 - i32.const 7776 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 7824 - i32.store offset=4 - i32.const 7824 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7856 - i32.store offset=4 - i32.const 7856 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7888 - i32.store offset=4 - i32.const 7888 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7920 - i32.store offset=4 - i32.const 7920 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.lt_u + select + i32.ge_u + if (result i32) + local.get $1 + i32.load offset=20 + local.get $1 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + local.get $1 + local.get $2 + call $~lib/map/Map<~lib/string/String,u64>#rehash + end end - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) (local $1 i32) diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index cbefac38cb..6e07fd8c9a 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -1,7 +1,7 @@ (module (type $i32_=>_none (func (param i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) @@ -744,6 +744,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -751,10 +752,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 23284 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -768,7 +769,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -793,19 +794,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 6864 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1472 i32.const 1536 @@ -814,7 +817,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 6868 @@ -829,28 +832,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1870,19 +1873,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1893,13 +1889,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1907,32 +1903,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $0 + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -1948,16 +1944,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1965,7 +1961,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -1973,10 +1969,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -1987,11 +1983,11 @@ unreachable end end - local.get $1 + local.get $2 i32.load i32.const -4 i32.and - local.get $0 + local.get $1 i32.lt_u if i32.const 0 @@ -2001,13 +1997,14 @@ call $~lib/wasi/index/abort unreachable end - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $2 + local.tee $3 i32.load local.set $2 - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -2023,44 +2020,44 @@ local.get $2 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 + local.get $3 local.get $2 i32.const 2 i32.and - local.get $0 + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $3 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 + local.get $3 local.get $2 i32.const -2 i32.and i32.store - local.get $1 + local.get $3 i32.const 4 i32.add - local.get $1 + local.get $3 i32.load i32.const -4 i32.and @@ -2072,9 +2069,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $3 ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (local $2 i32) @@ -2300,13 +2295,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2314,9 +2309,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -2328,8 +2329,8 @@ i32.load offset=8 local.set $1 local.get $2 - global.get $~lib/rt/itcms/white local.get $3 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -3848,31 +3849,27 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $2 + local.tee $6 i32.const 0 i32.lt_s if @@ -3881,17 +3878,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $2 + local.get $6 i32.eqz if block $__inlined_func$~lib/util/number/utoa32 (result i32) - local.get $3 + local.get $2 i32.load8_u - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3903,7 +3899,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3914,53 +3910,54 @@ br $__inlined_func$~lib/util/number/utoa32 end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 + local.tee $5 i32.const 1 i32.shl i32.const 1 @@ -3968,8 +3965,8 @@ local.tee $2 i32.store local.get $2 - local.get $1 local.get $0 + local.get $5 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3977,145 +3974,143 @@ global.set $~lib/memory/__stack_pointer local.get $2 end - local.set $0 + local.set $2 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.const 6652 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.add i32.mul i32.const 10 i32.add - local.tee $6 + local.tee $5 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $4 + local.get $6 + i32.lt_s if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $0 i32.add - local.get $3 - local.get $5 + local.get $2 + local.get $4 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 - local.get $4 + local.set $1 + local.get $3 if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $0 i32.add i32.const 6656 - local.get $4 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $4 + local.get $1 + local.get $3 i32.add - local.set $0 + local.set $1 end - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|0 end end - local.get $6 - local.get $0 + local.get $5 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $0 i32.add local.get $2 - local.get $3 + local.get $6 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add local.tee $2 i32.gt_s if - local.get $1 - local.set $0 - local.get $2 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $2 - select - local.tee $3 - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $1 - local.get $2 - local.get $1 - local.get $2 - i32.lt_s - select - local.tee $1 - local.get $1 - local.get $3 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $4 - block $__inlined_func$~lib/string/String#substring + block $__inlined_func$~lib/string/String#substring (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 local.get $3 - local.get $1 - local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $4 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $2 + local.get $3 + local.get $2 local.get $3 i32.lt_s select + local.tee $2 + local.get $2 + local.get $4 + i32.gt_s + select i32.const 1 i32.shl - local.tee $1 + local.set $5 local.get $4 + local.get $2 + local.get $2 + local.get $4 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $5 i32.sub - local.tee $3 + local.tee $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -4123,59 +4118,58 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 - local.set $0 br $__inlined_func$~lib/string/String#substring end i32.const 0 - local.get $2 + local.get $3 i32.const 1 i32.shl - local.get $1 - i32.eq local.get $4 + i32.eq + local.get $5 select if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 br $__inlined_func$~lib/string/String#substring end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 local.get $0 - local.get $4 + local.get $5 i32.add - local.get $3 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $3 end + local.set $2 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $0 return end i32.const 23312 @@ -4189,25 +4183,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - if - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/string/String#concat + block $__inlined_func$~lib/string/String#concat (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + if + i32.const 23312 + i32.const 23360 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 4764 i32.load i32.const 1 @@ -4233,7 +4227,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 - local.set $1 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer @@ -4256,8 +4249,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $1 ) (func $~lib/process/writeString (param $0 i32) (local $1 i32) @@ -4443,7 +4436,17 @@ end end local.get $2 - call $~lib/rt/tlsf/__alloc + local.set $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $1 local.get $0 i32.const 20 @@ -4614,11 +4617,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 6900 i32.lt_s @@ -4798,15 +4801,15 @@ local.get $0 local.get $1 call $~lib/typedarray/Uint8Array#__get - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer global.get $std-wasi/crypto/b1 - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 local.get $1 call $~lib/typedarray/Uint8Array#__get - local.get $0 + local.get $2 i32.ne if i32.const 0 @@ -4839,15 +4842,15 @@ i32.const 4 i32.add call $~lib/typedarray/Uint8Array#__get - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer global.get $std-wasi/crypto/b2 - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 local.get $1 call $~lib/typedarray/Uint8Array#__get - local.get $0 + local.get $2 i32.ne if i32.const 0 @@ -4879,6 +4882,7 @@ ) (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4902,7 +4906,7 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $3 + local.tee $4 i32.gt_u if i32.const 1472 @@ -4920,7 +4924,7 @@ i32.const -1 i32.eq if (result i32) - local.get $3 + local.get $4 local.get $1 i32.sub else @@ -4931,11 +4935,12 @@ call $~lib/wasi/index/abort unreachable end - local.set $2 + local.set $3 else - local.get $3 - local.get $1 + local.get $4 local.get $2 + local.tee $3 + local.get $1 i32.add i32.lt_s if @@ -4951,18 +4956,18 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 local.get $0 i32.store - local.get $3 + local.get $2 local.get $0 call $~lib/rt/itcms/__link - local.get $3 local.get $2 - i32.store offset=8 local.get $3 + i32.store offset=8 + local.get $2 local.get $0 local.get $1 i32.add @@ -4971,7 +4976,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $~lib/typedarray/Uint8Array#slice (param $0 i32) (result i32) (local $1 i32) @@ -4979,33 +4984,32 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 6900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store i32.const 0 local.get $0 - local.tee $1 + local.tee $2 i32.load offset=8 local.tee $0 local.get $0 i32.const 0 i32.gt_s select - local.set $5 + local.set $4 + local.get $3 local.get $0 - local.get $5 + local.get $4 i32.sub local.tee $0 i32.const 0 @@ -5013,9 +5017,9 @@ i32.const 0 i32.gt_s select - local.tee $6 - local.set $2 - local.get $4 + local.tee $5 + local.set $1 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5067,7 +5071,7 @@ local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -5079,13 +5083,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__new local.tee $3 i32.store offset=4 local.get $3 - local.get $2 + local.get $1 call $~lib/memory/memory.fill local.get $0 local.get $3 @@ -5097,7 +5101,7 @@ local.get $3 i32.store offset=4 local.get $0 - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5109,16 +5113,15 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $0 i32.store local.get $0 i32.load offset=4 - local.get $5 - local.get $1 + local.get $4 + local.get $2 i32.load offset=4 i32.add - local.get $6 + local.get $5 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 86d83cbaae..2c2374994f 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -1713,19 +1713,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1736,13 +1729,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1750,32 +1743,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $0 + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -1791,16 +1784,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1808,7 +1801,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -1816,10 +1809,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -1830,11 +1823,11 @@ unreachable end end - local.get $1 + local.get $2 i32.load i32.const -4 i32.and - local.get $0 + local.get $1 i32.lt_u if i32.const 0 @@ -1844,13 +1837,14 @@ call $~lib/wasi/index/abort unreachable end - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $2 + local.tee $3 i32.load local.set $2 - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -1866,44 +1860,44 @@ local.get $2 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 + local.get $3 local.get $2 i32.const 2 i32.and - local.get $0 + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $3 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 + local.get $3 local.get $2 i32.const -2 i32.and i32.store - local.get $1 + local.get $3 i32.const 4 i32.add - local.get $1 + local.get $3 i32.load i32.const -4 i32.and @@ -1915,9 +1909,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $3 ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -2154,7 +2146,17 @@ end end local.get $2 - call $~lib/rt/tlsf/__alloc + local.set $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $1 local.get $0 i32.const 20 @@ -2322,6 +2324,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -2329,10 +2332,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 23788 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -2346,7 +2349,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -2371,19 +2374,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 7360 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 4784 i32.const 4848 @@ -2392,7 +2397,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 7364 @@ -2407,28 +2412,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -2897,13 +2902,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2911,9 +2916,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -2925,8 +2936,8 @@ i32.load offset=8 local.set $1 local.get $2 - global.get $~lib/rt/itcms/white local.get $3 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -4814,11 +4825,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer + (local $9 i32) block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 7404 i32.lt_s @@ -4833,11 +4845,11 @@ i32.const 1088 i32.const 1092 call $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get - local.tee $0 + local.tee $3 i32.const 65535 i32.and if - local.get $0 + local.get $3 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 87 @@ -4847,18 +4859,28 @@ end i32.const 1088 i32.load - local.tee $7 + local.tee $8 i32.const 2 i32.shl local.tee $0 i32.const 1092 i32.load i32.add - local.tee $8 - call $~lib/rt/tlsf/__alloc - local.tee $4 + local.tee $9 + local.set $3 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $3 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $3 local.get $0 - local.get $4 + local.get $3 i32.add call $~lib/bindings/wasi_snapshot_preview1/environ_get local.tee $0 @@ -4931,95 +4953,100 @@ local.tee $1 i32.store loop $for-loop|0 - local.get $5 - local.get $7 + local.get $6 + local.get $8 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add i32.load local.tee $0 local.get $0 - local.get $8 + local.get $9 i32.add - local.get $4 + local.get $3 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $3 + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 5168 i32.store offset=8 - i32.const 0 - local.set $0 - block $__inlined_func$~lib/string/String#indexOf + block $__inlined_func$~lib/string/String#indexOf (result i32) + local.get $0 + local.set $2 + i32.const 0 i32.const 5164 i32.load i32.const 1 i32.shr_u - local.tee $6 + local.tee $7 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf + drop i32.const -1 - local.set $0 - local.get $3 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 + local.tee $4 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf + drop i32.const 0 - local.get $2 - local.get $2 + local.get $4 + local.get $4 + i32.const 0 + i32.gt_s select - local.set $0 - local.get $2 - local.get $6 + local.set $5 + local.get $4 + local.get $7 i32.sub - local.set $2 - loop $for-loop|00 - local.get $0 - local.get $2 - i32.le_s + local.set $4 + loop $for-loop|01 + local.get $4 + local.get $5 + i32.ge_s if - local.get $3 - local.get $0 + local.get $5 + local.get $2 + local.get $5 i32.const 5168 - local.get $6 + local.get $7 call $~lib/util/string/compareImpl i32.eqz br_if $__inlined_func$~lib/string/String#indexOf - local.get $0 + drop + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|00 + local.set $5 + br $for-loop|01 end end i32.const -1 - local.set $0 end - local.get $0 + local.tee $2 i32.const -1 i32.xor if - local.get $3 - i32.const 0 local.get $0 + i32.const 0 + local.get $2 call $~lib/string/String#substring - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=8 - local.get $3 local.get $0 + local.get $2 i32.const 1 i32.add i32.const 2147483647 @@ -5029,7 +5056,7 @@ local.get $0 i32.store offset=12 local.get $1 - local.get $2 + local.get $4 local.get $0 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set else @@ -5037,18 +5064,18 @@ i32.const 5200 i32.store offset=12 local.get $1 - local.get $3 + local.get $0 i32.const 5200 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set end - local.get $5 + local.get $6 i32.const 1 i32.add - local.set $5 + local.set $6 br $for-loop|0 end end - local.get $4 + local.get $3 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 16 @@ -5177,7 +5204,17 @@ i32.load i32.add local.tee $6 - call $~lib/rt/tlsf/__alloc + local.set $1 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.tee $1 local.get $1 local.get $5 @@ -5286,10 +5323,10 @@ global.get $~lib/memory/__stack_pointer local.tee $4 global.get $std-wasi/process/env - local.tee $3 + local.tee $1 i32.store i32.const 0 - local.set $1 + local.set $3 i32.const 0 local.set $0 local.get $4 @@ -5304,22 +5341,22 @@ local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $1 i32.load offset=8 local.set $5 local.get $4 - local.get $3 + local.get $1 i32.load offset=16 local.tee $4 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $3 + local.tee $1 i32.store loop $for-loop|01 - local.get $1 + local.get $3 local.get $4 i32.lt_s if - local.get $1 + local.get $3 i32.const 12 i32.mul local.get $5 @@ -5335,7 +5372,7 @@ i32.load local.tee $6 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 local.get $6 call $~lib/array/Array<~lib/string/String>#__set @@ -5344,25 +5381,25 @@ i32.add local.set $0 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|01 end end - local.get $3 + local.get $1 local.get $0 i32.const 0 call $~lib/array/ensureCapacity - local.get $3 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 global.set $std-wasi/process/envKeys global.get $~lib/memory/__stack_pointer i32.const 5232 @@ -5448,11 +5485,11 @@ i64.const 1000000 i32.const 1088 call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $0 + local.tee $1 i32.const 65535 i32.and if - local.get $0 + local.get $1 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 53 @@ -5485,7 +5522,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 5696 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 @@ -5496,7 +5533,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $1 + local.tee $0 select local.tee $2 i64.const 4294967295 @@ -5505,65 +5542,65 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.wrap_i64 - local.tee $3 - local.tee $0 + local.tee $4 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.get $1 + local.get $0 i32.add - local.tee $4 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 - local.get $3 + local.get $1 local.get $4 + local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -5617,23 +5654,23 @@ i32.add end end - local.get $1 + local.get $0 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 local.get $2 local.get $3 call $~lib/util/number/utoa64_dec_lut end - local.get $1 + local.get $0 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -5643,9 +5680,9 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 7280 @@ -5656,11 +5693,11 @@ i64.const 0 i32.const 1088 call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $0 + local.tee $1 i32.const 65535 i32.and if - local.get $0 + local.get $1 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 59 @@ -5702,47 +5739,47 @@ local.get $2 i32.wrap_i64 local.tee $3 - local.tee $0 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -5842,31 +5879,31 @@ call $~lib/bindings/wasi_snapshot_preview1/proc_exit i32.const 0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 - local.set $1 + local.set $0 i32.const 1088 - local.get $0 + local.get $1 i32.store i32.const 1092 - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 1088 i32.const 1 i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_read - local.tee $0 + local.tee $1 i32.const 65535 i32.and if - local.get $0 + local.get $1 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 142 diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index 2f8c5a787e..b72350e478 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -187,11 +187,11 @@ ) (func $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1308 i32.lt_s @@ -219,6 +219,7 @@ local.get $0 i32.store local.get $0 + local.tee $1 i32.load offset=12 i32.const 1 i32.le_u @@ -230,7 +231,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 i32.load offset=4 global.get $~lib/memory/__stack_pointer @@ -252,11 +253,11 @@ ) (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1308 i32.lt_s @@ -308,11 +309,11 @@ ) (func $export:std/array-access/stringArrayMethodCall (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1308 i32.lt_s @@ -363,11 +364,11 @@ ) (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1308 i32.lt_s @@ -426,11 +427,11 @@ ) (func $export:std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1308 i32.lt_s diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 2d1c9258ee..9548a50953 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -199,6 +199,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -206,10 +207,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18252 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -223,7 +224,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -248,19 +249,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1792 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1200 i32.const 1664 @@ -269,7 +272,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1796 @@ -284,28 +287,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1594,8 +1597,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 489be304c8..257011362e 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1,12 +1,12 @@ (module (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_none (func (param i32 i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) @@ -810,6 +810,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -817,10 +818,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 31980 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -834,7 +835,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -859,19 +860,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 15216 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1344 i32.const 1408 @@ -880,7 +883,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 15220 @@ -895,28 +898,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1936,19 +1939,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1959,13 +1955,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1973,32 +1969,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $0 + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -2014,16 +2010,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -2031,7 +2027,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -2039,10 +2035,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -2053,11 +2049,11 @@ unreachable end end - local.get $1 + local.get $2 i32.load i32.const -4 i32.and - local.get $0 + local.get $1 i32.lt_u if i32.const 0 @@ -2067,13 +2063,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $2 + local.tee $3 i32.load local.set $2 - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -2089,44 +2086,44 @@ local.get $2 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 + local.get $3 local.get $2 i32.const 2 i32.and - local.get $0 + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $3 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 + local.get $3 local.get $2 i32.const -2 i32.and i32.store - local.get $1 + local.get $3 i32.const 4 i32.add - local.get $1 + local.get $3 i32.load i32.const -4 i32.and @@ -2138,9 +2135,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $3 ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2381,13 +2376,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2395,9 +2390,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -2409,8 +2410,8 @@ i32.load offset=8 local.set $1 local.get $2 - global.get $~lib/rt/itcms/white local.get $3 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -4030,81 +4031,88 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#reverse (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 i32) - local.get $0 - i32.load offset=4 - local.set $5 - local.get $0 - i32.load offset=12 - local.tee $2 + (local $6 i32) + (local $7 i32) + (local $8 i64) + local.get $1 i32.const 1 i32.gt_u if - local.get $2 + local.get $1 i32.const 1 i32.shr_u - local.set $8 - local.get $2 + local.set $7 + local.get $1 i32.const 8 i32.sub - local.set $3 + local.set $4 loop $while-continue|0 - local.get $8 - local.get $1 + local.get $7 + local.get $2 i32.const 7 i32.add i32.gt_u if - local.get $1 - local.get $5 + local.get $0 + local.get $2 i32.add - local.tee $4 + local.tee $5 i64.load - local.tee $6 + local.tee $3 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $6 + local.get $3 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.set $6 - local.get $4 + local.tee $3 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and local.get $3 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + local.set $8 local.get $5 + local.get $0 + local.get $4 i32.add - local.get $1 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i64.load - local.tee $7 + local.tee $3 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $7 + local.get $3 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $7 + local.tee $3 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $7 + local.get $3 i64.const 281470681808895 i64.and i64.const 16 @@ -4113,64 +4121,51 @@ i64.const 32 i64.rotr i64.store - local.get $4 - local.get $6 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and local.get $6 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr + local.get $8 i64.store - local.get $1 + local.get $2 i32.const 8 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $2 + local.get $1 i32.const 1 i32.sub - local.set $2 + local.set $6 loop $while-continue|1 - local.get $1 - local.get $8 + local.get $2 + local.get $7 i32.lt_u if - local.get $1 - local.get $5 + local.get $0 + local.get $2 i32.add - local.tee $3 + local.tee $1 i32.load8_u local.set $4 - local.get $3 - local.get $2 local.get $1 + local.get $6 + local.get $2 i32.sub - local.get $5 + local.get $0 i32.add - local.tee $3 + local.tee $5 i32.load8_u i32.store8 - local.get $3 + local.get $5 local.get $4 i32.store8 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $while-continue|1 end end end - local.get $0 ) (func $~lib/array/Array#reverse (param $0 i32) (result i32) (local $1 i32) @@ -5385,12 +5380,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $12 + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $12 + local.get $5 i32.add local.set $11 i32.const 0 @@ -5417,7 +5422,17 @@ local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $10 local.get $0 i32.const 0 @@ -5427,7 +5442,7 @@ local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -5442,26 +5457,26 @@ i32.const 31 i32.lt_s select - local.tee $5 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 + local.get $6 local.get $13 i32.lt_s if local.get $0 - local.get $5 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $5 local.get $13 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $6 + local.get $5 i32.sub i32.const 1 i32.add @@ -5470,9 +5485,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $5 local.get $13 - local.get $6 + local.get $5 i32.const 31 i32.add local.tee $1 @@ -5486,7 +5501,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $5 i32.add i64.extend_i32_u i64.const 30 @@ -5497,7 +5512,7 @@ i64.extend_i32_u local.tee $9 i64.div_u - local.get $6 + local.get $5 local.get $7 i32.add i32.const 1 @@ -5539,7 +5554,7 @@ i32.load i32.const 1 i32.add - local.get $5 + local.get $6 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns @@ -5569,12 +5584,12 @@ local.get $4 local.get $11 i32.add - local.get $5 - i32.store local.get $6 + i32.store + local.get $5 local.set $3 local.get $7 - local.set $5 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -6274,12 +6289,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $12 + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $12 + local.get $5 i32.add local.set $11 i32.const 0 @@ -6306,7 +6331,17 @@ local.get $1 i32.const 3 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $10 local.get $0 i32.const 0 @@ -6316,7 +6351,7 @@ local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -6331,26 +6366,26 @@ i32.const 31 i32.lt_s select - local.tee $5 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 + local.get $6 local.get $13 i32.lt_s if local.get $0 - local.get $5 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $5 local.get $13 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $6 + local.get $5 i32.sub i32.const 1 i32.add @@ -6359,9 +6394,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $5 local.get $13 - local.get $6 + local.get $5 i32.const 31 i32.add local.tee $1 @@ -6375,7 +6410,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $5 i32.add i64.extend_i32_u i64.const 30 @@ -6386,7 +6421,7 @@ i64.extend_i32_u local.tee $9 i64.div_u - local.get $6 + local.get $5 local.get $7 i32.add i32.const 1 @@ -6428,7 +6463,7 @@ i32.load i32.const 1 i32.add - local.get $5 + local.get $6 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns @@ -6458,12 +6493,12 @@ local.get $4 local.get $11 i32.add - local.get $5 - i32.store local.get $6 + i32.store + local.get $5 local.set $3 local.get $7 - local.set $5 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -7114,12 +7149,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $10 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $7 i32.add local.set $11 i32.const 0 @@ -7146,7 +7191,17 @@ local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -7156,7 +7211,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -7171,26 +7226,26 @@ i32.const 31 i32.lt_s select - local.tee $7 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $6 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $7 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $6 + local.get $7 i32.sub i32.const 1 i32.add @@ -7199,9 +7254,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $7 local.get $9 - local.get $6 + local.get $7 i32.const 31 i32.add local.tee $1 @@ -7215,7 +7270,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 @@ -7227,7 +7282,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $6 + local.get $7 i32.add i32.const 1 i32.add @@ -7268,7 +7323,7 @@ i32.load i32.const 1 i32.add - local.get $7 + local.get $6 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -7298,12 +7353,12 @@ local.get $4 local.get $11 i32.add - local.get $7 - i32.store local.get $6 + i32.store + local.get $7 local.set $3 local.get $5 - local.set $7 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -7909,12 +7964,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $10 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $7 i32.add local.set $11 i32.const 0 @@ -7941,7 +8006,17 @@ local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -7951,7 +8026,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -7966,26 +8041,26 @@ i32.const 31 i32.lt_s select - local.tee $7 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $6 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $7 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $6 + local.get $7 i32.sub i32.const 1 i32.add @@ -7994,9 +8069,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $7 local.get $9 - local.get $6 + local.get $7 i32.const 31 i32.add local.tee $1 @@ -8010,7 +8085,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 @@ -8022,7 +8097,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $6 + local.get $7 i32.add i32.const 1 i32.add @@ -8063,7 +8138,7 @@ i32.load i32.const 1 i32.add - local.get $7 + local.get $6 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -8093,12 +8168,12 @@ local.get $4 local.get $11 i32.add - local.get $7 - i32.store local.get $6 + i32.store + local.get $7 local.set $3 local.get $5 - local.set $7 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -8250,18 +8325,18 @@ i32.ge_s if global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $5 local.get $8 i32.const 2 i32.shl local.get $0 i32.add - local.tee $5 + local.tee $6 i32.load local.tee $3 i32.store - local.get $6 local.get $5 + local.get $6 i32.load offset=4 local.tee $6 i32.store offset=4 @@ -8396,6 +8471,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8479,16 +8555,16 @@ i32.le_s if global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $8 local.get $6 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.tee $8 + local.tee $9 i32.store - local.get $7 + local.get $8 local.get $2 i32.const 2 i32.shl @@ -8499,7 +8575,7 @@ i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $8 + local.get $9 local.get $7 local.get $5 i32.load @@ -8512,7 +8588,7 @@ i32.shl local.get $0 i32.add - local.get $8 + local.get $9 i32.store local.get $6 i32.const 1 @@ -8553,8 +8629,8 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i64) - (local $13 i32) + (local $12 i32) + (local $13 i64) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8589,22 +8665,23 @@ block $break|0 block $case1|0 local.get $1 + local.tee $4 i32.const 3 i32.ne if - local.get $1 + local.get $4 i32.const 2 i32.eq br_if $case1|0 br $break|0 end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 local.get $0 i32.load - local.tee $1 + local.tee $3 i32.store - local.get $4 + local.get $1 local.get $0 i32.load offset=4 local.tee $4 @@ -8613,23 +8690,23 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $3 + local.tee $1 select i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $4 local.get $3 + local.get $4 + local.get $1 select - local.tee $1 + local.tee $3 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -8640,31 +8717,31 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $3 + local.tee $1 select i32.store offset=4 local.get $0 - local.get $1 - local.get $4 local.get $3 + local.get $4 + local.get $1 select i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 local.get $0 i32.load - local.tee $1 + local.tee $3 i32.store offset=8 - local.get $4 + local.get $1 local.get $0 i32.load offset=4 local.tee $4 @@ -8673,28 +8750,28 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $1 - local.get $1 + local.get $3 + local.get $3 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $2 + local.tee $1 select i32.store local.get $0 - local.get $1 + local.get $3 local.get $4 - local.get $2 + local.get $1 select i32.store offset=4 br $folding-inner0 end local.get $0 i32.const 0 - local.get $1 + local.get $4 i32.const 1 i32.sub i32.const 0 @@ -8709,14 +8786,24 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $9 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 i32.add - local.set $10 + local.tee $10 + local.get $7 + i32.add + local.set $11 i32.const 0 local.set $5 loop $for-loop|1 @@ -8727,7 +8814,7 @@ local.get $5 i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add i32.const -1 i32.store @@ -8741,119 +8828,131 @@ local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc - local.set $11 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $12 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $8 + local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $1 + local.tee $6 i32.const 1 i32.add - local.tee $5 + local.tee $1 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $8 + local.get $9 i32.const 31 - local.get $8 + local.get $9 i32.const 31 i32.lt_s select - local.tee $1 - local.get $5 + local.tee $6 + local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $1 - local.get $8 + local.get $6 + local.get $9 i32.lt_s if local.get $0 - local.get $1 + local.get $6 i32.const 1 i32.add - local.tee $6 - local.get $8 + local.tee $7 + local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $6 + local.get $7 i32.sub i32.const 1 i32.add - local.tee $7 + local.tee $8 i32.const 32 i32.lt_s if local.get $0 - local.get $6 - local.get $8 - local.get $6 + local.get $7 + local.get $9 + local.get $7 i32.const 31 i32.add - local.tee $5 - local.get $5 - local.get $8 + local.tee $1 + local.get $1 + local.get $9 i32.gt_s select local.tee $5 - local.get $7 + local.get $8 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $8 + local.get $9 i32.const 1 i32.add i64.extend_i32_u - local.tee $12 + local.tee $13 i64.div_u local.get $5 - local.get $6 + local.get $7 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $12 + local.get $13 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $7 + local.set $1 + local.get $4 + local.set $8 loop $for-loop|3 - local.get $4 - local.get $7 - i32.gt_u + local.get $1 + local.get $8 + i32.lt_u if - local.get $4 + local.get $8 i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add i32.load - local.tee $13 + local.tee $4 i32.const -1 i32.ne if local.get $0 - local.get $13 - local.get $10 local.get $4 + local.get $11 + local.get $8 i32.const 2 i32.shl local.tee $3 @@ -8861,27 +8960,27 @@ i32.load i32.const 1 i32.add - local.get $1 - local.get $11 + local.get $6 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $9 + local.get $10 i32.add i32.const -1 i32.store - local.get $13 + local.get $4 local.set $3 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 + local.set $8 br $for-loop|3 end end - local.get $9 - local.get $7 + local.get $10 + local.get $1 i32.const 2 i32.shl local.tee $4 @@ -8889,15 +8988,15 @@ local.get $3 i32.store local.get $4 - local.get $10 + local.get $11 i32.add - local.get $1 - i32.store local.get $6 + i32.store + local.get $7 local.set $3 local.get $5 - local.set $1 - local.get $7 + local.set $6 + local.get $1 local.set $4 br $while-continue|2 end @@ -8908,7 +9007,7 @@ local.get $4 i32.const 2 i32.shl - local.get $9 + local.get $10 i32.add i32.load local.tee $1 @@ -8920,13 +9019,13 @@ local.get $4 i32.const 2 i32.shl - local.get $10 + local.get $11 i32.add i32.load i32.const 1 i32.add - local.get $8 - local.get $11 + local.get $9 + local.get $12 local.get $2 call $~lib/util/sort/mergeRuns end @@ -8937,9 +9036,9 @@ br $for-loop|4 end end - local.get $11 + local.get $12 call $~lib/rt/tlsf/__free - local.get $9 + local.get $10 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 12 @@ -9260,25 +9359,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/string/String#concat + block $__inlined_func$~lib/string/String#concat (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.const 20 i32.sub @@ -9306,7 +9405,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer @@ -9329,8 +9427,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $2 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -9472,47 +9570,46 @@ local.get $0 local.get $1 local.get $1 - local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -9520,9 +9617,9 @@ end local.get $2 i32.add - local.tee $0 + local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $0 + local.get $1 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9531,35 +9628,35 @@ (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if @@ -9568,16 +9665,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $3 + local.get $4 i32.eqz if - local.get $4 + local.get $5 i32.load call $~lib/util/number/itoa32 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9585,14 +9680,14 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $5 + local.tee $6 i32.const 11 i32.add i32.mul @@ -9603,74 +9698,73 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store loop $for-loop|0 local.get $3 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add - local.get $6 + local.get $3 i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.set $2 - local.get $5 + local.set $0 + local.get $6 if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add local.get $1 - local.get $5 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 - local.get $5 + local.get $0 + local.get $6 i32.add - local.set $2 + local.set $0 end - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|0 end end local.get $7 - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add - local.get $3 + local.get $4 i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if + local.get $2 local.get $0 - local.get $1 call $~lib/string/String#substring - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9681,8 +9775,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -9700,55 +9794,54 @@ local.get $0 local.get $1 local.get $1 - local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 + local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $0 + local.get $1 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9757,35 +9850,35 @@ (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $5 local.get $0 + i32.load offset=12 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $3 + local.tee $4 i32.const 0 i32.lt_s if @@ -9794,16 +9887,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $3 + local.get $4 i32.eqz if - local.get $4 + local.get $5 i32.load call $~lib/util/number/utoa32 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9811,14 +9902,14 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $5 + local.tee $6 i32.const 10 i32.add i32.mul @@ -9829,74 +9920,73 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store loop $for-loop|0 local.get $3 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add - local.get $6 + local.get $3 i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.set $2 - local.get $5 + local.set $0 + local.get $6 if - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add local.get $1 - local.get $5 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 - local.get $5 + local.get $0 + local.get $6 i32.add - local.set $2 + local.set $0 end - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|0 end end local.get $7 - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add - local.get $3 + local.get $4 i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if + local.get $2 local.get $0 - local.get $1 call $~lib/string/String#substring - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9907,44 +9997,43 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $0 ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 i32) - (local $12 i64) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i32) (local $13 i64) local.get $2 local.get $1 i64.sub - local.set $10 + local.set $9 local.get $2 i64.const 1 i32.const 0 local.get $3 i32.sub - local.tee $11 + local.tee $12 i64.extend_i32_s local.tee $1 i64.shl - local.tee $12 + local.tee $11 i64.const 1 i64.sub local.tee $13 i64.and - local.set $7 + local.set $8 local.get $2 local.get $1 i64.shr_u i32.wrap_i64 local.tee $6 - local.set $3 - local.get $6 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) @@ -9990,9 +10079,9 @@ i32.add end end - local.set $9 + local.set $10 loop $while-continue|0 - local.get $9 + local.get $10 i32.const 0 i32.gt_s if @@ -10008,7 +10097,7 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $9 + local.get $10 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 @@ -10016,7 +10105,7 @@ local.get $6 i32.const 1000000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 1000000000 i32.rem_u @@ -10026,7 +10115,7 @@ local.get $6 i32.const 100000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 100000000 i32.rem_u @@ -10036,7 +10125,7 @@ local.get $6 i32.const 10000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 10000000 i32.rem_u @@ -10046,7 +10135,7 @@ local.get $6 i32.const 1000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 1000000 i32.rem_u @@ -10056,7 +10145,7 @@ local.get $6 i32.const 100000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 100000 i32.rem_u @@ -10066,7 +10155,7 @@ local.get $6 i32.const 10000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 10000 i32.rem_u @@ -10076,7 +10165,7 @@ local.get $6 i32.const 1000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 1000 i32.rem_u @@ -10086,7 +10175,7 @@ local.get $6 i32.const 100 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 100 i32.rem_u @@ -10096,7 +10185,7 @@ local.get $6 i32.const 10 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 10 i32.rem_u @@ -10104,64 +10193,64 @@ br $break|1 end local.get $6 - local.set $3 + local.set $7 i32.const 0 local.set $6 br $break|1 end i32.const 0 - local.set $3 + local.set $7 end - local.get $3 local.get $5 + local.get $7 i32.or if local.get $5 - local.tee $8 + local.tee $3 i32.const 1 i32.add local.set $5 - local.get $8 + local.get $3 i32.const 1 i32.shl local.get $0 i32.add - local.get $3 + local.get $7 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $9 + local.get $10 i32.const 1 i32.sub - local.set $9 - local.get $7 + local.set $10 + local.get $4 + local.get $8 local.get $6 i64.extend_i32_u - local.get $11 + local.get $12 i64.extend_i32_s i64.shl i64.add local.tee $1 - local.get $4 - i64.le_u + i64.ge_u if - local.get $9 + local.get $10 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $9 + local.get $10 i32.const 2 i32.shl i32.const 12880 i32.add i64.load32_u - local.get $11 + local.get $12 i64.extend_i32_s i64.shl - local.set $2 + local.set $11 local.get $5 i32.const 1 i32.sub @@ -10169,53 +10258,53 @@ i32.shl local.get $0 i32.add - local.tee $6 + local.tee $0 i32.load16_u - local.set $3 + local.set $7 loop $while-continue|3 - local.get $2 + local.get $11 local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $10 + local.get $9 i64.lt_u select if (result i32) i32.const 1 - local.get $10 + local.get $9 local.get $1 i64.sub local.get $1 - local.get $2 + local.get $11 i64.add - local.tee $7 - local.get $10 + local.tee $2 + local.get $9 i64.sub i64.gt_u - local.get $7 - local.get $10 + local.get $2 + local.get $9 i64.lt_u select else i32.const 0 end if - local.get $3 + local.get $7 i32.const 1 i32.sub - local.set $3 + local.set $7 local.get $1 - local.get $2 + local.get $11 i64.add local.set $1 br $while-continue|3 end end - local.get $6 - local.get $3 + local.get $0 + local.get $7 i32.store16 local.get $5 return @@ -10223,19 +10312,19 @@ br $while-continue|0 end end - loop $while-continue|4 + loop $while-continue|4 (result i32) local.get $4 i64.const 10 i64.mul local.set $4 - local.get $7 + local.get $8 i64.const 10 i64.mul - local.tee $1 - local.get $11 + local.tee $2 + local.get $12 i64.extend_i32_s i64.shr_u - local.tee $2 + local.tee $1 local.get $5 i64.extend_i32_s i64.or @@ -10252,7 +10341,7 @@ i32.shl local.get $0 i32.add - local.get $2 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -10260,97 +10349,95 @@ i32.add i32.store16 end - local.get $9 + local.get $10 i32.const 1 i32.sub - local.set $9 - local.get $4 - local.get $1 + local.set $10 + local.get $2 local.get $13 i64.and - local.tee $7 - i64.le_u - br_if $while-continue|4 - end - local.get $9 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $7 - local.set $1 - i32.const 0 - local.get $9 - i32.sub - i32.const 2 - i32.shl - i32.const 12880 - i32.add - i64.load32_u - local.get $10 - i64.mul - local.set $2 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - local.get $0 - i32.add - local.tee $6 - i32.load16_u - local.set $3 - loop $while-continue|6 - local.get $12 + local.tee $8 local.get $4 - local.get $1 - i64.sub - i64.le_u + i64.ge_u + br_if $while-continue|4 + local.get $10 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $8 + local.set $1 i32.const 0 - local.get $1 - local.get $2 - i64.lt_u - select - if (result i32) - i32.const 1 - local.get $2 - local.get $1 - i64.sub + local.get $10 + i32.sub + i32.const 2 + i32.shl + i32.const 12880 + i32.add + i64.load32_u + local.get $9 + i64.mul + local.set $9 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|6 + local.get $11 + local.get $4 local.get $1 - local.get $12 - i64.add - local.tee $7 - local.get $2 i64.sub - i64.gt_u - local.get $2 - local.get $7 - i64.gt_u - select - else + i64.le_u i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.sub - local.set $3 local.get $1 - local.get $12 - i64.add - local.set $1 - br $while-continue|6 + local.get $9 + i64.lt_u + select + if (result i32) + i32.const 1 + local.get $9 + local.get $1 + i64.sub + local.get $1 + local.get $11 + i64.add + local.tee $2 + local.get $9 + i64.sub + i64.gt_u + local.get $2 + local.get $9 + i64.lt_u + select + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $11 + i64.add + local.set $1 + br $while-continue|6 + end end + local.get $0 + local.get $7 + i32.store16 + local.get $5 end - local.get $6 - local.get $3 - i32.store16 - local.get $5 ) (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) local.get $2 i32.eqz if @@ -10451,7 +10538,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $5 + local.tee $2 i32.const 1 i32.shl local.get $0 @@ -10465,28 +10552,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $2 + local.set $4 loop $for-loop|1 local.get $2 - local.get $5 - i32.lt_s + local.get $4 + i32.gt_s if - local.get $2 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|1 end end local.get $1 - local.get $5 + local.get $2 i32.add else local.get $1 @@ -10514,6 +10601,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -10560,12 +10648,9 @@ i32.add end end - local.set $1 - local.get $0 - local.get $1 i32.const 1 i32.add - local.tee $0 + local.tee $1 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -10573,7 +10658,7 @@ local.get $2 select i32.store16 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.add else @@ -10609,7 +10694,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -10617,6 +10702,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -10663,21 +10749,18 @@ i32.add end end - local.set $2 - local.get $0 - local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $2 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select i32.store16 offset=4 - local.get $0 local.get $1 + local.get $2 i32.add i32.const 2 i32.add @@ -11042,37 +11125,35 @@ ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 f64) - (local $3 i32) + (local $2 i32) + (local $3 f64) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinFloatArray - local.get $1 + block $__inlined_func$~lib/util/string/joinFloatArray (result i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=12 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $3 + local.tee $5 i32.const 0 i32.lt_s if @@ -11081,29 +11162,28 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end block $folding-inner0 - local.get $3 + local.get $5 i32.eqz if - local.get $4 - f64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/dtoa - local.get $2 + block $__inlined_func$~lib/util/number/dtoa (result i32) + local.get $1 + f64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $3 f64.const 0 f64.eq if @@ -11112,17 +11192,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11808 - local.set $0 br $__inlined_func$~lib/util/number/dtoa end - local.get $2 - local.get $2 + local.get $3 + local.get $3 f64.sub f64.const 0 f64.ne if - local.get $2 - local.get $2 + local.get $3 + local.get $3 f64.ne if global.get $~lib/memory/__stack_pointer @@ -11130,7 +11209,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11840 - local.set $0 br $__inlined_func$~lib/util/number/dtoa end global.get $~lib/memory/__stack_pointer @@ -11139,15 +11217,14 @@ global.set $~lib/memory/__stack_pointer i32.const 11872 i32.const 11920 - local.get $2 + local.get $3 f64.const 0 f64.lt select - local.set $0 br $__inlined_func$~lib/util/number/dtoa end i32.const 11952 - local.get $2 + local.get $3 call $~lib/util/number/dtoa_core i32.const 1 i32.shl @@ -11166,16 +11243,18 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 end + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.const 11772 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $6 i32.const 28 i32.add i32.mul @@ -11186,49 +11265,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s + local.get $4 + local.get $5 + i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $6 + local.get $4 i32.const 3 i32.shl - local.get $4 + local.get $1 i32.add f64.load call $~lib/util/number/dtoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $6 if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 11776 - local.get $5 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $6 i32.add local.set $0 end - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 + local.set $4 br $for-loop|0 end end @@ -11236,40 +11315,39 @@ local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $3 + local.get $5 i32.const 3 i32.shl - local.get $4 + local.get $1 i32.add f64.load call $~lib/util/number/dtoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $1 i32.gt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 return end i32.const 32000 @@ -11286,37 +11364,37 @@ (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $7 - local.get $0 - i32.load offset=12 - local.set $5 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - block $__inlined_func$~lib/util/string/joinStringArray + block $__inlined_func$~lib/util/string/joinStringArray (result i32) + local.get $0 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=12 + local.set $5 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + i32.const 0 + i32.store offset=8 local.get $5 i32.const 1 i32.sub @@ -11329,7 +11407,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 br $__inlined_func$~lib/util/string/joinStringArray end local.get $6 @@ -11341,24 +11418,23 @@ i32.load local.tee $0 i32.store - local.get $0 - i32.const 9280 - local.get $0 - select - local.set $0 local.get $1 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 9280 + local.get $0 + select br $__inlined_func$~lib/util/string/joinStringArray end loop $for-loop|0 - local.get $3 + local.get $0 local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 2 i32.shl local.get $7 @@ -11374,14 +11450,14 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.get $0 + local.get $3 i32.add - local.set $0 + local.set $3 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|0 end end @@ -11395,50 +11471,50 @@ i32.shr_u local.tee $5 i32.mul - local.get $0 + local.get $3 i32.add i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $4 i32.store offset=8 i32.const 0 - local.set $3 + local.set $0 loop $for-loop|1 - local.get $3 + local.get $0 local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 2 i32.shl local.get $7 i32.add i32.load - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $4 + local.get $3 if local.get $2 i32.const 1 i32.shl - local.get $0 - i32.add - local.get $4 local.get $4 + i32.add + local.get $3 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $4 + local.get $3 i32.add local.set $2 end @@ -11447,7 +11523,7 @@ local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $4 i32.add local.get $1 local.get $5 @@ -11459,10 +11535,10 @@ i32.add local.set $2 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|1 end end @@ -11473,17 +11549,17 @@ local.get $7 i32.add i32.load - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 if local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $4 i32.add - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -11497,8 +11573,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 end - local.get $0 ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) @@ -11506,36 +11582,34 @@ (local $3 i32) (local $4 i32) (local $5 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - block $__inlined_func$~lib/util/string/joinReferenceArray + block $__inlined_func$~lib/util/string/joinReferenceArray (result i32) + local.get $0 + i32.load offset=4 + local.set $1 local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 i32.const 1 i32.sub local.tee $2 @@ -11547,7 +11621,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray end local.get $2 @@ -11567,7 +11640,6 @@ i32.const 9280 local.get $1 select - local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray end i32.const 9280 @@ -11636,9 +11708,9 @@ if global.get $~lib/memory/__stack_pointer local.tee $1 + local.get $1 i32.const 13120 i32.store offset=8 - local.get $1 local.get $0 i32.const 13120 call $~lib/string/String.__concat @@ -11649,8 +11721,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 end - local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -11738,15 +11810,14 @@ i32.add end end + local.get $2 + i32.add local.set $1 local.get $0 local.get $3 local.get $1 - local.get $2 - i32.add - local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $0 + local.get $1 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -11983,7 +12054,6 @@ local.get $0 local.get $3 local.get $2 - local.tee $0 call $~lib/util/number/utoa32_dec_lut else local.get $0 @@ -12038,10 +12108,10 @@ i32.add end end - local.tee $0 + local.tee $2 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $2 ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) @@ -12051,31 +12121,27 @@ (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $3 + local.tee $7 i32.const 0 i32.lt_s if @@ -12084,28 +12150,27 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $3 + local.get $7 i32.eqz if - local.get $4 - i64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64 + block $__inlined_func$~lib/util/number/utoa64 (result i32) + local.get $4 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $2 i64.eqz if @@ -12114,7 +12179,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9872 - local.set $0 br $__inlined_func$~lib/util/number/utoa64 end local.get $2 @@ -12124,63 +12188,63 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.wrap_i64 - local.tee $3 local.tee $0 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.tee $1 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.store - local.get $0 local.get $3 - local.get $1 + local.get $0 + local.get $6 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -12234,126 +12298,127 @@ i32.add end end - local.tee $1 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 local.get $2 - local.get $1 + local.get $6 call $~lib/util/number/utoa64_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 end + local.set $4 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.const 9564 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $6 i32.const 20 i32.add i32.mul i32.const 20 i32.add - local.tee $7 + local.tee $0 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $5 i32.store loop $for-loop|0 local.get $3 - local.get $6 - i32.gt_s + local.get $7 + i32.lt_s if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $5 i32.add - local.get $6 + local.get $3 i32.const 3 i32.shl local.get $4 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 - local.get $5 + local.set $1 + local.get $6 if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $5 i32.add i32.const 9568 - local.get $5 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.add - local.set $0 + local.set $1 end - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|0 end end - local.get $7 local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $5 i32.add - local.get $3 + local.get $7 i32.const 3 i32.shl local.get $4 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $4 i32.gt_s if - local.get $1 - local.get $0 + local.get $5 + local.get $4 call $~lib/string/String#substring - local.set $0 + local.set $4 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 end - local.get $0 return end i32.const 32000 @@ -12370,7 +12435,7 @@ local.get $1 i64.const 0 i64.lt_s - local.tee $3 + local.tee $2 if local.get $0 i32.const 45 @@ -12384,7 +12449,7 @@ i64.const 10 i64.lt_u if - local.get $3 + local.get $2 i32.const 1 i32.shl local.get $0 @@ -12393,7 +12458,7 @@ i64.const 48 i64.or i64.store16 - local.get $3 + local.get $2 i32.const 1 i32.add return @@ -12405,59 +12470,58 @@ local.get $1 i32.wrap_i64 local.tee $4 - local.tee $2 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end + local.get $2 + i32.add local.set $2 local.get $0 local.get $4 local.get $2 - local.get $3 - i32.add - local.tee $0 call $~lib/util/number/utoa32_dec_lut else local.get $0 @@ -12512,572 +12576,228 @@ i32.add end end - local.get $3 + local.get $2 i32.add - local.tee $0 + local.tee $2 call $~lib/util/number/utoa64_dec_lut end + local.get $2 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $1 + i32.const 255 + i32.and + local.tee $2 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $1 local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $1 ) - (func $~lib/array/Array#join (param $0 i32) (result i32) - (local $1 i32) - (local $2 i64) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $5 - local.get $0 - i32.load offset=12 - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner1 + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9280 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $4 + i32.eqz + if + local.get $5 + i32.load8_u + call $~lib/util/number/utoa32 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $6 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + loop $for-loop|0 + local.get $3 + local.get $4 i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.const 1 + i32.shl + local.get $2 + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $0 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9280 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - block $folding-inner0 - local.get $4 - i32.eqz + local.get $6 if - local.get $5 - i64.load - i64.extend32_s - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa64 - local.get $2 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9872 - local.set $0 - br $__inlined_func$~lib/util/number/itoa64 - end - i64.const 0 - local.get $2 - i64.sub - local.get $2 - local.get $2 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $3 - select - local.tee $2 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.wrap_i64 - local.tee $6 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.get $3 - i32.add - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $6 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $2 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $2 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $2 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $2 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $2 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $2 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $2 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $2 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.get $3 - i32.add - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa64_dec_lut - end - local.get $3 - if - local.get $0 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 9564 - i32.load - i32.const 1 - i32.shr_u - local.tee $7 - i32.const 21 - i32.add - i32.mul - i32.const 21 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - local.get $3 - i32.const 3 - i32.shl - local.get $5 - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $7 - if - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 9568 - local.get $7 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $7 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end - end - local.get $6 - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - local.get $4 - i32.const 3 - i32.shl - local.get $5 - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $1 local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - return - end - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 255 - i32.and - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $1 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $1 - i32.const 255 - i32.and - local.tee $2 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $1 - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - local.get $1 - ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9280 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - local.get $3 - i32.eqz - if - local.get $4 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $2 - i32.const 1 - i32.shl - local.get $0 - i32.add - local.get $4 - local.get $6 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $5 - if - local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add local.get $1 - local.get $5 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $2 - local.get $5 + local.get $0 + local.get $6 i32.add - local.set $2 + local.set $0 end - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|0 end end local.get $7 - local.get $2 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add - local.get $3 local.get $4 + local.get $5 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $2 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if + local.get $2 local.get $0 - local.get $1 call $~lib/string/String#substring - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -13088,8 +12808,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $0 ) (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13629,12 +13349,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $10 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $7 i32.add local.set $11 i32.const 0 @@ -13659,17 +13389,27 @@ end end local.get $1 - call $~lib/rt/tlsf/__alloc + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 - local.get $1 + local.get $5 i32.const 1 i32.sub local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -13684,26 +13424,26 @@ i32.const 31 i32.lt_s select - local.tee $7 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $6 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $7 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $6 + local.get $7 i32.sub i32.const 1 i32.add @@ -13712,9 +13452,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $7 local.get $9 - local.get $6 + local.get $7 i32.const 31 i32.add local.tee $1 @@ -13728,7 +13468,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 @@ -13740,7 +13480,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $6 + local.get $7 i32.add i32.const 1 i32.add @@ -13781,7 +13521,7 @@ i32.load i32.const 1 i32.add - local.get $7 + local.get $6 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -13811,12 +13551,12 @@ local.get $4 local.get $11 i32.add - local.get $7 - i32.store local.get $6 + i32.store + local.get $7 local.set $3 local.get $5 - local.set $7 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -14171,16 +13911,16 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 local.get $1 i32.const 2 i32.shl local.get $0 i32.add i32.load - local.tee $5 + local.tee $6 i32.store - local.get $4 + local.get $5 local.get $1 i32.const 1 i32.add @@ -14190,12 +13930,12 @@ local.get $0 i32.add i32.load - local.tee $6 + local.tee $7 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $5 local.get $6 + local.get $7 local.get $3 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -14221,12 +13961,12 @@ local.get $5 local.get $6 i32.load - local.tee $5 + local.tee $6 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $7 - local.get $5 + local.get $6 local.get $3 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -14266,14 +14006,14 @@ i32.shl local.get $0 i32.add - local.tee $3 + local.tee $6 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $3 + local.get $6 local.get $5 i32.store local.get $2 @@ -14303,12 +14043,12 @@ local.get $1 local.get $5 i32.load - local.tee $1 + local.tee $5 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $6 - local.get $1 + local.get $5 local.get $3 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -14332,16 +14072,231 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $std/array/assertStableSortedForComplexObjects + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=16 + local.get $1 + local.tee $4 + global.get $std/array/inputStabArr + local.tee $0 + i32.store offset=8 + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + i32.const 0 + local.get $0 + i32.load offset=12 + local.tee $2 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $5 + local.get $1 + local.get $2 + local.get $5 + i32.sub + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.gt_s + select + local.tee $6 + i32.const 2 + i32.const 20 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=4 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.set $5 + i32.const 0 + local.set $0 + local.get $6 + i32.const 2 + i32.shl + local.set $6 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + local.get $3 + i32.add + local.get $0 + local.get $5 + i32.add + i32.load + local.tee $1 + i32.store + local.get $2 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $2 + local.tee $0 + i32.store + local.get $1 + i32.const 8928 + i32.store offset=4 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + i32.const 8928 + call $~lib/util/sort/SORT + local.get $4 + local.get $0 + local.tee $3 + i32.store offset=12 + i32.const 1 + local.set $0 + global.get $~lib/memory/__stack_pointer + global.get $std/array/inputStabArr + local.tee $5 + i32.store + local.get $5 + i32.load offset=12 + local.set $1 + loop $for-loop|0 + local.get $1 + local.get $7 + i32.gt_s + if + block $for-break0 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $7 + call $~lib/array/Array#__get + local.tee $5 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/outputStabArr + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + local.get $7 + call $~lib/array/Array#__get + local.tee $6 + i32.store offset=20 + local.get $5 + i32.load + local.get $6 + i32.load + i32.ne + if (result i32) + i32.const 1 + else + local.get $5 + i32.load offset=4 + local.get $6 + i32.load offset=4 + i32.ne + end + if + i32.const 0 + local.set $0 + br $for-break0 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|0 + end + end + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1042 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -14584,30 +14539,9 @@ (local $4 i32) (local $5 i32) (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 9568 - i32.store - local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $0 - local.get $1 - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14615,17 +14549,36 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 + local.tee $2 i32.const 0 - i32.store offset=8 - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> + i32.store + local.get $2 + i32.const 9568 + i32.store + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> (result i32) + local.get $0 + i32.load offset=4 + local.set $1 local.get $0 + i32.load offset=12 + local.get $2 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 0 i32.lt_s if @@ -14634,25 +14587,23 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $1 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if (result i32) - local.get $0 + local.get $1 call $~lib/array/Array#toString else i32.const 9280 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -14670,7 +14621,7 @@ i32.shr_u local.set $5 loop $for-loop|0 - local.get $1 + local.get $2 local.get $4 i32.gt_s if @@ -14678,7 +14629,7 @@ local.get $4 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load local.tee $3 @@ -14715,25 +14666,25 @@ end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 call $~lib/array/Array#toString - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 @@ -14742,12 +14693,12 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 32000 @@ -14763,87 +14714,88 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f64) + (local $7 f64) + (local $8 i64) + (local $9 i32) (local $10 i32) - (local $11 f32) + (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 172 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner3 + block $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i64.const 0 i64.store offset=16 - local.get $0 + local.get $1 i64.const 0 i64.store offset=24 - local.get $0 + local.get $1 i64.const 0 i64.store offset=32 - local.get $0 + local.get $1 i64.const 0 i64.store offset=40 - local.get $0 + local.get $1 i64.const 0 i64.store offset=48 - local.get $0 + local.get $1 i64.const 0 i64.store offset=56 - local.get $0 + local.get $1 i64.const 0 i64.store offset=64 - local.get $0 + local.get $1 i64.const 0 i64.store offset=72 - local.get $0 + local.get $1 i64.const 0 i64.store offset=80 - local.get $0 + local.get $1 i64.const 0 i64.store offset=88 - local.get $0 + local.get $1 i64.const 0 i64.store offset=96 - local.get $0 + local.get $1 i64.const 0 i64.store offset=104 - local.get $0 + local.get $1 i64.const 0 i64.store offset=112 - local.get $0 + local.get $1 i64.const 0 i64.store offset=120 - local.get $0 + local.get $1 i64.const 0 i64.store offset=128 - local.get $0 + local.get $1 i64.const 0 i64.store offset=136 - local.get $0 + local.get $1 i64.const 0 i64.store offset=144 - local.get $0 + local.get $1 i64.const 0 i64.store offset=152 - local.get $0 + local.get $1 i64.const 0 i64.store offset=160 - local.get $0 + local.get $1 i32.const 0 i32.store offset=168 memory.size @@ -14883,9 +14835,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -14894,12 +14846,12 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new @@ -14913,7 +14865,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -14982,9 +14934,9 @@ i32.store local.get $1 global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -15000,9 +14952,9 @@ i32.const 6 i32.const 1696 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 1 i32.const 3 @@ -15013,12 +14965,12 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -15029,7 +14981,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 i32.const 0 i32.const 2147483647 @@ -15040,12 +14992,12 @@ i32.const 6 i32.const 1760 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -15056,7 +15008,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.const 0 i32.const -3 @@ -15067,12 +15019,12 @@ i32.const 6 i32.const 1792 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -15083,7 +15035,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 i32.const -2 i32.const 2147483647 @@ -15094,12 +15046,12 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -15110,7 +15062,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 i32.const 1 i32.const 0 @@ -15121,12 +15073,12 @@ i32.const 6 i32.const 1856 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -15143,43 +15095,43 @@ i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $0 + local.get $1 i32.load offset=4 local.set $4 i32.const 1 - local.get $0 + local.get $1 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $12 + local.get $12 i32.const 1 i32.gt_s select - local.set $1 + local.set $2 i32.const 3 - local.get $2 - local.get $2 + local.get $12 + local.get $12 i32.const 3 i32.gt_s select - local.set $2 + local.set $0 loop $for-loop|0 - local.get $1 + local.get $0 local.get $2 - i32.lt_s + i32.gt_s if - local.get $1 + local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.const 1 i32.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end @@ -15188,12 +15140,12 @@ i32.const 7 i32.const 1936 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15204,10 +15156,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.tee $1 + local.get $1 i32.load offset=4 - local.set $0 + local.set $12 i32.const 0 local.get $1 i32.load offset=12 @@ -15216,24 +15167,26 @@ i32.const 0 i32.gt_s select - local.set $5 - loop $for-loop|03 - local.get $2 - local.get $5 + local.set $4 + local.get $2 + local.set $0 + loop $for-loop|01 + local.get $0 + local.get $4 i32.gt_s if - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $0 + local.get $12 i32.add i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|03 + local.set $4 + br $for-loop|01 end end i32.const 5 @@ -15263,39 +15216,39 @@ i32.const 0 local.get $1 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $12 + local.get $12 i32.const 0 i32.gt_s select - local.set $0 - local.get $2 + local.set $2 + local.get $12 i32.const 3 i32.sub - local.tee $2 + local.tee $0 i32.const 0 - local.get $2 + local.get $0 i32.const 0 i32.gt_s select - local.set $2 - loop $for-loop|05 + local.set $0 + loop $for-loop|03 local.get $0 local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.const 1 i32.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|05 + local.set $2 + br $for-loop|03 end end i32.const 5 @@ -15321,7 +15274,7 @@ end local.get $1 i32.load offset=4 - local.set $4 + local.set $12 local.get $1 i32.load offset=12 local.tee $2 @@ -15333,24 +15286,26 @@ i32.const 0 i32.gt_s select - local.set $5 - loop $for-loop|07 - local.get $2 - local.get $5 + local.set $4 + local.get $2 + local.set $0 + loop $for-loop|05 + local.get $0 + local.get $4 i32.gt_s if - local.get $5 + local.get $4 i32.const 2 i32.shl - local.get $4 + local.get $12 i32.add i32.const 2 i32.store - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 - br $for-loop|07 + local.set $4 + br $for-loop|05 end end i32.const 5 @@ -15380,36 +15335,36 @@ i32.const 1 local.get $1 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $12 + local.get $12 i32.const 1 i32.gt_s select - local.set $0 + local.set $2 i32.const 0 - local.get $2 - local.get $2 + local.get $12 + local.get $12 i32.const 0 i32.gt_s select - local.set $2 - loop $for-loop|09 + local.set $0 + loop $for-loop|07 local.get $0 local.get $2 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $2 i32.const 2 i32.shl local.get $4 i32.add i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|09 + local.set $2 + br $for-loop|07 end end i32.const 5 @@ -15435,9 +15390,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -15449,9 +15404,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15465,17 +15420,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 42 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -15490,9 +15445,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 1 i32.ne @@ -15506,9 +15461,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15522,9 +15477,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -15538,9 +15493,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -15552,9 +15507,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15568,17 +15523,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 1 i32.ne @@ -15592,9 +15547,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15608,9 +15563,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15625,17 +15580,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 44 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -15649,9 +15604,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15665,9 +15620,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15682,9 +15637,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15699,17 +15654,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 45 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -15723,9 +15678,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15739,9 +15694,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15756,9 +15711,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15773,9 +15728,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15789,40 +15744,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $0 i32.const 0 i32.store offset=12 - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -15838,9 +15793,9 @@ i32.const 3 i32.const 2224 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -15853,7 +15808,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -15866,7 +15821,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -15879,7 +15834,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -15899,19 +15854,19 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $2 call $~lib/array/Array#concat - local.tee $1 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15925,9 +15880,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -15939,7 +15894,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -15956,19 +15911,19 @@ i32.const 3 i32.const 2272 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15980,7 +15935,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15993,7 +15948,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -16006,7 +15961,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -16028,21 +15983,21 @@ call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $1 i32.store - local.get $1 local.get $0 + local.get $1 local.get $2 call $~lib/array/Array#concat - local.tee $1 + local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16066,7 +16021,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=12 i32.const 5 i32.ne @@ -16078,7 +16033,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -16091,7 +16046,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -16104,7 +16059,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -16117,7 +16072,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -16130,7 +16085,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -16143,10 +16098,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $~lib/array/Array#pop drop - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -16177,17 +16132,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $1 i32.store offset=8 - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 call $~lib/array/Array#concat - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -16215,28 +16170,28 @@ i32.const 3 i32.const 2336 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2384 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16254,28 +16209,28 @@ i32.const 3 i32.const 2432 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2480 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16293,28 +16248,28 @@ i32.const 3 i32.const 2528 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2576 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16332,28 +16287,28 @@ i32.const 3 i32.const 2624 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2672 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16371,28 +16326,28 @@ i32.const 3 i32.const 2720 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2768 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16410,28 +16365,28 @@ i32.const 3 i32.const 2816 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2864 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16449,28 +16404,28 @@ i32.const 3 i32.const 2912 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2960 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16488,28 +16443,28 @@ i32.const 3 i32.const 3008 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3056 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16527,28 +16482,28 @@ i32.const 3 i32.const 3104 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3152 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16566,28 +16521,28 @@ i32.const 3 i32.const 3200 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3248 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16605,28 +16560,28 @@ i32.const 3 i32.const 3296 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3344 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16644,28 +16599,28 @@ i32.const 3 i32.const 3392 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const -4 i32.const -3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3440 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16679,17 +16634,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 42 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -16703,9 +16658,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16719,9 +16674,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16736,9 +16691,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16753,9 +16708,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16770,9 +16725,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -16787,17 +16742,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 41 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 5 i32.ne @@ -16811,9 +16766,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16827,9 +16782,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -16844,9 +16799,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -16861,9 +16816,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -16878,9 +16833,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -16895,9 +16850,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -16912,9 +16867,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $5 + local.tee $1 i32.store - local.get $5 + local.get $1 i32.load offset=12 local.tee $0 i32.const 1 @@ -16927,29 +16882,29 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $12 i32.load - local.get $4 - local.get $4 + local.get $12 + local.get $12 i32.const 4 i32.add local.get $0 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 2 i32.shl local.tee $0 call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $12 i32.add i32.const 0 i32.store - local.get $5 local.get $1 + local.get $2 i32.store offset=12 global.set $std/array/i global.get $std/array/i @@ -16965,9 +16920,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -16981,9 +16936,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16997,9 +16952,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -17014,9 +16969,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17031,9 +16986,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -17048,9 +17003,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -17065,9 +17020,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -17083,9 +17038,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -17099,9 +17054,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17115,9 +17070,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -17132,9 +17087,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17149,9 +17104,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -17177,19 +17132,19 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 i32.const 3 i32.const 2 i32.const 3 i32.const 3536 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17206,19 +17161,19 @@ i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3568 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17235,19 +17190,19 @@ i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 i32.const 4 i32.const 2 i32.const 3 i32.const 3600 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17264,9 +17219,9 @@ i32.const 0 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 local.get $2 i32.const 0 call $std/array/isArraysEqual @@ -17284,19 +17239,19 @@ i32.const -2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3648 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17313,19 +17268,19 @@ i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3680 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17342,19 +17297,19 @@ i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3712 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17370,11 +17325,11 @@ i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -17388,11 +17343,11 @@ i32.const 10 i32.const 2147483647 call $~lib/array/Array#slice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -17408,7 +17363,7 @@ i32.store local.get $1 i32.load offset=4 - local.set $6 + local.set $11 i32.const 0 local.set $0 local.get $1 @@ -17420,20 +17375,20 @@ local.get $1 i32.const 1 i32.shr_u - local.set $5 + local.set $12 local.get $1 i32.const 1 i32.sub local.set $4 loop $while-continue|0 local.get $0 - local.get $5 + local.get $12 i32.lt_u if local.get $0 i32.const 2 i32.shl - local.get $6 + local.get $11 i32.add local.tee $1 i32.load @@ -17444,7 +17399,7 @@ i32.sub i32.const 2 i32.shl - local.get $6 + local.get $11 i32.add local.tee $1 i32.load @@ -17462,9 +17417,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -17478,9 +17433,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17494,9 +17449,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -17511,9 +17466,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17528,9 +17483,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -17545,17 +17500,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 44 call $~lib/array/Array#push drop @@ -17570,23 +17525,26 @@ local.get $1 i32.store local.get $1 - call $~lib/array/Array#reverse - local.tee $2 + i32.load offset=4 + local.get $1 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + local.get $1 i32.store offset=16 i32.const 0 local.set $0 - local.get $2 + local.get $1 i32.load offset=12 - local.set $1 - loop $for-loop|010 + local.set $2 + loop $for-loop|08 local.get $0 - local.get $1 + local.get $2 i32.lt_s if - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.get $2 + local.get $1 i32.load offset=12 local.get $0 i32.sub @@ -17605,7 +17563,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|010 + br $for-loop|08 end end global.get $~lib/memory/__stack_pointer @@ -17619,23 +17577,26 @@ local.get $1 i32.store local.get $1 - call $~lib/array/Array#reverse - local.tee $2 + i32.load offset=4 + local.get $1 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + local.get $1 i32.store offset=4 i32.const 0 local.set $0 - local.get $2 + local.get $1 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|1 local.get $0 - local.get $1 + local.get $2 i32.lt_s if - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.get $2 + local.get $1 i32.load offset=12 local.get $0 i32.sub @@ -17668,23 +17629,26 @@ local.get $1 i32.store local.get $1 - call $~lib/array/Array#reverse - local.tee $2 + i32.load offset=4 + local.get $1 + i32.load offset=12 + call $~lib/util/bytes/REVERSE + local.get $1 i32.store offset=12 i32.const 0 local.set $0 - local.get $2 + local.get $1 i32.load offset=12 - local.set $1 + local.set $2 loop $for-loop|2 local.get $0 - local.get $1 + local.get $2 i32.lt_s if - local.get $2 + local.get $1 local.get $0 call $~lib/array/Array#__get - local.get $2 + local.get $1 i32.load offset=12 local.get $0 i32.sub @@ -17712,11 +17676,11 @@ i32.const 9 i32.const 3856 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#reverse local.tee $2 i32.store offset=20 @@ -17761,11 +17725,11 @@ i32.const 9 i32.const 3904 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#reverse local.tee $2 i32.store offset=24 @@ -17810,11 +17774,11 @@ i32.const 9 i32.const 3952 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#reverse local.tee $2 i32.store offset=28 @@ -17855,36 +17819,35 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store i32.const 0 + local.set $1 + i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf - end - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|011 - local.get $0 - local.get $2 + local.set $2 + loop $while-continue|012 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 44 @@ -17893,8 +17856,8 @@ local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + local.set $1 + br $while-continue|012 end end i32.const -1 @@ -17913,46 +17876,45 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store i32.const 0 + local.set $1 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf12 - local.get $1 + block $__inlined_func$~lib/array/Array#indexOf39 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf12 - end - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf39 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|013 - local.get $0 - local.get $2 + local.set $2 + loop $while-continue|040 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf12 + br_if $__inlined_func$~lib/array/Array#indexOf39 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|013 + local.set $1 + br $while-continue|040 end end i32.const -1 @@ -17973,46 +17935,45 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store i32.const 0 + local.set $1 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf14 - local.get $1 + block $__inlined_func$~lib/array/Array#indexOf41 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf14 - end - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf41 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|015 - local.get $0 - local.get $2 + local.set $2 + loop $while-continue|042 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf14 + br_if $__inlined_func$~lib/array/Array#indexOf41 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|015 + local.set $1 + br $while-continue|042 end end i32.const -1 @@ -18033,46 +17994,45 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store i32.const 100 + local.set $1 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf16 - local.get $1 + block $__inlined_func$~lib/array/Array#indexOf43 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 100 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf16 - end - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf43 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|017 - local.get $0 - local.get $2 + local.set $2 + loop $while-continue|044 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf16 + br_if $__inlined_func$~lib/array/Array#indexOf43 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|044 end end i32.const -1 @@ -18093,38 +18053,36 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - block $__inlined_func$~lib/array/Array#indexOf18 - local.get $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf45 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf18 - end - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf45 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 local.set $1 - loop $while-continue|019 + loop $while-continue|046 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 @@ -18135,12 +18093,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf18 + br_if $__inlined_func$~lib/array/Array#indexOf45 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|019 + br $while-continue|046 end end i32.const -1 @@ -18161,38 +18119,36 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - block $__inlined_func$~lib/array/Array#indexOf20 - local.get $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf47 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const -2 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf20 - end - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf47 + local.get $4 i32.const 2 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 local.set $1 - loop $while-continue|021 + loop $while-continue|048 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 @@ -18203,12 +18159,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf20 + br_if $__inlined_func$~lib/array/Array#indexOf47 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|021 + br $while-continue|048 end end i32.const -1 @@ -18229,38 +18185,36 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - block $__inlined_func$~lib/array/Array#indexOf22 - local.get $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf49 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const -4 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf22 - end - local.get $2 + br_if $__inlined_func$~lib/array/Array#indexOf49 + local.get $4 i32.const 4 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 local.set $1 - loop $while-continue|023 + loop $while-continue|050 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $0 @@ -18271,12 +18225,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf22 + br_if $__inlined_func$~lib/array/Array#indexOf49 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|023 + br $while-continue|050 end end i32.const -1 @@ -18297,46 +18251,45 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store i32.const 0 + local.set $1 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf24 - local.get $1 + block $__inlined_func$~lib/array/Array#indexOf51 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf24 - end - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf51 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|025 - local.get $0 - local.get $2 + local.set $2 + loop $while-continue|052 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf24 + br_if $__inlined_func$~lib/array/Array#indexOf51 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|025 + local.set $1 + br $while-continue|052 end end i32.const -1 @@ -18357,46 +18310,45 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store i32.const 1 + local.set $1 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf26 - local.get $1 + block $__inlined_func$~lib/array/Array#indexOf53 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 1 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf26 - end - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf53 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|027 - local.get $0 - local.get $2 + local.set $2 + loop $while-continue|054 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf26 + br_if $__inlined_func$~lib/array/Array#indexOf53 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|054 end end i32.const -1 @@ -18417,46 +18369,45 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store i32.const 2 + local.set $1 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf28 - local.get $1 + block $__inlined_func$~lib/array/Array#indexOf55 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf28 - end - local.get $1 + br_if $__inlined_func$~lib/array/Array#indexOf55 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|029 - local.get $0 - local.get $2 + local.set $2 + loop $while-continue|056 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf28 + br_if $__inlined_func$~lib/array/Array#indexOf55 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|029 + local.set $1 + br $while-continue|056 end end i32.const -1 @@ -18485,9 +18436,9 @@ local.get $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=12 @@ -18501,13 +18452,13 @@ local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|010 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -18516,17 +18467,17 @@ f32.const nan:0x400000 f32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|010 + local.set $1 + br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18547,9 +18498,9 @@ local.get $2 i32.store i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=12 @@ -18563,13 +18514,13 @@ local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|037 - local.get $0 + loop $while-continue|058 + local.get $1 local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -18578,17 +18529,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|037 + local.set $1 + br $while-continue|058 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18605,16 +18556,16 @@ i32.const 3 i32.const 4064 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=24 i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $1 i32.load offset=12 local.tee $4 local.set $2 i32.const -1 - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf local.get $4 i32.eqz @@ -18635,16 +18586,16 @@ i32.lt_s select local.set $2 - local.get $0 + local.get $1 i32.load offset=4 local.set $4 - loop $while-continue|00 + loop $while-continue|09 local.get $2 i32.const 0 i32.ge_s if local.get $2 - local.tee $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -18653,17 +18604,17 @@ i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 + local.get $0 i32.const 1 i32.sub local.set $2 - br $while-continue|00 + br $while-continue|09 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -18676,41 +18627,43 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $1 + local.tee $2 i32.load offset=12 - local.tee $4 - local.set $2 + local.set $0 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $4 - i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf5 + block $__inlined_func$~lib/array/Array#lastIndexOf14 local.get $2 + i32.load offset=12 + local.tee $4 + i32.eqz + br_if $__inlined_func$~lib/array/Array#lastIndexOf14 + local.get $0 local.get $4 i32.add local.get $4 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $0 + local.get $0 local.get $4 i32.ge_s select - local.get $2 + local.get $0 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $0 + local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|06 - local.get $2 + loop $while-continue|015 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $0 local.tee $1 i32.const 2 i32.shl @@ -18719,12 +18672,12 @@ i32.load i32.const 7 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf5 + br_if $__inlined_func$~lib/array/Array#lastIndexOf14 local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|06 + local.set $0 + br $while-continue|015 end end i32.const -1 @@ -18741,29 +18694,27 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf7 - local.get $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf16 + local.get $2 i32.load offset=12 - local.tee $1 + local.tee $0 i32.eqz - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/array/Array#lastIndexOf7 - end - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf16 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_s select local.set $1 - local.get $0 + local.get $2 i32.load offset=4 - local.set $2 - loop $while-continue|030 + local.set $0 + loop $while-continue|059 local.get $1 i32.const 0 i32.ge_s @@ -18771,17 +18722,17 @@ local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf7 + br_if $__inlined_func$~lib/array/Array#lastIndexOf16 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|030 + br $while-continue|059 end end i32.const -1 @@ -18798,29 +18749,27 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf31 - local.get $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf60 + local.get $2 i32.load offset=12 - local.tee $1 + local.tee $0 i32.eqz - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/array/Array#lastIndexOf31 - end - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf60 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_s select local.set $1 - local.get $0 + local.get $2 i32.load offset=4 - local.set $2 - loop $while-continue|032 + local.set $0 + loop $while-continue|061 local.get $1 i32.const 0 i32.ge_s @@ -18828,17 +18777,17 @@ local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf31 + br_if $__inlined_func$~lib/array/Array#lastIndexOf60 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|032 + br $while-continue|061 end end i32.const -1 @@ -18853,24 +18802,22 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf33 - local.get $0 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf62 + local.get $2 i32.load offset=12 - local.tee $1 + local.tee $0 i32.eqz - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/array/Array#lastIndexOf33 - end - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf62 + local.get $0 i32.const 2 i32.sub local.set $1 - local.get $0 + local.get $2 i32.load offset=4 - local.set $2 - loop $while-continue|034 + local.set $0 + loop $while-continue|063 local.get $1 i32.const 0 i32.ge_s @@ -18878,17 +18825,17 @@ local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf33 + br_if $__inlined_func$~lib/array/Array#lastIndexOf62 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|034 + br $while-continue|063 end end i32.const -1 @@ -18903,25 +18850,22 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf35 - local.get $0 - local.tee $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf64 + local.get $2 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#lastIndexOf35 - end - local.get $0 + br_if $__inlined_func$~lib/array/Array#lastIndexOf64 + local.get $1 i32.const 1 i32.sub local.set $0 - local.get $1 + local.get $2 i32.load offset=4 local.set $1 - loop $while-continue|036 + loop $while-continue|065 local.get $0 i32.const 0 i32.ge_s @@ -18934,12 +18878,12 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf35 + br_if $__inlined_func$~lib/array/Array#lastIndexOf64 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|036 + br $while-continue|065 end end i32.const -1 @@ -18961,30 +18905,29 @@ local.tee $1 i32.store i32.const 0 + local.set $2 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf37 + block $__inlined_func$~lib/array/Array#indexOf17 local.get $1 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf37 - end + br_if $__inlined_func$~lib/array/Array#indexOf17 local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|038 - local.get $0 + loop $while-continue|018 local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $2 + local.tee $0 i32.const 2 i32.shl local.get $1 @@ -18992,12 +18935,12 @@ i32.load i32.const 44 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf37 + br_if $__inlined_func$~lib/array/Array#indexOf17 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|038 + local.set $2 + br $while-continue|018 end end i32.const -1 @@ -19019,30 +18962,29 @@ local.tee $1 i32.store i32.const 0 + local.set $2 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf39 + block $__inlined_func$~lib/array/Array#indexOf20 local.get $1 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf39 - end + br_if $__inlined_func$~lib/array/Array#indexOf20 local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|040 - local.get $0 + loop $while-continue|021 local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $2 + local.tee $0 i32.const 2 i32.shl local.get $1 @@ -19050,12 +18992,12 @@ i32.load i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf39 + br_if $__inlined_func$~lib/array/Array#indexOf20 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|040 + local.set $2 + br $while-continue|021 end end i32.const -1 @@ -19077,30 +19019,29 @@ local.tee $1 i32.store i32.const 0 + local.set $2 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf41 + block $__inlined_func$~lib/array/Array#indexOf23 local.get $1 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf41 - end + br_if $__inlined_func$~lib/array/Array#indexOf23 local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|042 - local.get $0 + loop $while-continue|024 local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $2 + local.tee $0 i32.const 2 i32.shl local.get $1 @@ -19108,12 +19049,12 @@ i32.load i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf41 + br_if $__inlined_func$~lib/array/Array#indexOf23 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $2 + br $while-continue|024 end end i32.const -1 @@ -19135,30 +19076,29 @@ local.tee $1 i32.store i32.const 100 + local.set $2 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf43 + block $__inlined_func$~lib/array/Array#indexOf26 local.get $1 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 100 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf43 - end + br_if $__inlined_func$~lib/array/Array#indexOf26 local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|044 - local.get $0 + loop $while-continue|027 local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $2 + local.tee $0 i32.const 2 i32.shl local.get $1 @@ -19166,12 +19106,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf43 + br_if $__inlined_func$~lib/array/Array#indexOf26 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|044 + local.set $2 + br $while-continue|027 end end i32.const -1 @@ -19192,7 +19132,9 @@ global.get $std/array/arr local.tee $1 i32.store - block $__inlined_func$~lib/array/Array#indexOf45 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf29 local.get $1 i32.load offset=12 local.tee $2 @@ -19201,11 +19143,7 @@ i32.const 1 local.get $2 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf45 - end + br_if $__inlined_func$~lib/array/Array#indexOf29 local.get $2 i32.const 100 i32.sub @@ -19219,7 +19157,7 @@ local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|046 + loop $while-continue|030 local.get $0 local.get $2 i32.lt_s @@ -19232,12 +19170,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf45 + br_if $__inlined_func$~lib/array/Array#indexOf29 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|046 + br $while-continue|030 end end i32.const -1 @@ -19258,7 +19196,9 @@ global.get $std/array/arr local.tee $1 i32.store - block $__inlined_func$~lib/array/Array#indexOf47 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf32 local.get $1 i32.load offset=12 local.tee $2 @@ -19267,11 +19207,7 @@ i32.const 1 local.get $2 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf47 - end + br_if $__inlined_func$~lib/array/Array#indexOf32 local.get $2 i32.const 2 i32.sub @@ -19285,7 +19221,7 @@ local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|048 + loop $while-continue|033 local.get $0 local.get $2 i32.lt_s @@ -19298,12 +19234,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf47 + br_if $__inlined_func$~lib/array/Array#indexOf32 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|048 + br $while-continue|033 end end i32.const -1 @@ -19324,7 +19260,9 @@ global.get $std/array/arr local.tee $1 i32.store - block $__inlined_func$~lib/array/Array#indexOf49 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#indexOf35 local.get $1 i32.load offset=12 local.tee $2 @@ -19333,11 +19271,7 @@ i32.const 1 local.get $2 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf49 - end + br_if $__inlined_func$~lib/array/Array#indexOf35 local.get $2 i32.const 4 i32.sub @@ -19351,7 +19285,7 @@ local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|050 + loop $while-continue|036 local.get $0 local.get $2 i32.lt_s @@ -19364,12 +19298,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf49 + br_if $__inlined_func$~lib/array/Array#indexOf35 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|050 + br $while-continue|036 end end i32.const -1 @@ -19391,30 +19325,29 @@ local.tee $1 i32.store i32.const 0 + local.set $2 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf51 + block $__inlined_func$~lib/array/Array#indexOf38 local.get $1 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf51 - end + br_if $__inlined_func$~lib/array/Array#indexOf38 local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|052 - local.get $0 + loop $while-continue|039 local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $2 + local.tee $0 i32.const 2 i32.shl local.get $1 @@ -19422,12 +19355,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf51 + br_if $__inlined_func$~lib/array/Array#indexOf38 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|052 + local.set $2 + br $while-continue|039 end end i32.const -1 @@ -19449,30 +19382,29 @@ local.tee $1 i32.store i32.const 1 + local.set $2 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf53 + block $__inlined_func$~lib/array/Array#indexOf42 local.get $1 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 1 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf53 - end + br_if $__inlined_func$~lib/array/Array#indexOf42 local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|054 - local.get $0 + loop $while-continue|043 local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $2 + local.tee $0 i32.const 2 i32.shl local.get $1 @@ -19480,12 +19412,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf53 + br_if $__inlined_func$~lib/array/Array#indexOf42 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $2 + br $while-continue|043 end end i32.const -1 @@ -19507,30 +19439,29 @@ local.tee $1 i32.store i32.const 2 + local.set $2 + i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf55 + block $__inlined_func$~lib/array/Array#indexOf46 local.get $1 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $2 + local.get $4 select - if - i32.const -1 - local.set $0 - br $__inlined_func$~lib/array/Array#indexOf55 - end + br_if $__inlined_func$~lib/array/Array#indexOf46 local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|056 - local.get $0 + loop $while-continue|047 local.get $2 + local.get $4 i32.lt_s if - local.get $0 + local.get $2 + local.tee $0 i32.const 2 i32.shl local.get $1 @@ -19538,12 +19469,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf55 + br_if $__inlined_func$~lib/array/Array#indexOf46 local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|056 + local.set $2 + br $while-continue|047 end end i32.const -1 @@ -19565,15 +19496,15 @@ i32.const 10 i32.const 4112 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $1 + local.get $0 i32.load offset=12 local.tee $2 i32.const 0 @@ -19583,36 +19514,36 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|047 - local.get $0 + local.set $0 + loop $while-continue|066 + local.get $1 local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add f32.load - local.tee $11 - local.get $11 + local.tee $5 + local.get $5 f32.ne - local.get $11 + local.get $5 f32.const nan:0x400000 f32.eq select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|047 + local.set $1 + br $while-continue|066 end end i32.const 0 @@ -19631,15 +19562,15 @@ i32.const 11 i32.const 4144 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $1 + local.get $0 i32.load offset=12 local.tee $2 i32.const 0 @@ -19649,36 +19580,36 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.load offset=4 - local.set $1 - loop $while-continue|04857 - local.get $0 + local.set $0 + loop $while-continue|067 + local.get $1 local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $1 + local.get $0 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $7 + local.get $7 f64.ne - local.get $9 + local.get $7 f64.const nan:0x8000000000000 f64.eq select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|04857 + local.set $1 + br $while-continue|067 end end i32.const 0 @@ -19694,18 +19625,18 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.const 1 call $~lib/array/Array#splice drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -19719,9 +19650,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19735,9 +19666,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -19752,9 +19683,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -19779,21 +19710,21 @@ i32.const 0 i32.const 2147483647 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 4224 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19810,12 +19741,12 @@ i32.const 3 i32.const 4272 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19839,21 +19770,21 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 4352 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19870,12 +19801,12 @@ i32.const 3 i32.const 4384 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19899,21 +19830,21 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 3 i32.const 2 i32.const 3 i32.const 4480 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19930,12 +19861,12 @@ i32.const 3 i32.const 4512 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19959,21 +19890,21 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 4592 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19990,12 +19921,12 @@ i32.const 3 i32.const 4624 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20019,21 +19950,21 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4704 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20050,12 +19981,12 @@ i32.const 3 i32.const 4736 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20079,21 +20010,21 @@ i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4832 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20110,12 +20041,12 @@ i32.const 3 i32.const 4864 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20139,21 +20070,21 @@ i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 4960 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20170,12 +20101,12 @@ i32.const 3 i32.const 4992 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20199,21 +20130,21 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 5072 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20230,12 +20161,12 @@ i32.const 3 i32.const 5104 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20259,21 +20190,21 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 5200 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20290,12 +20221,12 @@ i32.const 3 i32.const 5232 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20319,21 +20250,21 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5328 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20350,12 +20281,12 @@ i32.const 3 i32.const 5360 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20379,21 +20310,21 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5456 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20410,12 +20341,12 @@ i32.const 3 i32.const 5488 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20439,21 +20370,21 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5584 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20470,12 +20401,12 @@ i32.const 3 i32.const 5616 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20499,21 +20430,21 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5712 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20530,12 +20461,12 @@ i32.const 3 i32.const 5744 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20559,21 +20490,21 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5840 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20590,12 +20521,12 @@ i32.const 3 i32.const 5872 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $2 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20613,15 +20544,15 @@ i32.const 8 i32.const 5920 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#splice - local.tee $0 + local.tee $1 i32.store offset=20 - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -20631,7 +20562,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -20642,53 +20573,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 5 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 local.get $1 + local.get $0 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#splice - local.tee $0 + local.tee $1 i32.store offset=20 - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -20700,7 +20631,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.load @@ -20714,7 +20645,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.load @@ -20728,7 +20659,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -20740,7 +20671,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.load @@ -20754,7 +20685,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.load @@ -20768,7 +20699,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.load @@ -20820,7 +20751,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -20833,11 +20764,11 @@ i32.const 0 i32.gt_s select - local.set $5 + local.set $11 local.get $1 i32.const 1 local.get $3 - local.get $5 + local.get $11 i32.sub local.tee $1 local.get $1 @@ -20850,42 +20781,42 @@ i32.const 0 i32.gt_s select - local.tee $6 + local.tee $10 i32.const 2 i32.const 12 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $1 i32.store - local.get $7 + local.get $1 i32.load offset=4 local.get $0 i32.load offset=4 - local.tee $2 - local.get $5 + local.tee $4 + local.get $11 i32.const 2 i32.shl i32.add - local.tee $1 - local.get $6 + local.tee $2 + local.get $10 i32.const 2 i32.shl call $~lib/memory/memory.copy local.get $3 - local.get $5 - local.get $6 + local.get $10 + local.get $11 i32.add - local.tee $5 + local.tee $11 i32.ne if - local.get $1 - local.get $5 + local.get $2 + local.get $11 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add local.get $3 - local.get $5 + local.get $11 i32.sub i32.const 2 i32.shl @@ -20893,16 +20824,16 @@ end local.get $0 local.get $3 - local.get $6 + local.get $10 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.load offset=12 i32.const 1 i32.ne @@ -20915,7 +20846,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.const 0 call $~lib/array/Array#__get local.tee $1 @@ -20969,9 +20900,9 @@ local.get $0 i32.const 1 call $~lib/array/Array#__get - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.eqz if i32.const 6080 @@ -20981,7 +20912,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load i32.const 2 i32.ne @@ -20995,33 +20926,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.const 1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 i32.const 2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 i32.const 3 call $~lib/array/Array#__set @@ -21038,7 +20969,7 @@ i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex - loop $for-loop|059 + loop $for-loop|075 local.get $2 local.get $4 i32.load offset=12 @@ -21069,7 +21000,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|059 + br $for-loop|075 end end i32.const -1 @@ -21087,11 +21018,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 6176 i32.store offset=8 i32.const 0 @@ -21099,8 +21030,8 @@ local.get $4 i32.load offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex60 - loop $for-loop|061 + block $__inlined_func$~lib/array/Array#findIndex76 + loop $for-loop|077 local.get $2 local.get $4 i32.load offset=12 @@ -21126,12 +21057,12 @@ i32.const 6176 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex60 + br_if $__inlined_func$~lib/array/Array#findIndex76 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|061 + br $for-loop|077 end end i32.const -1 @@ -21151,11 +21082,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 6208 i32.store offset=8 i32.const 0 @@ -21163,8 +21094,8 @@ local.get $4 i32.load offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex62 - loop $for-loop|063 + block $__inlined_func$~lib/array/Array#findIndex78 + loop $for-loop|079 local.get $2 local.get $4 i32.load offset=12 @@ -21190,12 +21121,12 @@ i32.const 6208 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex62 + br_if $__inlined_func$~lib/array/Array#findIndex78 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|063 + br $for-loop|079 end end i32.const -1 @@ -21215,11 +21146,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 6240 i32.store offset=8 i32.const 0 @@ -21227,8 +21158,8 @@ local.get $4 i32.load offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex64 - loop $for-loop|065 + block $__inlined_func$~lib/array/Array#findIndex80 + loop $for-loop|081 local.get $2 local.get $4 i32.load offset=12 @@ -21254,12 +21185,12 @@ i32.const 6240 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex64 + br_if $__inlined_func$~lib/array/Array#findIndex80 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|065 + br $for-loop|081 end end i32.const -1 @@ -21280,9 +21211,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 8 i32.ne @@ -21295,11 +21226,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 6272 i32.store offset=8 i32.const 0 @@ -21307,8 +21238,8 @@ local.get $4 i32.load offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex66 - loop $for-loop|067 + block $__inlined_func$~lib/array/Array#findIndex83 + loop $for-loop|084 local.get $2 local.get $4 i32.load offset=12 @@ -21334,12 +21265,12 @@ i32.const 6272 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex66 + br_if $__inlined_func$~lib/array/Array#findIndex83 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|067 + br $for-loop|084 end end i32.const -1 @@ -21360,30 +21291,30 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer @@ -21398,8 +21329,8 @@ local.get $4 i32.load offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex68 - loop $for-loop|069 + block $__inlined_func$~lib/array/Array#findIndex85 + loop $for-loop|086 local.get $2 local.get $4 i32.load offset=12 @@ -21425,12 +21356,12 @@ i32.const 6304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex68 + br_if $__inlined_func$~lib/array/Array#findIndex85 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|069 + br $for-loop|086 end end i32.const -1 @@ -21451,9 +21382,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -21467,17 +21398,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#push drop @@ -21487,48 +21418,49 @@ i32.const 3 i32.const 6336 call $~lib/rt/__newArray - local.tee $2 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 6384 i32.store offset=8 - local.get $2 + local.get $1 + local.tee $2 i32.load offset=12 i32.const 1 i32.sub - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#findLastIndex - loop $for-loop|058 - local.get $0 + loop $for-loop|088 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $2 i32.const 6384 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|058 + local.set $1 + br $for-loop|088 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i if @@ -21546,39 +21478,39 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $0 - block $__inlined_func$~lib/array/Array#findLastIndex59 - loop $for-loop|060 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#findLastIndex89 + loop $for-loop|090 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $2 i32.const 6416 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex59 - local.get $0 + br_if $__inlined_func$~lib/array/Array#findLastIndex89 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|060 + local.set $1 + br $for-loop|090 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -21598,39 +21530,39 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $0 - block $__inlined_func$~lib/array/Array#findLastIndex61 - loop $for-loop|062 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#findLastIndex91 + loop $for-loop|092 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $2 i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex61 - local.get $0 + br_if $__inlined_func$~lib/array/Array#findLastIndex91 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|062 + local.set $1 + br $for-loop|092 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21650,39 +21582,39 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex63 - loop $for-loop|064 - local.get $1 + local.set $0 + block $__inlined_func$~lib/array/Array#findLastIndex93 + loop $for-loop|094 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $2 i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex63 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findLastIndex93 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|064 + local.set $0 + br $for-loop|094 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21696,56 +21628,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $5 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 6512 i32.store offset=8 block $__inlined_func$~lib/array/Array#every (result i32) i32.const 0 - local.set $1 - local.get $5 + local.set $0 + local.get $12 i32.load offset=12 local.set $4 - loop $for-loop|070 + loop $for-loop|095 local.get $4 - local.get $5 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $5 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $0 local.get $1 - local.get $5 + local.get $0 + local.get $12 i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|070 + local.set $0 + br $for-loop|095 end end i32.const 1 @@ -21760,56 +21692,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $5 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 6544 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every71 (result i32) + block $__inlined_func$~lib/array/Array#every96 (result i32) i32.const 0 - local.set $1 - local.get $5 + local.set $0 + local.get $12 i32.load offset=12 local.set $4 - loop $for-loop|072 + loop $for-loop|097 local.get $4 - local.get $5 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $5 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $0 local.get $1 - local.get $5 + local.get $0 + local.get $12 i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every71 + br_if $__inlined_func$~lib/array/Array#every96 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|072 + local.set $0 + br $for-loop|097 end end i32.const 1 @@ -21823,56 +21755,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $5 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 6576 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every73 (result i32) + block $__inlined_func$~lib/array/Array#every98 (result i32) i32.const 0 - local.set $1 - local.get $5 + local.set $0 + local.get $12 i32.load offset=12 local.set $4 - loop $for-loop|074 + loop $for-loop|099 local.get $4 - local.get $5 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $5 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $0 local.get $1 - local.get $5 + local.get $0 + local.get $12 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every73 + br_if $__inlined_func$~lib/array/Array#every98 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|074 + local.set $0 + br $for-loop|099 end end i32.const 1 @@ -21888,9 +21820,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 8 i32.ne @@ -21903,56 +21835,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $5 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 6608 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every75 (result i32) + block $__inlined_func$~lib/array/Array#every101 (result i32) i32.const 0 - local.set $1 - local.get $5 + local.set $0 + local.get $12 i32.load offset=12 local.set $4 - loop $for-loop|076 + loop $for-loop|0102 local.get $4 - local.get $5 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $5 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $0 local.get $1 - local.get $5 + local.get $0 + local.get $12 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every75 + br_if $__inlined_func$~lib/array/Array#every101 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|076 + local.set $0 + br $for-loop|0102 end end i32.const 1 @@ -21967,82 +21899,82 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $5 + local.tee $12 i32.store global.get $~lib/memory/__stack_pointer i32.const 6640 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every77 (result i32) + block $__inlined_func$~lib/array/Array#every103 (result i32) i32.const 0 - local.set $1 - local.get $5 + local.set $0 + local.get $12 i32.load offset=12 local.set $4 - loop $for-loop|078 + loop $for-loop|0104 local.get $4 - local.get $5 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $5 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $0 local.get $1 - local.get $5 + local.get $0 + local.get $12 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every77 + br_if $__inlined_func$~lib/array/Array#every103 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|078 + local.set $0 + br $for-loop|0104 end end i32.const 1 @@ -22058,9 +21990,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -22074,69 +22006,69 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $5 + local.tee $12 i32.store global.get $~lib/memory/__stack_pointer i32.const 6672 i32.store offset=8 block $__inlined_func$~lib/array/Array#some (result i32) i32.const 0 - local.set $1 - local.get $5 + local.set $0 + local.get $12 i32.load offset=12 local.set $4 - loop $for-loop|079 + loop $for-loop|0106 local.get $4 - local.get $5 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $5 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $0 local.get $1 - local.get $5 + local.get $0 + local.get $12 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|079 + local.set $0 + br $for-loop|0106 end end i32.const 0 @@ -22151,55 +22083,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $5 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 6704 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some80 (result i32) + block $__inlined_func$~lib/array/Array#some107 (result i32) i32.const 0 - local.set $1 - local.get $5 + local.set $0 + local.get $12 i32.load offset=12 local.set $4 - loop $for-loop|081 + loop $for-loop|0108 local.get $4 - local.get $5 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $5 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $0 local.get $1 - local.get $5 + local.get $0 + local.get $12 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some80 + br_if $__inlined_func$~lib/array/Array#some107 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|081 + local.set $0 + br $for-loop|0108 end end i32.const 0 @@ -22213,55 +22145,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $5 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 6736 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some82 (result i32) + block $__inlined_func$~lib/array/Array#some109 (result i32) i32.const 0 - local.set $1 - local.get $5 + local.set $0 + local.get $12 i32.load offset=12 local.set $4 - loop $for-loop|083 + loop $for-loop|0110 local.get $4 - local.get $5 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $5 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $0 local.get $1 - local.get $5 + local.get $0 + local.get $12 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some82 + br_if $__inlined_func$~lib/array/Array#some109 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|083 + local.set $0 + br $for-loop|0110 end end i32.const 0 @@ -22276,9 +22208,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 8 i32.ne @@ -22291,55 +22223,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $5 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 6768 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some84 (result i32) + block $__inlined_func$~lib/array/Array#some112 (result i32) i32.const 0 - local.set $1 - local.get $5 + local.set $0 + local.get $12 i32.load offset=12 local.set $4 - loop $for-loop|085 + loop $for-loop|0113 local.get $4 - local.get $5 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $5 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $0 local.get $1 - local.get $5 + local.get $0 + local.get $12 i32.const 6768 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some84 + br_if $__inlined_func$~lib/array/Array#some112 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|085 + local.set $0 + br $for-loop|0113 end end i32.const 0 @@ -22355,81 +22287,81 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $5 + local.tee $12 i32.store global.get $~lib/memory/__stack_pointer i32.const 6800 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some86 (result i32) + block $__inlined_func$~lib/array/Array#some114 (result i32) i32.const 0 - local.set $1 - local.get $5 + local.set $0 + local.get $12 i32.load offset=12 local.set $4 - loop $for-loop|087 + loop $for-loop|0115 local.get $4 - local.get $5 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $5 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $0 local.get $1 - local.get $5 + local.get $0 + local.get $12 i32.const 6800 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some86 + br_if $__inlined_func$~lib/array/Array#some114 drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|087 + local.set $0 + br $for-loop|0115 end end i32.const 0 @@ -22444,9 +22376,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -22460,17 +22392,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#push drop @@ -22484,41 +22416,41 @@ i32.const 6832 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 local.set $2 - loop $for-loop|06988 + loop $for-loop|0117 local.get $2 local.get $4 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|06988 + local.set $0 + br $for-loop|0117 end end global.get $std/array/i @@ -22535,49 +22467,49 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 6864 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 local.set $2 - loop $for-loop|071 + loop $for-loop|0119 local.get $2 local.get $4 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 6864 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|071 + local.set $0 + br $for-loop|0119 end end global.get $std/array/i @@ -22593,9 +22525,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 8 i32.ne @@ -22610,49 +22542,49 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 6896 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 local.set $2 - loop $for-loop|07489 + loop $for-loop|0122 local.get $2 local.get $4 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 6896 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|07489 + local.set $0 + br $for-loop|0122 end end global.get $std/array/i @@ -22668,30 +22600,30 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop i32.const 0 @@ -22704,41 +22636,41 @@ i32.const 6928 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 local.set $2 - loop $for-loop|07690 + loop $for-loop|0124 local.get $2 local.get $4 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 6928 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|07690 + local.set $0 + br $for-loop|0124 end end global.get $std/array/i @@ -22754,9 +22686,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -22770,17 +22702,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#push drop @@ -22792,48 +22724,48 @@ i32.const 6960 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 local.set $2 - loop $for-loop|07991 + loop $for-loop|0127 local.get $2 local.get $4 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 local.get $2 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $4 i32.const 6960 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|07991 + local.set $0 + br $for-loop|0127 end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 100 i32.ne @@ -22868,33 +22800,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#push drop @@ -22907,7 +22839,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22915,71 +22847,71 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 local.get $3 i32.load offset=12 - local.tee $6 + local.tee $10 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $1 i32.store - local.get $7 + local.get $1 i32.load offset=4 - local.set $4 - loop $for-loop|08193 - local.get $6 + local.set $12 + loop $for-loop|0129 + local.get $10 local.get $3 i32.load offset=12 - local.tee $0 - local.get $0 - local.get $6 + local.tee $2 + local.get $2 + local.get $10 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.tee $2 + local.tee $4 local.get $3 i32.load offset=4 i32.add i32.load - local.set $0 + local.set $2 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $4 + local.get $12 i32.add + local.get $2 local.get $0 - local.get $1 local.get $3 i32.const 6992 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|08193 + local.set $0 + br $for-loop|0129 end end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=12 - local.get $7 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -22991,19 +22923,19 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $1 i32.const 0 call $~lib/array/Array#__get - local.set $11 + local.set $5 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s - local.get $11 + local.get $5 f32.ne if i32.const 0 @@ -23016,14 +22948,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 7024 i32.store offset=8 - local.get $0 + local.get $1 i32.const 7024 call $~lib/array/Array#map global.get $std/array/i @@ -23039,9 +22971,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 8 i32.ne @@ -23056,14 +22988,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 7056 i32.store offset=8 - local.get $0 + local.get $1 i32.const 7056 call $~lib/array/Array#map global.get $std/array/i @@ -23079,42 +23011,42 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 7088 i32.store offset=8 - local.get $0 + local.get $1 i32.const 7088 call $~lib/array/Array#map global.get $std/array/i @@ -23130,9 +23062,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -23146,34 +23078,34 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 7120 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 7120 call $~lib/array/Array#filter - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -23188,14 +23120,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 7152 i32.store offset=8 - local.get $0 + local.get $1 i32.const 7152 call $~lib/array/Array#filter drop @@ -23212,9 +23144,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 8 i32.ne @@ -23229,14 +23161,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/array/arr local.tee $0 + global.get $std/array/arr + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 7184 i32.store offset=8 - local.get $0 + local.get $1 i32.const 7184 call $~lib/array/Array#filter drop @@ -23253,42 +23185,42 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 7216 i32.store offset=8 - local.get $0 + local.get $1 i32.const 7216 call $~lib/array/Array#filter drop @@ -23305,9 +23237,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -23321,72 +23253,72 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $12 i32.store global.get $~lib/memory/__stack_pointer i32.const 7248 i32.store offset=8 i32.const 0 - local.set $5 + local.set $0 i32.const 0 local.set $1 - local.get $4 + local.get $12 i32.load offset=12 - local.set $2 - loop $for-loop|094 - local.get $2 + local.set $4 + loop $for-loop|0136 local.get $4 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $2 local.get $2 + local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $5 - local.get $0 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $12 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|094 + local.set $0 + br $for-loop|0136 end end - local.get $5 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23400,58 +23332,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $4 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 7280 i32.store offset=8 - i32.const 4 - local.set $5 i32.const 0 + local.set $0 + i32.const 4 local.set $1 - local.get $4 + local.get $12 i32.load offset=12 - local.set $2 - loop $for-loop|096 - local.get $2 + local.set $4 + loop $for-loop|0138 local.get $4 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $2 local.get $2 + local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $5 - local.get $0 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $12 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|096 + local.set $0 + br $for-loop|0138 end end - local.get $5 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23465,58 +23397,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $4 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 7312 i32.store offset=8 i32.const 0 - local.set $5 + local.set $0 i32.const 0 local.set $1 - local.get $4 + local.get $12 i32.load offset=12 - local.set $2 - loop $for-loop|098 - local.get $2 + local.set $4 + loop $for-loop|0140 local.get $4 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $2 local.get $2 + local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $5 - local.get $0 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $12 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|098 + local.set $0 + br $for-loop|0140 end end - local.get $5 + local.get $1 i32.eqz if i32.const 0 @@ -23527,58 +23459,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $4 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 7344 i32.store offset=8 i32.const 0 - local.set $5 + local.set $0 i32.const 0 local.set $1 - local.get $4 + local.get $12 i32.load offset=12 - local.set $2 - loop $for-loop|0100 - local.get $2 + local.set $4 + loop $for-loop|0142 local.get $4 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $2 local.get $2 + local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $5 - local.get $0 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $12 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0100 + local.set $0 + br $for-loop|0142 end end - local.get $5 + local.get $1 if i32.const 0 i32.const 1552 @@ -23588,58 +23520,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $4 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 7376 i32.store offset=8 i32.const 0 - local.set $5 + local.set $0 i32.const 0 local.set $1 - local.get $4 + local.get $12 i32.load offset=12 - local.set $2 - loop $for-loop|0102 - local.get $2 + local.set $4 + loop $for-loop|0144 local.get $4 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $2 local.get $2 + local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $5 - local.get $0 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $12 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0102 + local.set $0 + br $for-loop|0144 end end - local.get $5 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23654,9 +23586,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 8 i32.ne @@ -23669,58 +23601,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr - local.tee $4 + local.tee $12 i32.store - local.get $0 + local.get $1 i32.const 7408 i32.store offset=8 i32.const 0 - local.set $5 + local.set $0 i32.const 0 local.set $1 - local.get $4 + local.get $12 i32.load offset=12 - local.set $2 - loop $for-loop|0104 - local.get $2 + local.set $4 + loop $for-loop|0147 local.get $4 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $2 local.get $2 + local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $5 - local.get $0 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $12 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0104 + local.set $0 + br $for-loop|0147 end end - local.get $5 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23735,84 +23667,84 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $4 + local.tee $12 i32.store global.get $~lib/memory/__stack_pointer i32.const 7440 i32.store offset=8 i32.const 0 - local.set $5 + local.set $0 i32.const 0 local.set $1 - local.get $4 + local.get $12 i32.load offset=12 - local.set $2 - loop $for-loop|0106 - local.get $2 + local.set $4 + loop $for-loop|0149 local.get $4 + local.get $12 i32.load offset=12 - local.tee $0 - local.get $0 + local.tee $2 local.get $2 + local.get $4 i32.gt_s select - local.get $1 + local.get $0 i32.gt_s if - local.get $4 + local.get $12 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 i32.const 4 global.set $~argumentsLength - local.get $5 - local.get $0 local.get $1 - local.get $4 + local.get $2 + local.get $0 + local.get $12 i32.const 7440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0106 + local.set $0 + br $for-loop|0149 end end - local.get $5 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -23827,9 +23759,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 2 i32.ne @@ -23843,17 +23775,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#push drop @@ -23865,20 +23797,20 @@ i32.const 7472 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|090 - local.get $1 + local.set $0 + loop $for-loop|0151 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -23886,22 +23818,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 + local.get $2 + local.get $0 local.get $4 i32.const 7472 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|090 + local.set $0 + br $for-loop|0151 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23915,28 +23847,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 7504 i32.store offset=8 i32.const 4 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|092 - local.get $1 + local.set $0 + loop $for-loop|0153 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -23944,22 +23876,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 + local.get $2 + local.get $0 local.get $4 i32.const 7504 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|092 + local.set $0 + br $for-loop|0153 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23973,28 +23905,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 7536 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|094107 - local.get $1 + local.set $0 + loop $for-loop|0155 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -24002,22 +23934,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 + local.get $2 + local.get $0 local.get $4 i32.const 7536 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|094107 + local.set $0 + br $for-loop|0155 end end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -24028,28 +23960,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 7568 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|096108 - local.get $1 + local.set $0 + loop $for-loop|0157 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -24057,22 +23989,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 + local.get $2 + local.get $0 local.get $4 i32.const 7568 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|096108 + local.set $0 + br $for-loop|0157 end end - local.get $0 + local.get $1 if i32.const 0 i32.const 1552 @@ -24082,28 +24014,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 7600 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|098109 - local.get $1 + local.set $0 + loop $for-loop|0159 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -24111,22 +24043,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 + local.get $2 + local.get $0 local.get $4 i32.const 7600 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|098109 + local.set $0 + br $for-loop|0159 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -24141,9 +24073,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 i32.const 8 i32.ne @@ -24156,28 +24088,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $std/array/arr local.tee $4 i32.store - local.get $0 + local.get $1 i32.const 7632 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|0101 - local.get $1 + local.set $0 + loop $for-loop|0162 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -24185,22 +24117,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 + local.get $2 + local.get $0 local.get $4 i32.const 7632 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0101 + local.set $0 + br $for-loop|0162 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -24215,30 +24147,30 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer @@ -24249,20 +24181,20 @@ i32.const 7664 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $1 - loop $for-loop|0103 - local.get $1 + local.set $0 + loop $for-loop|0164 + local.get $0 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add @@ -24270,22 +24202,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $0 - local.get $2 local.get $1 + local.get $2 + local.get $0 local.get $4 i32.const 7664 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0103 + local.set $0 + br $for-loop|0164 end end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -24300,9 +24232,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -24314,33 +24246,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#push drop @@ -24353,181 +24285,181 @@ i32.const 20 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=20 - local.get $0 + local.get $1 i32.const 100 i32.store - local.get $0 + local.get $1 i32.const 80 i32.store offset=4 - local.get $1 - i32.const 0 local.get $0 + i32.const 0 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=24 - local.get $0 + local.get $1 i32.const 90 i32.store - local.get $0 + local.get $1 i32.const 90 i32.store offset=4 - local.get $1 - i32.const 1 local.get $0 + i32.const 1 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=28 - local.get $0 + local.get $1 i32.const 70 i32.store - local.get $0 + local.get $1 i32.const 95 i32.store offset=4 - local.get $1 - i32.const 2 local.get $0 + i32.const 2 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 100 i32.store - local.get $0 + local.get $1 i32.const 100 i32.store offset=4 - local.get $1 - i32.const 3 local.get $0 + i32.const 3 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=32 - local.get $0 + local.get $1 i32.const 80 i32.store - local.get $0 + local.get $1 i32.const 110 i32.store offset=4 - local.get $1 - i32.const 4 local.get $0 + i32.const 4 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=36 - local.get $0 + local.get $1 i32.const 110 i32.store - local.get $0 + local.get $1 i32.const 115 i32.store offset=4 - local.get $1 - i32.const 5 local.get $0 + i32.const 5 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=40 - local.get $0 + local.get $1 i32.const 100 i32.store - local.get $0 + local.get $1 i32.const 120 i32.store offset=4 - local.get $1 - i32.const 6 local.get $0 + i32.const 6 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=44 - local.get $0 + local.get $1 i32.const 70 i32.store - local.get $0 + local.get $1 i32.const 125 i32.store offset=4 - local.get $1 - i32.const 7 local.get $0 + i32.const 7 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=48 - local.get $0 + local.get $1 i32.const 70 i32.store - local.get $0 + local.get $1 i32.const 130 i32.store offset=4 - local.get $1 - i32.const 8 local.get $0 + i32.const 8 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=52 - local.get $0 + local.get $1 i32.const 100 i32.store - local.get $0 + local.get $1 i32.const 135 i32.store offset=4 - local.get $1 - i32.const 9 local.get $0 + i32.const 9 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=56 - local.get $0 + local.get $1 i32.const 75 i32.store - local.get $0 + local.get $1 i32.const 140 i32.store offset=4 - local.get $1 - i32.const 10 local.get $0 + i32.const 10 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=60 - local.get $0 + local.get $1 i32.const 70 i32.store - local.get $0 + local.get $1 i32.const 140 i32.store offset=4 - local.get $1 - i32.const 11 local.get $0 - call $~lib/array/Array#__uset + i32.const 11 local.get $1 + call $~lib/array/Array#__uset + local.get $0 global.set $std/array/inputStabArr global.get $~lib/memory/__stack_pointer i32.const 12 @@ -24535,181 +24467,181 @@ i32.const 20 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=64 - local.get $0 + local.get $1 i32.const 70 i32.store - local.get $0 + local.get $1 i32.const 95 i32.store offset=4 - local.get $1 - i32.const 0 local.get $0 + i32.const 0 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=68 - local.get $0 + local.get $1 i32.const 70 i32.store - local.get $0 + local.get $1 i32.const 125 i32.store offset=4 - local.get $1 - i32.const 1 local.get $0 + i32.const 1 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=72 - local.get $0 + local.get $1 i32.const 70 i32.store - local.get $0 + local.get $1 i32.const 130 i32.store offset=4 - local.get $1 - i32.const 2 local.get $0 + i32.const 2 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=76 - local.get $0 + local.get $1 i32.const 70 i32.store - local.get $0 + local.get $1 i32.const 140 i32.store offset=4 - local.get $1 - i32.const 3 local.get $0 + i32.const 3 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=80 - local.get $0 + local.get $1 i32.const 75 i32.store - local.get $0 + local.get $1 i32.const 140 i32.store offset=4 - local.get $1 - i32.const 4 local.get $0 + i32.const 4 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=84 - local.get $0 + local.get $1 i32.const 80 i32.store - local.get $0 + local.get $1 i32.const 110 i32.store offset=4 - local.get $1 - i32.const 5 local.get $0 + i32.const 5 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=88 - local.get $0 + local.get $1 i32.const 90 i32.store - local.get $0 + local.get $1 i32.const 90 i32.store offset=4 - local.get $1 - i32.const 6 local.get $0 + i32.const 6 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=92 - local.get $0 + local.get $1 i32.const 100 i32.store - local.get $0 + local.get $1 i32.const 80 i32.store offset=4 - local.get $1 - i32.const 7 local.get $0 + i32.const 7 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=96 - local.get $0 + local.get $1 i32.const 100 i32.store - local.get $0 + local.get $1 i32.const 100 i32.store offset=4 - local.get $1 - i32.const 8 local.get $0 + i32.const 8 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=100 - local.get $0 + local.get $1 i32.const 100 i32.store - local.get $0 + local.get $1 i32.const 120 i32.store offset=4 - local.get $1 - i32.const 9 local.get $0 + i32.const 9 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=104 - local.get $0 + local.get $1 i32.const 100 i32.store - local.get $0 + local.get $1 i32.const 135 i32.store offset=4 - local.get $1 - i32.const 10 local.get $0 + i32.const 10 + local.get $1 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $0 + local.tee $1 i32.store offset=108 - local.get $0 + local.get $1 i32.const 110 i32.store - local.get $0 + local.get $1 i32.const 115 i32.store offset=4 - local.get $1 - i32.const 11 local.get $0 - call $~lib/array/Array#__uset + i32.const 11 local.get $1 + call $~lib/array/Array#__uset + local.get $0 global.set $std/array/outputStabArr global.get $~lib/memory/__stack_pointer i32.const 3 @@ -24717,23 +24649,23 @@ i32.const 10 i32.const 7936 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=4 i32.const 0 global.set $~argumentsLength - local.get $1 + local.get $0 call $~lib/array/Array#sort@varargs i32.const 3 i32.const 2 i32.const 10 i32.const 8000 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -24750,23 +24682,23 @@ i32.const 10 i32.const 8032 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 i32.const 0 global.set $~argumentsLength - local.get $1 + local.get $0 call $~lib/array/Array#sort@varargs i32.const 8 i32.const 2 i32.const 10 i32.const 8096 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -24783,12 +24715,14 @@ i32.const 11 i32.const 8160 call $~lib/rt/__newArray - local.tee $5 + local.tee $1 i32.store offset=112 i32.const 0 global.set $~argumentsLength - i32.const 0 + local.get $1 local.set $0 + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24796,29 +24730,29 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of18 - block $0of19 - block $outOfRange10 + block $1of148 + block $0of149 + block $outOfRange50 global.get $~argumentsLength - br_table $0of19 $1of18 $outOfRange10 + br_table $0of149 $1of148 $outOfRange50 end unreachable end i32.const 8256 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8256 i32.store end - local.get $5 + local.get $0 i32.load offset=4 - local.get $5 - i32.load offset=12 local.get $0 + i32.load offset=12 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24829,45 +24763,45 @@ i32.const 11 i32.const 8288 call $~lib/rt/__newArray - local.set $4 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $12 i32.store offset=8 block $__inlined_func$std/array/isArraysEqual (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $5 + local.get $0 i32.load offset=12 - local.tee $1 - local.get $4 + local.tee $2 + local.get $12 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual drop i32.const 1 - local.get $4 - local.get $5 + local.get $0 + local.get $12 i32.eq br_if $__inlined_func$std/array/isArraysEqual drop - loop $for-loop|038 - local.get $0 + loop $for-loop|028 local.get $1 + local.get $2 i32.lt_s if - local.get $5 local.get $0 + local.get $1 call $~lib/array/Array#__get - local.tee $9 - local.get $9 + local.tee $7 + local.get $7 f64.ne if (result i32) - local.get $4 - local.get $0 + local.get $12 + local.get $1 call $~lib/array/Array#__get - local.tee $9 - local.get $9 + local.tee $7 + local.get $7 f64.ne else i32.const 0 @@ -24875,21 +24809,21 @@ i32.eqz if i32.const 0 - local.get $5 local.get $0 + local.get $1 call $~lib/array/Array#__get - local.get $4 - local.get $0 + local.get $12 + local.get $1 call $~lib/array/Array#__get f64.ne br_if $__inlined_func$std/array/isArraysEqual drop end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|038 + local.set $1 + br $for-loop|028 end end i32.const 1 @@ -24913,8 +24847,10 @@ i32.store offset=116 i32.const 0 global.set $~argumentsLength - i32.const 0 + local.get $1 local.set $0 + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24922,29 +24858,29 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1151 - block $0of1152 - block $outOfRange153 + block $1of1212 + block $0of1213 + block $outOfRange214 global.get $~argumentsLength - br_table $0of1152 $1of1151 $outOfRange153 + br_table $0of1213 $1of1212 $outOfRange214 end unreachable end i32.const 8432 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8432 i32.store end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 - i32.load offset=12 local.get $0 + i32.load offset=12 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24955,12 +24891,12 @@ i32.const 3 i32.const 8464 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24978,11 +24914,11 @@ i32.const 7 i32.const 8512 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=120 i32.const 0 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#sort@varargs drop @@ -24991,12 +24927,12 @@ i32.const 7 i32.const 8592 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -25013,7 +24949,7 @@ i32.const 3 i32.const 8640 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=124 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -25021,7 +24957,7 @@ i32.const 3 i32.const 8672 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -25037,7 +24973,7 @@ i32.const 3 i32.const 8736 call $~lib/rt/__newArray - local.tee $7 + local.tee $10 i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25045,17 +24981,17 @@ i32.const 3 i32.const 8784 call $~lib/rt/__newArray - local.tee $10 + local.tee $6 i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $6 + local.tee $11 i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $5 + local.tee $12 i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 1024 @@ -25070,23 +25006,23 @@ global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $0 + local.tee $1 i32.store offset=160 - local.get $1 + local.get $0 call $std/array/assertSortedDefault - local.get $8 + local.get $9 call $std/array/assertSortedDefault i32.const 1 i32.const 2 i32.const 3 i32.const 8864 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 - local.get $8 - local.get $1 + local.get $9 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25105,12 +25041,12 @@ i32.const 3 i32.const 8896 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $3 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25122,10 +25058,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $10 call $std/array/assertSortedDefault - local.get $7 local.get $10 + local.get $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25137,10 +25073,10 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $11 call $std/array/assertSortedDefault + local.get $11 local.get $6 - local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -25152,10 +25088,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $12 call $std/array/assertSortedDefault - local.get $5 - local.get $10 + local.get $12 + local.get $6 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -25170,7 +25106,7 @@ local.get $4 call $std/array/assertSortedDefault local.get $4 - local.get $10 + local.get $6 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -25185,7 +25121,7 @@ local.get $2 call $std/array/assertSortedDefault local.get $2 - local.get $10 + local.get $6 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -25197,240 +25133,46 @@ call $~lib/builtins/abort unreachable end - local.get $0 - call $std/array/assertSortedDefault - i32.const 0 - local.set $8 - i32.const 0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i64.const 0 - i64.store offset=8 - local.get $6 - i64.const 0 - i64.store offset=16 - local.get $6 - global.get $std/array/inputStabArr - local.tee $5 - i32.store offset=8 - local.get $6 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - i32.const 0 - local.get $5 - i32.load offset=12 - local.tee $2 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $1 - local.get $0 - local.get $2 local.get $1 - i32.sub - local.tee $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - local.tee $0 - i32.const 2 - i32.const 20 - i32.const 0 - call $~lib/rt/__newArray - local.tee $3 - i32.store - local.get $3 - i32.load offset=4 - local.set $4 - local.get $5 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.set $2 - local.get $0 - i32.const 2 - i32.shl - local.set $1 - loop $while-continue|012 - local.get $1 - local.get $8 - i32.gt_u - if - local.get $4 - local.get $8 - i32.add - local.get $2 - local.get $8 - i32.add - i32.load - local.tee $0 - i32.store - local.get $3 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $8 - i32.const 4 - i32.add - local.set $8 - br $while-continue|012 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $3 - i32.store - local.get $0 - i32.const 8928 - i32.store offset=4 - local.get $3 - i32.load offset=4 - local.get $3 - i32.load offset=12 - i32.const 8928 - call $~lib/util/sort/SORT - local.get $6 - local.get $3 - i32.store offset=12 - i32.const 1 - local.set $8 - global.get $~lib/memory/__stack_pointer - global.get $std/array/inputStabArr - local.tee $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $1 - loop $for-loop|013 - local.get $1 - local.get $7 - i32.gt_s - if - block $for-break0 - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $7 - call $~lib/array/Array#__get - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/array/outputStabArr - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $7 - call $~lib/array/Array#__get - local.tee $0 - i32.store offset=20 - local.get $2 - i32.load - local.get $0 - i32.load - i32.ne - if (result i32) - i32.const 1 - else - local.get $2 - i32.load offset=4 - local.get $0 - i32.load offset=4 - i32.ne - end - if - i32.const 0 - local.set $8 - br $for-break0 - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|013 - end - end - end - local.get $8 - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1042 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer + call $std/array/assertSortedDefault + call $std/array/assertStableSortedForComplexObjects global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray - local.tee $1 + local.tee $0 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray - local.tee $0 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 8960 i32.store offset=8 - local.get $1 + local.get $0 i32.const 8960 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 8992 i32.store offset=8 - local.get $1 + local.get $0 i32.const 8992 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9024 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 9056 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9056 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25438,120 +25180,120 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 i64.const 0 i64.store - local.get $4 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 16 i32.const 26 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $12 i32.store - local.get $5 + local.get $12 i32.const 0 i32.store - local.get $5 + local.get $12 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link - local.get $5 + local.get $12 i32.const 0 i32.store offset=4 - local.get $5 + local.get $12 i32.const 0 i32.store offset=8 - local.get $5 + local.get $12 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.const 32 call $~lib/memory/memory.fill - local.get $5 - local.get $0 + local.get $12 + local.get $2 i32.store - local.get $5 - local.get $0 + local.get $12 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $5 - local.get $0 + local.get $12 + local.get $2 i32.store offset=4 - local.get $5 + local.get $12 i32.const 32 i32.store offset=8 - local.get $5 + local.get $12 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $5 + local.get $1 + local.get $12 i32.store - loop $for-loop|0154 - local.get $1 + loop $for-loop|0215 + local.get $0 i32.const 2 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.const 1 - local.get $1 + local.get $0 i32.sub call $~lib/array/Array#__set - local.get $5 - local.get $1 + local.get $12 local.get $0 - call $~lib/array/Array<~lib/array/Array>#__set local.get $1 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0154 + local.set $0 + br $for-loop|0215 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $12 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 9088 i32.store offset=8 - local.get $5 + local.get $12 i32.const 9088 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $5 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25559,7 +25301,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -25571,7 +25313,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -25602,21 +25344,21 @@ i32.const 2048 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.const 2048 call $~lib/memory/memory.fill local.get $0 - local.get $4 + local.get $2 i32.store local.get $0 - local.get $4 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $4 + local.get $2 i32.store offset=4 local.get $0 i32.const 2048 @@ -25631,11 +25373,15 @@ local.get $1 local.get $0 i32.store - loop $for-loop|015 - local.get $5 + loop $for-loop|051 + local.get $12 i32.const 512 i32.lt_s if + i32.const 511 + local.get $12 + i32.sub + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25643,7 +25389,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -25655,9 +25401,7 @@ local.tee $1 i32.store local.get $1 - i32.const 511 - local.get $5 - i32.sub + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25667,14 +25411,14 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $5 + local.get $12 local.get $1 call $~lib/array/Array<~lib/array/Array>#__set - local.get $5 + local.get $12 i32.const 1 i32.add - local.set $5 - br $for-loop|015 + local.set $12 + br $for-loop|051 end end global.get $~lib/memory/__stack_pointer @@ -25695,7 +25439,7 @@ i32.const 31 i32.const 9312 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 7 @@ -25703,12 +25447,14 @@ i32.const 31 i32.const 9360 call $~lib/rt/__newArray - local.tee $6 + local.tee $11 i32.store offset=152 i32.const 1 global.set $~argumentsLength + local.get $1 + local.set $0 i32.const 0 - local.set $5 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25716,22 +25462,22 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of117 - block $0of118 - block $outOfRange19 + block $1of152 + block $0of153 + block $outOfRange54 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of118 $1of117 $outOfRange19 + br_table $0of153 $1of152 $outOfRange54 end unreachable end i32.const 9408 - local.set $5 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 9408 i32.store @@ -25743,7 +25489,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -25751,7 +25497,7 @@ i32.load offset=4 local.get $0 i32.load offset=12 - local.get $5 + local.get $12 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer local.tee $1 @@ -25765,22 +25511,22 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store i32.const 1 - local.set $7 + local.set $10 local.get $0 i32.load offset=12 local.set $1 - loop $for-loop|020 + loop $for-loop|055 local.get $1 - local.get $7 + local.get $10 i32.gt_s if local.get $0 - local.get $7 + local.get $10 i32.const 1 i32.sub call $~lib/array/Array#__get @@ -25789,7 +25535,7 @@ local.get $4 i32.store local.get $0 - local.get $7 + local.get $10 call $~lib/array/Array#__get local.set $2 global.get $~lib/memory/__stack_pointer @@ -25799,7 +25545,7 @@ global.set $~argumentsLength local.get $4 local.get $2 - local.get $5 + local.get $12 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -25812,11 +25558,11 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $7 + local.get $10 i32.const 1 i32.add - local.set $7 - br $for-loop|020 + local.set $10 + br $for-loop|055 end end global.get $~lib/memory/__stack_pointer @@ -25844,7 +25590,7 @@ global.set $~lib/memory/__stack_pointer block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) i32.const 0 - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25852,52 +25598,52 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store block $folding-inner1 - block $folding-inner021 + block $folding-inner0 local.get $0 i32.load offset=12 - local.tee $1 - local.get $6 + local.tee $2 + local.get $11 i32.load offset=12 i32.ne - br_if $folding-inner021 + br_if $folding-inner0 local.get $0 - local.get $6 + local.get $11 i32.eq br_if $folding-inner1 - loop $for-loop|049 + loop $for-loop|042 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s if local.get $0 - local.get $3 + local.get $1 call $~lib/array/Array#__get - local.set $4 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $12 i32.store - local.get $6 - local.get $3 + local.get $11 + local.get $1 call $~lib/array/Array#__get - local.set $2 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=4 + local.get $12 local.get $4 - local.get $2 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner021 - local.get $3 + br_if $folding-inner0 + local.get $1 i32.const 1 i32.add - local.set $3 - br $for-loop|049 + local.set $1 + br $for-loop|042 end end br $folding-inner1 @@ -25925,28 +25671,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 local.set $3 - local.get $0 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor local.tee $2 i32.store - loop $for-loop|0155 + loop $for-loop|044 local.get $3 i32.const 400 i32.lt_s @@ -25955,9 +25701,9 @@ f64.const 32 f64.mul i32.trunc_f64_s - local.set $5 + local.set $12 i32.const 0 - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -25965,7 +25711,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -25978,13 +25724,11 @@ local.get $1 i32.const 9280 i32.store - loop $for-loop|00 - local.get $5 - local.get $8 - i32.gt_s + loop $for-loop|0156 + local.get $9 + local.get $12 + i32.lt_s if - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer local.tee $4 i32.const 7744 @@ -26001,7 +25745,7 @@ f64.mul f64.floor i32.trunc_f64_s - local.set $7 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26009,7 +25753,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -26018,7 +25762,7 @@ i32.load i32.const 1 i32.shr_u - local.get $7 + local.get $10 i32.le_u if global.get $~lib/memory/__stack_pointer @@ -26026,17 +25770,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 + local.set $1 br $__inlined_func$~lib/string/String#charAt end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 - local.get $7 + local.get $1 + local.get $10 i32.const 1 i32.shl i32.const 7744 @@ -26049,19 +25793,19 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 local.get $4 - local.get $1 local.get $0 + local.get $1 call $~lib/string/String.__concat local.tee $0 i32.store - local.get $8 + local.get $9 i32.const 1 i32.add - local.set $8 - br $for-loop|00 + local.set $9 + br $for-loop|0156 end end global.get $~lib/memory/__stack_pointer @@ -26079,7 +25823,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|0155 + br $for-loop|044 end end global.get $~lib/memory/__stack_pointer @@ -26087,12 +25831,12 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.tee $0 + local.tee $1 i32.store offset=156 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26100,28 +25844,28 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1156 - block $0of1157 - block $outOfRange158 + block $1of146 + block $0of147 + block $outOfRange48 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of1157 $1of1156 $outOfRange158 + br_table $0of147 $1of146 $outOfRange48 end unreachable end i32.const 9440 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9440 i32.store end - local.get $0 local.get $1 + local.get $0 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26132,24 +25876,24 @@ i32.const 35 i32.const 9472 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $0 + local.get $1 i32.store offset=164 local.get $2 i32.const 9568 i32.store offset=168 - local.get $0 + local.get $1 i32.load offset=4 - local.set $7 - local.get $0 + local.set $10 + local.get $1 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $8 + local.set $9 local.get $2 i32.const 4 i32.sub @@ -26157,7 +25901,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -26174,20 +25918,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinBooleanArray end - block $folding-inner01 + block $folding-inner04 local.get $3 i32.eqz if i32.const 9504 i32.const 9536 - local.get $7 + local.get $10 i32.load8_u select - local.set $1 - br $folding-inner01 + local.set $0 + br $folding-inner04 end global.get $~lib/memory/__stack_pointer local.get $3 @@ -26195,7 +25939,7 @@ i32.load i32.const 1 i32.shr_u - local.tee $6 + local.tee $11 i32.const 5 i32.add i32.mul @@ -26208,20 +25952,20 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|13 + loop $for-loop|16 local.get $3 - local.get $8 + local.get $9 i32.gt_s if - local.get $7 - local.get $8 + local.get $9 + local.get $10 i32.add i32.load8_u local.tee $2 i32.eqz i32.const 4 i32.add - local.set $5 + local.set $12 local.get $0 i32.const 1 i32.shl @@ -26231,15 +25975,15 @@ i32.const 9536 local.get $2 select - local.get $5 + local.get $12 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $12 i32.add local.set $0 - local.get $6 + local.get $11 if local.get $0 i32.const 1 @@ -26247,31 +25991,31 @@ local.get $1 i32.add i32.const 9568 - local.get $6 + local.get $11 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $6 + local.get $11 i32.add local.set $0 end - local.get $8 + local.get $9 i32.const 1 i32.add - local.set $8 - br $for-loop|13 + local.set $9 + br $for-loop|16 end end local.get $3 - local.get $7 + local.get $10 i32.add i32.load8_u local.tee $2 i32.eqz i32.const 4 i32.add - local.set $5 + local.set $12 local.get $0 i32.const 1 i32.shl @@ -26281,13 +26025,13 @@ i32.const 9536 local.get $2 select - local.get $5 + local.get $12 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $4 local.get $0 - local.get $5 + local.get $12 i32.add local.tee $0 i32.gt_s @@ -26295,13 +26039,15 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $1 - br $folding-inner01 + local.set $0 + br $folding-inner04 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinBooleanArray end global.get $~lib/memory/__stack_pointer @@ -26310,13 +26056,13 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 9600 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9600 call $~lib/string/String.__eq i32.eqz @@ -26333,25 +26079,25 @@ i32.const 3 i32.const 9648 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 9280 i32.store offset=168 - local.get $1 + local.get $0 i32.const 9280 call $~lib/array/Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 11456 i32.store offset=8 - local.get $0 + local.get $1 i32.const 11456 call $~lib/string/String.__eq i32.eqz @@ -26368,25 +26114,25 @@ i32.const 7 i32.const 11488 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 11520 i32.store offset=168 - local.get $1 + local.get $0 i32.const 11520 call $~lib/array/Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 11456 i32.store offset=8 - local.get $0 + local.get $1 i32.const 11456 call $~lib/string/String.__eq i32.eqz @@ -26403,25 +26149,25 @@ i32.const 3 i32.const 11552 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 11584 i32.store offset=168 - local.get $1 + local.get $0 i32.const 11584 call $~lib/array/Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 11616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 11616 call $~lib/string/String.__eq i32.eqz @@ -26438,24 +26184,24 @@ i32.const 11 i32.const 11696 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 11776 i32.store offset=168 - local.get $1 + local.get $0 call $~lib/array/Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 12944 i32.store offset=8 - local.get $0 + local.get $1 i32.const 12944 call $~lib/string/String.__eq i32.eqz @@ -26472,25 +26218,25 @@ i32.const 31 i32.const 13088 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 9280 i32.store offset=168 - local.get $1 + local.get $0 i32.const 9280 call $~lib/array/Array<~lib/string/String|null>#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 13056 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13056 call $~lib/string/String.__eq i32.eqz @@ -26503,48 +26249,48 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 3 i32.const 2 i32.const 12 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=152 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 2 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 local.get $1 + local.get $0 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 9568 i32.store offset=168 - local.get $1 + local.get $0 call $~lib/array/Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 13184 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13184 call $~lib/string/String.__eq i32.eqz @@ -26557,44 +26303,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=160 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 local.get $1 + local.get $0 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 9568 i32.store offset=168 - local.get $1 + local.get $0 call $~lib/array/Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 13280 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13280 call $~lib/string/String.__eq i32.eqz @@ -26620,7 +26366,7 @@ i32.const 3 i32.const 13408 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -26636,7 +26382,7 @@ i32.const 3 i32.const 13472 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=144 local.get $4 call $~lib/array/Array#toString @@ -26659,14 +26405,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/array/Array#toString local.set $4 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $4 i32.store - local.get $0 + local.get $1 i32.const 13056 i32.store offset=8 local.get $4 @@ -26685,10 +26431,10 @@ call $~lib/array/Array#toString local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $2 i32.store - local.get $0 + local.get $1 i32.const 13520 i32.store offset=8 local.get $2 @@ -26703,17 +26449,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 13552 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13552 call $~lib/string/String.__eq i32.eqz @@ -26730,19 +26476,19 @@ i32.const 36 i32.const 13600 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer local.tee $2 i32.const 0 @@ -26750,16 +26496,16 @@ local.get $2 i32.const 9568 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $5 - local.get $1 + local.set $12 + local.get $0 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $8 + local.set $9 local.get $2 i32.const 4 i32.sub @@ -26767,7 +26513,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -26775,7 +26521,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $11 i32.const 0 i32.lt_s if @@ -26784,21 +26530,21 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner04 - local.get $6 + block $folding-inner09 + local.get $11 i32.eqz if - local.get $5 + local.get $12 i32.load8_s call $~lib/util/number/itoa32 - local.set $1 - br $folding-inner04 + local.set $0 + br $folding-inner09 end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $11 i32.const 9564 i32.load i32.const 1 @@ -26816,18 +26562,18 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|06 - local.get $6 - local.get $8 - i32.gt_s + loop $for-loop|011 + local.get $9 + local.get $11 + i32.lt_s if local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $5 - local.get $8 + local.get $9 + local.get $12 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -26851,11 +26597,11 @@ i32.add local.set $0 end - local.get $8 + local.get $9 i32.const 1 i32.add - local.set $8 - br $for-loop|06 + local.set $9 + br $for-loop|011 end end local.get $2 @@ -26864,8 +26610,8 @@ i32.shl local.get $1 i32.add - local.get $5 - local.get $6 + local.get $11 + local.get $12 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -26877,13 +26623,15 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $1 - br $folding-inner04 + local.set $0 + br $folding-inner09 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -26896,13 +26644,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 13632 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13632 call $~lib/string/String.__eq i32.eqz @@ -26919,19 +26667,19 @@ i32.const 9 i32.const 13664 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer local.tee $2 i32.const 0 @@ -26939,16 +26687,16 @@ local.get $2 i32.const 9568 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $5 - local.get $1 + local.set $12 + local.get $0 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $8 + local.set $9 local.get $2 i32.const 4 i32.sub @@ -26956,7 +26704,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -26964,7 +26712,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $11 i32.const 0 i32.lt_s if @@ -26973,21 +26721,21 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner07 - local.get $6 + block $folding-inner013 + local.get $11 i32.eqz if - local.get $5 + local.get $12 i32.load16_u call $~lib/util/number/utoa32 - local.set $1 - br $folding-inner07 + local.set $0 + br $folding-inner013 end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $11 i32.const 9564 i32.load i32.const 1 @@ -27005,20 +26753,20 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|09124 - local.get $6 - local.get $8 - i32.gt_s + loop $for-loop|015 + local.get $9 + local.get $11 + i32.lt_s if local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $8 + local.get $9 i32.const 1 i32.shl - local.get $5 + local.get $12 i32.add i32.load16_u call $~lib/util/number/itoa_buffered @@ -27042,11 +26790,11 @@ i32.add local.set $0 end - local.get $8 + local.get $9 i32.const 1 i32.add - local.set $8 - br $for-loop|09124 + local.set $9 + br $for-loop|015 end end local.get $2 @@ -27055,10 +26803,10 @@ i32.shl local.get $1 i32.add - local.get $6 + local.get $11 i32.const 1 i32.shl - local.get $5 + local.get $12 i32.add i32.load16_u call $~lib/util/number/itoa_buffered @@ -27070,13 +26818,15 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $1 - br $folding-inner07 + local.set $0 + br $folding-inner013 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -27089,13 +26839,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 13696 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13696 call $~lib/string/String.__eq i32.eqz @@ -27112,27 +26862,27 @@ i32.const 37 i32.const 13744 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9568 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -27140,9 +26890,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 13792 i32.store offset=8 local.get $0 @@ -27162,37 +26913,359 @@ i32.const 38 i32.const 13872 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=164 + local.tee $1 local.get $0 + i32.store offset=164 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 9568 i32.store - local.get $1 - call $~lib/array/Array#join + local.get $0 + i32.load offset=4 + local.set $12 + local.get $0 + i32.load offset=12 + local.set $1 + i32.const 0 local.set $0 + i32.const 0 + local.set $9 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 + i32.const 1 + i32.sub + local.tee $11 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9280 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + block $folding-inner017 + local.get $11 + i32.eqz + if + local.get $12 + i64.load + i64.extend32_s + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa64 + local.get $8 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9872 + local.set $0 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $8 + i64.sub + local.get $8 + local.get $8 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $4 + select + local.tee $8 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.wrap_i64 + local.tee $2 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $4 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $8 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $8 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $8 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $8 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $8 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $8 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $8 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $8 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $8 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $8 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $4 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $8 + local.get $1 + call $~lib/util/number/utoa64_dec_lut + end + local.get $4 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner017 + end + global.get $~lib/memory/__stack_pointer + local.get $11 + i32.const 9564 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|019 + local.get $9 + local.get $11 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $9 + i32.const 3 + i32.shl + local.get $12 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $4 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9568 + local.get $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $4 + i32.add + local.set $0 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|019 + end + end + local.get $2 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $11 + i32.const 3 + i32.shl + local.get $12 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner017 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 13936 i32.store offset=8 local.get $0 @@ -27213,18 +27286,18 @@ i32.const 31 i32.const 14048 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=140 - local.get $0 + local.get $1 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 14096 i32.store offset=8 - local.get $0 + local.get $1 i32.const 14096 call $~lib/string/String.__eq i32.eqz @@ -27241,20 +27314,20 @@ i32.const 31 i32.const 14208 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=164 - local.get $0 + local.get $1 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 14256 i32.store offset=8 - local.get $0 + local.get $1 i32.const 14256 call $~lib/string/String.__eq i32.eqz @@ -27267,19 +27340,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2 i32.const 2 i32.const 26 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=160 - local.get $1 + local.get $0 i32.const 0 i32.const 2 i32.const 2 @@ -27287,7 +27360,7 @@ i32.const 14288 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 2 @@ -27295,8 +27368,8 @@ i32.const 14320 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 local.get $1 + local.get $0 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27305,42 +27378,42 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9568 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $7 - local.get $1 + local.set $11 + local.get $0 i32.load offset=12 - local.set $2 + local.set $0 i32.const 0 - local.set $1 - local.get $0 + local.set $10 + local.get $1 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $2 + local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $12 i32.const 0 i32.lt_s if @@ -27352,17 +27425,17 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $6 + local.get $12 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $11 i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if (result i32) - local.get $0 + local.get $1 call $~lib/array/Array#toString else i32.const 9280 @@ -27383,37 +27456,37 @@ i32.load i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|011 - local.get $1 - local.get $6 + local.set $2 + loop $for-loop|022 + local.get $10 + local.get $12 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $10 i32.const 2 i32.shl - local.get $7 + local.get $11 i32.add i32.load - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/array/Array#toString - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=8 local.get $0 - local.get $5 + local.get $4 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 end - local.get $4 + local.get $2 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27422,18 +27495,18 @@ local.tee $0 i32.store offset=4 end - local.get $1 + local.get $10 i32.const 1 i32.add - local.set $1 - br $for-loop|011 + local.set $10 + br $for-loop|022 end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.const 2 i32.shl - local.get $7 + local.get $11 i32.add i32.load local.tee $2 @@ -27482,19 +27555,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2 i32.const 2 i32.const 39 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=132 - local.get $1 + local.get $0 i32.const 0 i32.const 2 i32.const 0 @@ -27502,7 +27575,7 @@ i32.const 14400 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 0 @@ -27510,8 +27583,8 @@ i32.const 14432 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 local.get $1 + local.get $0 i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27520,42 +27593,42 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9568 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.set $7 - local.get $1 + local.set $11 + local.get $0 i32.load offset=12 - local.set $2 + local.set $0 i32.const 0 - local.set $1 - local.get $0 + local.set $10 + local.get $1 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $2 + local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $12 i32.const 0 i32.lt_s if @@ -27567,17 +27640,17 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $6 + local.get $12 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $11 i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if (result i32) - local.get $0 + local.get $1 call $~lib/array/Array#toString else i32.const 9280 @@ -27598,37 +27671,37 @@ i32.load i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|01322 - local.get $1 - local.get $6 + local.set $2 + loop $for-loop|025 + local.get $10 + local.get $12 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $10 i32.const 2 i32.shl - local.get $7 + local.get $11 i32.add i32.load - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/array/Array#toString - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=8 local.get $0 - local.get $5 + local.get $4 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 end - local.get $4 + local.get $2 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27637,18 +27710,18 @@ local.tee $0 i32.store offset=4 end - local.get $1 + local.get $10 i32.const 1 i32.add - local.set $1 - br $for-loop|01322 + local.set $10 + br $for-loop|025 end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.const 2 i32.shl - local.get $7 + local.get $11 i32.add i32.load local.tee $2 @@ -27697,7 +27770,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 1 i32.const 2 i32.const 41 @@ -27715,13 +27788,13 @@ i32.const 40 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=124 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=120 - local.get $1 + local.get $0 i32.const 0 i32.const 1 i32.const 2 @@ -27731,9 +27804,9 @@ call $~lib/array/Array#__uset local.get $2 i32.const 0 - local.get $1 - call $~lib/array/Array#__uset local.get $0 + call $~lib/array/Array#__uset + local.get $1 local.get $2 i32.store offset=128 global.get $~lib/memory/__stack_pointer @@ -27743,42 +27816,42 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9568 i32.store local.get $2 i32.load offset=4 - local.set $7 + local.set $11 local.get $2 i32.load offset=12 - local.set $2 + local.set $0 i32.const 0 - local.set $1 - local.get $0 + local.set $10 + local.get $1 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - local.get $2 + local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $12 i32.const 0 i32.lt_s if @@ -27790,17 +27863,17 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end - local.get $6 + local.get $12 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $11 i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 if (result i32) - local.get $0 + local.get $1 call $~lib/array/Array<~lib/array/Array>#toString else i32.const 9280 @@ -27821,37 +27894,37 @@ i32.load i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|01523 - local.get $1 - local.get $6 + local.set $2 + loop $for-loop|029 + local.get $10 + local.get $12 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $10 i32.const 2 i32.shl - local.get $7 + local.get $11 i32.add i32.load - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 call $~lib/array/Array<~lib/array/Array>#toString - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=8 local.get $0 - local.get $5 + local.get $4 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 end - local.get $4 + local.get $2 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27860,18 +27933,18 @@ local.tee $0 i32.store offset=4 end - local.get $1 + local.get $10 i32.const 1 i32.add - local.set $1 - br $for-loop|01523 + local.set $10 + br $for-loop|029 end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $12 i32.const 2 i32.shl - local.get $7 + local.get $11 i32.add i32.load local.tee $2 @@ -27920,19 +27993,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.const 2 i32.const 26 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=128 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=132 - local.get $1 + local.get $0 i32.const 0 i32.const 1 i32.const 2 @@ -27940,7 +28013,7 @@ i32.const 14496 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 2 @@ -27948,7 +28021,7 @@ i32.const 14528 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 2 i32.const 3 i32.const 2 @@ -27956,7 +28029,7 @@ i32.const 14560 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 3 i32.const 3 i32.const 2 @@ -27964,11 +28037,11 @@ i32.const 14592 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 local.get $1 + local.get $0 i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#flat local.tee $1 i32.store offset=128 @@ -28012,7 +28085,7 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.const 2 i32.const 42 @@ -28056,14 +28129,14 @@ i32.const 14944 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 local.get $2 i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 0 local.set $1 i32.const 0 - local.set $8 + local.set $0 i32.const 0 local.set $3 global.get $~lib/memory/__stack_pointer @@ -28073,101 +28146,101 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner3 + br_if $folding-inner2 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store local.get $2 i32.load offset=4 - local.set $6 + local.set $10 local.get $2 i32.load offset=12 - local.set $5 - loop $for-loop|0133 + local.set $11 + loop $for-loop|0217 local.get $1 - local.get $5 + local.get $11 i32.lt_s if local.get $1 i32.const 2 i32.shl - local.get $6 + local.get $10 i32.add i32.load - local.tee $0 + local.tee $2 if (result i32) - local.get $0 + local.get $2 i32.load offset=12 else i32.const 0 end - local.get $8 + local.get $0 i32.add - local.set $8 + local.set $0 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0133 + br $for-loop|0217 end end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.const 2 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 31 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store offset=4 + local.get $2 local.get $0 - local.get $8 i32.store offset=12 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 - local.get $0 - local.get $7 + local.get $2 + local.get $9 i32.store offset=4 - local.get $0 - local.get $7 + local.get $2 + local.get $9 i32.store - local.get $0 - local.get $7 + local.get $2 + local.get $9 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 local.set $1 - loop $for-loop|1134 + loop $for-loop|1218 local.get $1 - local.get $5 + local.get $11 i32.lt_s if local.get $1 i32.const 2 i32.shl - local.get $6 + local.get $10 i32.add i32.load - local.tee $2 + local.tee $4 if local.get $3 - local.get $7 + local.get $9 i32.add - local.get $2 + local.get $4 i32.load offset=4 - local.get $2 + local.get $4 i32.load offset=8 - local.tee $2 + local.tee $4 call $~lib/memory/memory.copy - local.get $2 local.get $3 + local.get $4 i32.add local.set $3 end @@ -28175,21 +28248,21 @@ i32.const 1 i32.add local.set $1 - br $for-loop|1134 + br $for-loop|1218 end end i32.const 0 local.set $1 - loop $for-loop|2135 + loop $for-loop|2219 + local.get $0 local.get $1 - local.get $8 - i32.lt_s + i32.gt_s if - local.get $7 + local.get $9 local.get $1 i32.const 2 i32.shl - local.get $7 + local.get $9 i32.add i32.load i32.const 1 @@ -28198,14 +28271,14 @@ i32.const 1 i32.add local.set $1 - br $for-loop|2135 + br $for-loop|2219 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer @@ -28214,9 +28287,9 @@ i32.const 31 i32.const 14976 call $~lib/rt/__newArray - local.tee $5 + local.tee $12 i32.store offset=148 - local.get $0 + local.get $1 i32.load offset=12 i32.const 8 i32.ne @@ -28231,7 +28304,7 @@ i32.const 0 local.set $0 loop $for-loop|8 - local.get $5 + local.get $12 i32.load offset=12 local.get $0 i32.gt_s @@ -28243,7 +28316,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $5 + local.get $12 local.get $0 call $~lib/array/Array#__get local.set $2 @@ -28270,19 +28343,19 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2 i32.const 2 i32.const 26 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load offset=4 i32.store offset=156 - local.get $1 + local.get $0 i32.const 0 i32.const 0 i32.const 2 @@ -28290,7 +28363,7 @@ i32.const 15040 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 i32.const 1 i32.const 0 i32.const 2 @@ -28298,16 +28371,16 @@ i32.const 15072 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 local.get $1 + local.get $0 i32.store offset=156 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#flat - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -28329,12 +28402,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0163 + loop $while-continue|0223 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0163 + br $while-continue|0223 end end end @@ -28425,7 +28498,7 @@ end local.get $0 i32.load offset=4 - local.set $0 + local.set $4 loop $while-continue|0 local.get $2 local.get $3 @@ -28435,12 +28508,12 @@ local.get $2 i32.const 2 i32.shl - local.get $0 + local.get $4 i32.add i32.load - local.tee $4 + local.tee $0 i32.store - local.get $4 + local.get $0 local.get $1 call $~lib/string/String.__eq if @@ -28599,7 +28672,6 @@ (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28619,40 +28691,41 @@ local.tee $5 i32.const 0 i32.store + local.get $5 local.get $0 local.get $1 i32.shl - local.tee $4 - local.set $6 - local.get $4 + local.tee $1 + local.set $5 + local.get $1 i32.const 0 call $~lib/rt/itcms/__new - local.set $1 + local.set $4 local.get $3 if - local.get $1 + local.get $4 local.get $3 - local.get $6 + local.get $5 call $~lib/memory/memory.copy end - local.get $5 - local.get $1 + local.get $4 + local.tee $3 i32.store i32.const 16 local.get $2 call $~lib/rt/itcms/__new local.tee $2 - local.get $1 + local.get $3 i32.store local.get $2 - local.get $1 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link local.get $2 - local.get $1 + local.get $3 i32.store offset=4 local.get $2 - local.get $4 + local.get $1 i32.store offset=8 local.get $2 local.get $0 @@ -28723,14 +28796,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + i32.load offset=12 + local.tee $3 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select - local.tee $3 - local.get $0 - i32.load offset=12 local.tee $4 i32.add local.tee $2 @@ -28757,17 +28830,17 @@ local.tee $5 local.get $0 i32.load offset=4 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.tee $0 + local.tee $3 call $~lib/memory/memory.copy - local.get $0 + local.get $3 local.get $5 i32.add local.get $1 i32.load offset=4 - local.get $3 + local.get $4 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -28898,20 +28971,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 0 i32.store - local.get $3 + local.get $5 local.get $2 local.get $0 i32.load offset=12 - local.tee $4 + local.tee $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -28921,17 +28994,17 @@ select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end local.tee $1 i32.sub - local.tee $3 + local.tee $4 local.get $2 - local.get $3 + local.get $4 i32.lt_s select local.tee $2 @@ -28945,9 +29018,9 @@ i32.const 3 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.load offset=4 local.get $0 i32.load offset=4 @@ -28961,7 +29034,7 @@ i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $3 local.get $1 local.get $2 i32.add @@ -28974,7 +29047,7 @@ i32.shl local.get $5 i32.add - local.get $4 + local.get $3 local.get $1 i32.sub i32.const 2 @@ -28982,7 +29055,7 @@ call $~lib/memory/memory.copy end local.get $0 - local.get $4 + local.get $3 local.get $2 i32.sub i32.store offset=12 @@ -28990,7 +29063,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 ) (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -29242,24 +29315,24 @@ local.get $2 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $5 i32.const 2 i32.const 3 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.load offset=4 - local.set $4 + local.set $2 loop $for-loop|0 - local.get $2 + local.get $5 local.get $0 i32.load offset=12 - local.tee $5 - local.get $2 + local.tee $4 + local.get $4 local.get $5 - i32.lt_s + i32.gt_s select local.get $3 i32.gt_s @@ -29267,7 +29340,7 @@ local.get $3 i32.const 2 i32.shl - local.tee $5 + local.tee $4 local.get $0 i32.load offset=4 i32.add @@ -29275,8 +29348,8 @@ local.set $6 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $4 - local.get $5 i32.add local.get $6 local.get $3 @@ -29327,19 +29400,19 @@ i32.const 3 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $5 i32.store local.get $0 i32.load offset=12 - local.set $5 + local.set $2 loop $for-loop|0 - local.get $5 + local.get $2 local.get $0 i32.load offset=12 local.tee $3 + local.get $2 local.get $3 - local.get $5 - i32.gt_s + i32.lt_s select local.get $4 i32.gt_s @@ -29361,7 +29434,7 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 + local.get $5 local.get $3 call $~lib/array/Array#push drop @@ -29377,7 +29450,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $5 ) (func $std/array/Dim#constructor (result i32) (local $0 i32) @@ -29743,6 +29816,8 @@ i32.shr_u local.tee $2 local.get $2 + i32.const 0 + i32.gt_s select local.tee $3 local.get $1 @@ -29860,71 +29935,71 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $1 - select local.tee $2 + select local.tee $0 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.get $1 + local.get $2 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + local.get $1 local.get $0 - local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $2 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -29932,7 +30007,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 ) (func $~lib/util/number/utoa32 (param $0 i32) (result i32) (local $1 i32) @@ -30013,7 +30088,7 @@ i32.add end end - local.tee $0 + local.tee $1 i32.const 1 i32.shl i32.const 1 @@ -30021,8 +30096,8 @@ local.tee $2 i32.store local.get $2 - local.get $1 local.get $0 + local.get $1 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 @@ -30198,11 +30273,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -30224,7 +30299,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -30247,7 +30322,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -30426,41 +30501,43 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#every (result i32) + i32.const 0 + local.set $2 local.get $0 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|0 - local.get $3 + local.get $4 local.get $0 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $3 local.get $3 + local.get $4 i32.gt_s select - local.get $4 + local.get $2 i32.gt_s if local.get $0 i32.load offset=4 - local.get $4 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $3 local.get $2 - local.get $4 local.get $0 local.get $1 i32.load @@ -30468,10 +30545,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|0 end end @@ -30502,16 +30579,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=12 - local.set $4 - block $__inlined_func$~lib/array/Array#findIndex + block $__inlined_func$~lib/array/Array#findIndex (result i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $4 loop $for-loop|0 local.get $4 local.get $0 @@ -30531,14 +30610,18 @@ i32.shl i32.add i32.load + local.set $3 i32.const 3 global.set $~argumentsLength local.get $2 + local.get $3 + local.get $2 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex + drop local.get $2 i32.const 1 i32.add @@ -30547,13 +30630,11 @@ end end i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $export:~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -30580,12 +30661,12 @@ local.get $2 local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 1 - i32.sub - local.set $2 - block $__inlined_func$~lib/array/Array#findLastIndex + block $__inlined_func$~lib/array/Array#findLastIndex (result i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 loop $for-loop|0 local.get $2 i32.const 0 @@ -30598,14 +30679,18 @@ i32.shl i32.add i32.load + local.set $3 i32.const 3 global.set $~argumentsLength local.get $2 + local.get $3 + local.get $2 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex + drop local.get $2 i32.const 1 i32.sub @@ -30614,13 +30699,11 @@ end end i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $export:~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -30644,17 +30727,19 @@ i32.store i32.const 0 local.get $0 - i32.load offset=12 local.tee $2 + i32.load offset=12 + local.tee $0 local.get $1 i32.const 0 i32.ge_s select local.get $1 i32.add - local.tee $1 - local.get $2 - i32.ge_u + local.set $1 + local.get $0 + local.get $1 + i32.le_u if i32.const 1344 i32.const 1104 @@ -30663,7 +30748,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=4 local.get $1 i32.const 2 @@ -30825,7 +30910,8 @@ i32.const 0 local.set $2 end - block $__inlined_func$~lib/array/Array#indexOf + block $__inlined_func$~lib/array/Array#indexOf (result i32) + i32.const -1 local.get $2 local.get $0 i32.load offset=12 @@ -30834,11 +30920,8 @@ i32.const 1 local.get $3 select - if - i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf - end + br_if $__inlined_func$~lib/array/Array#indexOf + drop local.get $2 i32.const 0 i32.lt_s @@ -30862,6 +30945,7 @@ local.get $3 i32.lt_s if + local.get $2 local.get $1 local.get $2 i32.const 2 @@ -30871,6 +30955,7 @@ i32.load i32.eq br_if $__inlined_func$~lib/array/Array#indexOf + drop local.get $2 i32.const 1 i32.add @@ -30879,15 +30964,13 @@ end end i32.const -1 - local.set $2 end + i32.const 0 + i32.ge_s global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.ge_s ) (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -30922,7 +31005,8 @@ i32.const 0 local.set $2 end - block $__inlined_func$~lib/array/Array#indexOf + block $__inlined_func$~lib/array/Array#indexOf (result i32) + i32.const -1 local.get $2 local.get $0 i32.load offset=12 @@ -30931,11 +31015,8 @@ i32.const 1 local.get $3 select - if - i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf - end + br_if $__inlined_func$~lib/array/Array#indexOf + drop local.get $2 i32.const 0 i32.lt_s @@ -30959,6 +31040,7 @@ local.get $3 i32.lt_s if + local.get $2 local.get $1 local.get $2 i32.const 2 @@ -30968,6 +31050,7 @@ i32.load i32.eq br_if $__inlined_func$~lib/array/Array#indexOf + drop local.get $2 i32.const 1 i32.add @@ -30976,17 +31059,14 @@ end end i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $export:~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -31019,31 +31099,32 @@ i32.load offset=12 local.set $2 end - i32.const -1 - local.set $3 - block $__inlined_func$~lib/array/Array#lastIndexOf + block $__inlined_func$~lib/array/Array#lastIndexOf (result i32) + i32.const -1 local.get $0 + local.tee $3 i32.load offset=12 - local.tee $4 + local.tee $0 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf + drop + local.get $0 local.get $2 - local.get $4 i32.add - local.get $4 + local.get $0 i32.const 1 i32.sub local.get $2 + local.get $0 local.get $2 - local.get $4 - i32.ge_s + i32.le_s select local.get $2 i32.const 0 i32.lt_s select local.set $2 - local.get $0 + local.get $3 i32.load offset=4 local.set $0 loop $while-continue|0 @@ -31051,9 +31132,9 @@ i32.const 0 i32.ge_s if + local.get $2 local.get $1 local.get $2 - local.tee $3 i32.const 2 i32.shl local.get $0 @@ -31061,7 +31142,8 @@ i32.load i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $3 + drop + local.get $2 i32.const 1 i32.sub local.set $2 @@ -31069,13 +31151,11 @@ end end i32.const -1 - local.set $3 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) (func $export:~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -31109,11 +31189,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -31136,14 +31216,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $0 + i32.load offset=12 + local.tee $3 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select - local.tee $3 - local.get $0 - i32.load offset=12 local.tee $4 i32.add local.tee $2 @@ -31170,17 +31250,17 @@ local.tee $5 local.get $0 i32.load offset=4 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.tee $0 + local.tee $3 call $~lib/memory/memory.copy - local.get $0 + local.get $3 local.get $5 i32.add local.get $1 i32.load offset=4 - local.get $3 + local.get $4 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -31267,7 +31347,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.lt_s if @@ -31280,16 +31360,16 @@ end local.get $0 i32.load offset=4 - local.get $1 + local.get $2 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 2 i32.shl i32.add i32.load local.get $0 - local.get $1 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31322,39 +31402,41 @@ local.get $2 local.get $1 i32.store offset=4 + i32.const 0 + local.set $2 local.get $0 i32.load offset=12 - local.set $2 + local.set $4 loop $for-loop|0 - local.get $2 + local.get $4 local.get $0 i32.load offset=12 - local.tee $4 - local.get $2 + local.tee $3 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s select - local.get $3 + local.get $2 i32.gt_s if local.get $0 i32.load offset=4 - local.get $3 + local.get $2 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $2 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -31368,11 +31450,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -31392,11 +31474,13 @@ i32.const 15596 i32.lt_s br_if $folding-inner0 + local.get $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 2 i32.const 7 @@ -31406,15 +31490,15 @@ i32.store local.get $0 i32.load offset=12 - local.set $5 + local.set $1 loop $for-loop|0 - local.get $5 + local.get $1 local.get $0 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $5 + local.get $1 local.get $5 - i32.gt_s + i32.lt_s select local.get $4 i32.gt_s @@ -31426,18 +31510,18 @@ i32.shl i32.add i32.load - local.set $3 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $4 local.get $0 - local.get $1 + local.get $3 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $3 + local.get $5 call $~lib/array/Array#push drop end @@ -31491,7 +31575,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.lt_s if @@ -31504,27 +31588,27 @@ end local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.load - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 4 i32.add - local.get $1 + local.get $2 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 2 i32.shl local.tee $4 call $~lib/memory/memory.copy - local.get $2 + local.get $3 local.get $4 i32.add i32.const 0 i32.store local.get $0 - local.get $1 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31551,51 +31635,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#some (result i32) + i32.const 0 + local.set $2 local.get $0 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|0 - local.get $3 + local.get $4 local.get $0 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $3 local.get $3 + local.get $4 i32.gt_s select - local.get $4 + local.get $2 i32.gt_s if local.get $0 i32.load offset=4 - local.get $4 + local.get $2 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $3 local.get $2 - local.get $4 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|0 end end @@ -31635,11 +31721,11 @@ ) (func $export:~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -31728,14 +31814,14 @@ i32.const 0 i32.gt_s select - local.tee $3 + local.tee $2 i32.const 2 i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.load offset=4 local.get $0 i32.load offset=4 @@ -31743,7 +31829,7 @@ i32.const 2 i32.shl i32.add - local.get $3 + local.get $2 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -31755,7 +31841,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end i32.const 32000 @@ -31770,11 +31856,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -31804,12 +31890,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 0 i32.store - local.get $3 + local.get $5 local.get $2 local.get $0 + local.tee $3 i32.load offset=12 local.tee $4 local.get $1 @@ -31819,9 +31906,9 @@ local.get $1 local.get $4 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select @@ -31833,63 +31920,63 @@ i32.lt_s select end - local.tee $1 + local.tee $0 i32.sub - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.lt_s + i32.gt_s select - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select - local.tee $2 + local.tee $1 i32.const 2 i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.load offset=4 - local.get $0 + local.get $3 i32.load offset=4 local.tee $5 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add local.tee $6 - local.get $2 + local.get $1 i32.const 2 i32.shl call $~lib/memory/memory.copy local.get $4 + local.get $0 local.get $1 - local.get $2 i32.add - local.tee $1 + local.tee $0 i32.ne if local.get $6 - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $5 i32.add local.get $4 - local.get $1 + local.get $0 i32.sub i32.const 2 i32.shl call $~lib/memory/memory.copy end - local.get $0 + local.get $3 local.get $4 - local.get $2 + local.get $1 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -31900,7 +31987,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return end i32.const 32000 @@ -31937,7 +32024,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $4 + local.set $3 local.get $0 i32.load offset=12 local.tee $1 @@ -31947,36 +32034,36 @@ local.get $1 i32.const 1 i32.shr_u - local.set $5 + local.set $4 local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $5 loop $while-continue|0 local.get $2 - local.get $5 + local.get $4 i32.lt_u if local.get $2 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add - local.tee $3 + local.tee $1 i32.load local.set $6 - local.get $3 local.get $1 + local.get $5 local.get $2 i32.sub i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add - local.tee $3 + local.tee $1 i32.load i32.store - local.get $3 + local.get $1 local.get $6 i32.store local.get $2 @@ -32027,11 +32114,11 @@ ) (func $export:~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -32148,11 +32235,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -32174,7 +32261,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -32197,7 +32284,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -32346,39 +32433,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#every (result i32) + i32.const 0 + local.set $2 local.get $0 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|0 - local.get $3 + local.get $4 local.get $0 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $3 local.get $3 + local.get $4 i32.gt_s select - local.get $4 + local.get $2 i32.gt_s if - local.get $4 + local.get $2 local.get $0 i32.load offset=4 i32.add i32.load8_u - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $3 local.get $2 - local.get $4 local.get $0 local.get $1 i32.load @@ -32386,10 +32475,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|0 end end @@ -32420,16 +32509,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=12 - local.set $4 - block $__inlined_func$~lib/array/Array#findIndex + block $__inlined_func$~lib/array/Array#findIndex (result i32) + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $4 loop $for-loop|0 local.get $4 local.get $0 @@ -32447,14 +32538,18 @@ i32.load offset=4 i32.add i32.load8_u + local.set $3 i32.const 3 global.set $~argumentsLength local.get $2 + local.get $3 + local.get $2 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex + drop local.get $2 i32.const 1 i32.add @@ -32463,13 +32558,11 @@ end end i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $export:~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -32496,12 +32589,12 @@ local.get $2 local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=12 - i32.const 1 - i32.sub - local.set $2 - block $__inlined_func$~lib/array/Array#findLastIndex + block $__inlined_func$~lib/array/Array#findLastIndex (result i32) + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 loop $for-loop|0 local.get $2 i32.const 0 @@ -32512,14 +32605,18 @@ i32.load offset=4 i32.add i32.load8_u + local.set $3 i32.const 3 global.set $~argumentsLength local.get $2 + local.get $3 + local.get $2 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex + drop local.get $2 i32.const 1 i32.sub @@ -32528,13 +32625,11 @@ end end i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $export:~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -32558,17 +32653,19 @@ i32.store i32.const 0 local.get $0 - i32.load offset=12 local.tee $2 + i32.load offset=12 + local.tee $0 local.get $1 i32.const 0 i32.ge_s select local.get $1 i32.add - local.tee $1 - local.get $2 - i32.ge_u + local.set $1 + local.get $0 + local.get $1 + i32.le_u if i32.const 1344 i32.const 1104 @@ -32578,7 +32675,7 @@ unreachable end local.get $1 - local.get $0 + local.get $2 i32.load offset=4 i32.add i32.load8_u @@ -32666,7 +32763,8 @@ i32.const 0 local.set $2 end - block $__inlined_func$~lib/array/Array#indexOf + block $__inlined_func$~lib/array/Array#indexOf (result i32) + i32.const -1 local.get $2 local.get $0 i32.load offset=12 @@ -32675,11 +32773,8 @@ i32.const 1 local.get $3 select - if - i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf - end + br_if $__inlined_func$~lib/array/Array#indexOf + drop local.get $2 i32.const 0 i32.lt_s @@ -32703,6 +32798,7 @@ local.get $3 i32.lt_s if + local.get $2 local.get $0 local.get $2 i32.add @@ -32712,6 +32808,7 @@ i32.and i32.eq br_if $__inlined_func$~lib/array/Array#indexOf + drop local.get $2 i32.const 1 i32.add @@ -32720,15 +32817,13 @@ end end i32.const -1 - local.set $2 end + i32.const 0 + i32.ge_s global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - i32.ge_s ) (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -32763,7 +32858,8 @@ i32.const 0 local.set $2 end - block $__inlined_func$~lib/array/Array#indexOf + block $__inlined_func$~lib/array/Array#indexOf (result i32) + i32.const -1 local.get $2 local.get $0 i32.load offset=12 @@ -32772,11 +32868,8 @@ i32.const 1 local.get $3 select - if - i32.const -1 - local.set $2 - br $__inlined_func$~lib/array/Array#indexOf - end + br_if $__inlined_func$~lib/array/Array#indexOf + drop local.get $2 i32.const 0 i32.lt_s @@ -32800,6 +32893,7 @@ local.get $3 i32.lt_s if + local.get $2 local.get $0 local.get $2 i32.add @@ -32809,6 +32903,7 @@ i32.and i32.eq br_if $__inlined_func$~lib/array/Array#indexOf + drop local.get $2 i32.const 1 i32.add @@ -32817,17 +32912,14 @@ end end i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $export:~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32860,31 +32952,32 @@ i32.load offset=12 local.set $2 end - i32.const -1 - local.set $3 - block $__inlined_func$~lib/array/Array#lastIndexOf + block $__inlined_func$~lib/array/Array#lastIndexOf (result i32) + i32.const -1 local.get $0 + local.tee $3 i32.load offset=12 - local.tee $4 + local.tee $0 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf + drop + local.get $0 local.get $2 - local.get $4 i32.add - local.get $4 + local.get $0 i32.const 1 i32.sub local.get $2 + local.get $0 local.get $2 - local.get $4 - i32.ge_s + i32.le_s select local.get $2 i32.const 0 i32.lt_s select local.set $2 - local.get $0 + local.get $3 i32.load offset=4 local.set $0 loop $while-continue|0 @@ -32893,8 +32986,8 @@ i32.ge_s if local.get $2 - local.tee $3 local.get $0 + local.get $2 i32.add i32.load8_u local.get $1 @@ -32902,7 +32995,8 @@ i32.and i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $3 + drop + local.get $2 i32.const 1 i32.sub local.set $2 @@ -32910,13 +33004,11 @@ end end i32.const -1 - local.set $3 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) (func $export:~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -32950,11 +33042,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -32979,7 +33071,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 local.get $1 i32.load offset=12 i32.const 0 @@ -32987,7 +33079,7 @@ select local.tee $4 i32.add - local.tee $3 + local.tee $2 i32.const 1073741820 i32.gt_u if @@ -32999,21 +33091,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 0 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.load offset=4 local.tee $5 local.get $0 i32.load offset=4 - local.get $2 + local.get $3 call $~lib/memory/memory.copy - local.get $2 + local.get $3 local.get $5 i32.add local.get $1 @@ -33028,7 +33120,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return end i32.const 32000 @@ -33041,7 +33133,6 @@ (func $export:~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -33075,14 +33166,13 @@ end local.get $3 local.get $0 - local.tee $4 i32.load offset=12 - local.tee $5 + local.tee $4 local.get $3 - local.get $5 + local.get $4 i32.lt_s select - local.set $6 + local.set $5 local.get $0 i32.load offset=4 local.tee $3 @@ -33091,19 +33181,19 @@ i32.lt_s if (result i32) local.get $1 - local.get $5 + local.get $4 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select else local.get $1 - local.get $5 + local.get $4 local.get $1 - local.get $5 + local.get $4 i32.lt_s select end @@ -33114,63 +33204,63 @@ i32.lt_s if (result i32) local.get $2 - local.get $5 + local.get $4 i32.add - local.tee $0 + local.tee $2 i32.const 0 - local.get $0 + local.get $2 i32.const 0 i32.gt_s select else local.get $2 - local.get $5 + local.get $4 local.get $2 - local.get $5 + local.get $4 i32.lt_s select end - local.tee $0 + local.tee $2 local.get $3 i32.add - local.get $6 + local.get $5 i32.const 0 i32.lt_s if (result i32) + local.get $4 local.get $5 - local.get $6 i32.add - local.tee $2 + local.tee $3 i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.gt_s select else - local.get $6 local.get $5 + local.get $4 + local.get $4 local.get $5 - local.get $6 i32.gt_s select end - local.get $0 + local.get $2 i32.sub - local.tee $0 - local.get $5 + local.tee $2 + local.get $4 local.get $1 i32.sub local.tee $1 - local.get $0 local.get $1 - i32.lt_s + local.get $2 + i32.gt_s select call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $0 ) (func $export:~lib/array/Array#pop (param $0 i32) (result i32) (local $1 i32) @@ -33195,7 +33285,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.lt_s if @@ -33206,16 +33296,16 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.sub - local.tee $1 + local.tee $2 local.get $0 i32.load offset=4 i32.add i32.load8_u local.get $0 - local.get $1 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -33248,37 +33338,39 @@ local.get $2 local.get $1 i32.store offset=4 + i32.const 0 + local.set $2 local.get $0 i32.load offset=12 - local.set $2 + local.set $4 loop $for-loop|0 - local.get $2 + local.get $4 local.get $0 i32.load offset=12 - local.tee $4 - local.get $2 + local.tee $3 + local.get $3 local.get $4 - i32.lt_s + i32.gt_s select - local.get $3 + local.get $2 i32.gt_s if - local.get $3 + local.get $2 local.get $0 i32.load offset=4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $2 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -33292,11 +33384,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -33316,11 +33408,13 @@ i32.const 15596 i32.lt_s br_if $folding-inner0 + local.get $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 0 i32.const 6 @@ -33330,15 +33424,15 @@ i32.store local.get $0 i32.load offset=12 - local.set $5 + local.set $1 loop $for-loop|0 - local.get $5 + local.get $1 local.get $0 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $5 + local.get $1 local.get $5 - i32.gt_s + i32.lt_s select local.get $4 i32.gt_s @@ -33348,18 +33442,18 @@ i32.load offset=4 i32.add i32.load8_u - local.set $3 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $5 local.get $4 local.get $0 - local.get $1 + local.get $3 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $3 + local.get $5 call $~lib/array/Array#push drop end @@ -33412,7 +33506,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.lt_s if @@ -33425,24 +33519,24 @@ end local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.load8_u - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 1 i32.add - local.get $1 + local.get $2 i32.const 1 i32.sub - local.tee $1 + local.tee $2 call $~lib/memory/memory.copy - local.get $1 local.get $2 + local.get $3 i32.add i32.const 0 i32.store8 local.get $0 - local.get $1 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -33469,49 +33563,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.store - local.get $3 + local.get $2 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#some (result i32) + i32.const 0 + local.set $2 local.get $0 i32.load offset=12 - local.set $3 + local.set $4 loop $for-loop|0 - local.get $3 + local.get $4 local.get $0 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $3 local.get $3 + local.get $4 i32.gt_s select - local.get $4 + local.get $2 i32.gt_s if - local.get $4 + local.get $2 local.get $0 i32.load offset=4 i32.add i32.load8_u - local.set $2 + local.set $3 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $3 local.get $2 - local.get $4 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|0 end end @@ -33576,11 +33672,11 @@ ) (func $export:~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -33669,20 +33765,20 @@ i32.const 0 i32.gt_s select - local.tee $3 + local.tee $2 i32.const 0 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.load offset=4 local.get $1 local.get $0 i32.load offset=4 i32.add - local.get $3 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -33692,7 +33788,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end i32.const 32000 @@ -33707,11 +33803,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -33741,12 +33837,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 0 i32.store - local.get $3 + local.get $5 local.get $2 local.get $0 + local.tee $3 i32.load offset=12 local.tee $4 local.get $1 @@ -33756,9 +33853,9 @@ local.get $1 local.get $4 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select @@ -33770,55 +33867,55 @@ i32.lt_s select end - local.tee $1 + local.tee $0 i32.sub - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.lt_s + i32.gt_s select - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select - local.tee $2 + local.tee $1 i32.const 0 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.load offset=4 - local.get $1 local.get $0 + local.get $3 i32.load offset=4 local.tee $5 i32.add local.tee $6 - local.get $2 + local.get $1 call $~lib/memory/memory.copy local.get $4 + local.get $0 local.get $1 - local.get $2 i32.add - local.tee $1 + local.tee $0 i32.ne if local.get $6 - local.get $1 + local.get $0 local.get $5 i32.add local.get $4 - local.get $1 + local.get $0 i32.sub call $~lib/memory/memory.copy end - local.get $0 + local.get $3 local.get $4 - local.get $2 + local.get $1 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -33829,7 +33926,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return end i32.const 32000 @@ -33859,19 +33956,23 @@ local.get $0 i32.store local.get $0 - call $~lib/array/Array#reverse + i32.load offset=4 + local.get $0 + i32.load offset=12 + call $~lib/util/bytes/REVERSE global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $export:~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -33934,11 +34035,11 @@ ) (func $export:~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34022,11 +34123,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:std/array/ArrayStr#constructor@varargs (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34094,11 +34195,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34194,11 +34295,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34210,21 +34311,21 @@ local.get $3 local.get $1 i32.store offset=4 - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load offset=12 - local.set $3 - block $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex + block $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex (result i32) + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 loop $for-loop|0 local.get $3 local.get $0 @@ -34260,6 +34361,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex end local.get $2 @@ -34274,13 +34376,11 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 return end i32.const 32000 @@ -34293,11 +34393,11 @@ (func $export:~lib/array/Array<~lib/string/String>#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34309,23 +34409,23 @@ local.get $2 local.get $1 i32.store offset=4 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 1 - i32.sub - local.set $2 - block $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex + block $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex (result i32) + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 loop $for-loop|0 local.get $2 i32.const 0 @@ -34354,6 +34454,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex end local.get $2 @@ -34368,13 +34469,11 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 return end i32.const 32000 @@ -34386,11 +34485,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34472,6 +34571,7 @@ (func $export:~lib/array/Array<~lib/string/String>#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -34512,29 +34612,30 @@ local.set $3 end local.get $0 + local.tee $4 i32.load offset=4 - local.set $5 + local.set $6 local.get $0 i32.load offset=12 - local.set $4 + local.set $5 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $5 i32.add - local.tee $2 + local.tee $0 i32.const 0 - local.get $2 + local.get $0 i32.const 0 i32.gt_s select else local.get $2 - local.get $4 + local.get $5 local.get $2 - local.get $4 + local.get $5 i32.lt_s select end @@ -34544,36 +34645,36 @@ i32.lt_s if (result i32) local.get $3 - local.get $4 + local.get $5 i32.add - local.tee $3 + local.tee $0 i32.const 0 - local.get $3 + local.get $0 i32.const 0 i32.gt_s select else local.get $3 - local.get $4 + local.get $5 local.get $3 - local.get $4 + local.get $5 i32.lt_s select end - local.set $3 + local.set $0 loop $for-loop|0 + local.get $0 local.get $2 - local.get $3 - i32.lt_s + i32.gt_s if local.get $2 i32.const 2 i32.shl - local.get $5 + local.get $6 i32.add local.get $1 i32.store - local.get $0 + local.get $4 local.get $1 i32.const 1 call $~lib/rt/itcms/__link @@ -34588,7 +34689,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $4 ) (func $export:~lib/array/Array<~lib/string/String>#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -34686,11 +34787,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34716,18 +34817,18 @@ i32.load offset=12 local.set $2 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf + block $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.load offset=12 local.tee $3 @@ -34738,7 +34839,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf end local.get $2 @@ -34759,7 +34859,7 @@ local.set $2 local.get $0 i32.load offset=4 - local.set $0 + local.set $3 loop $while-continue|0 local.get $2 i32.const 0 @@ -34769,12 +34869,12 @@ local.get $2 i32.const 2 i32.shl - local.get $0 + local.get $3 i32.add i32.load - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 local.get $1 call $~lib/string/String.__eq if @@ -34782,6 +34882,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf end local.get $2 @@ -34796,13 +34897,11 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 return end i32.const 32000 @@ -34851,26 +34950,23 @@ (local $5 i32) (local $6 i32) (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 local.tee $2 local.get $0 i32.store local.get $2 local.get $1 i32.store offset=4 - i32.const 0 - local.set $2 - local.get $3 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -34889,9 +34985,9 @@ i32.const 0 local.get $1 select - local.tee $6 + local.tee $5 i32.add - local.tee $3 + local.tee $2 i32.const 268435455 i32.gt_u if @@ -34903,56 +34999,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 2 i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.load offset=4 - local.set $5 + local.set $6 local.get $4 i32.const 2 i32.shl local.set $4 local.get $0 i32.load offset=4 - local.set $0 + local.set $7 loop $for-loop|0 - local.get $2 + local.get $3 local.get $4 i32.lt_u if - local.get $2 - local.get $5 + local.get $3 + local.get $6 i32.add - local.get $0 - local.get $2 + local.get $3 + local.get $7 i32.add i32.load - local.tee $7 + local.tee $0 i32.store - local.get $3 - local.get $7 + local.get $2 + local.get $0 i32.const 1 call $~lib/rt/itcms/__link - local.get $2 + local.get $3 i32.const 4 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end local.get $4 - local.get $5 + local.get $6 i32.add - local.set $2 + local.set $3 local.get $1 i32.load offset=4 - local.set $1 - local.get $6 + local.set $4 + local.get $5 i32.const 2 i32.shl local.set $5 @@ -34964,16 +35060,16 @@ i32.lt_u if local.get $0 - local.get $2 + local.get $3 i32.add local.get $0 - local.get $1 + local.get $4 i32.add i32.load - local.tee $4 + local.tee $1 i32.store - local.get $3 - local.get $4 + local.get $2 + local.get $1 i32.const 1 call $~lib/rt/itcms/__link local.get $0 @@ -34991,7 +35087,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return end i32.const 32000 @@ -35005,20 +35101,20 @@ (local $1 i32) (local $2 i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -35031,7 +35127,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.lt_s if @@ -35043,23 +35139,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.load offset=4 - local.get $1 + local.get $2 i32.const 1 i32.sub - local.tee $1 + local.tee $2 i32.const 2 i32.shl i32.add i32.load - local.tee $3 + local.tee $1 i32.store local.get $0 - local.get $1 - i32.store offset=12 local.get $2 + i32.store offset=12 + local.get $3 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -35067,7 +35163,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 return end i32.const 32000 @@ -35081,11 +35177,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35170,11 +35266,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35194,11 +35290,13 @@ i32.const 15596 i32.lt_s br_if $folding-inner0 + local.get $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.const 2 i32.const 33 @@ -35213,8 +35311,8 @@ local.get $5 local.get $0 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $1 + local.get $1 local.get $5 i32.gt_s select @@ -35229,19 +35327,19 @@ i32.shl i32.add i32.load - local.tee $3 + local.tee $1 i32.store offset=4 i32.const 3 global.set $~argumentsLength - local.get $3 + local.get $1 local.get $4 local.get $0 - local.get $1 + local.get $3 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $3 + local.get $1 call $~lib/array/Array<~lib/string/String>#push drop end @@ -35275,20 +35373,20 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -35301,7 +35399,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 1 i32.lt_s if @@ -35315,29 +35413,29 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.tee $1 + local.tee $2 i32.load - local.tee $3 + local.tee $1 i32.store - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 4 i32.add - local.get $2 + local.get $3 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.const 2 i32.shl local.tee $4 call $~lib/memory/memory.copy - local.get $1 + local.get $2 local.get $4 i32.add i32.const 0 i32.store local.get $0 - local.get $2 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -35347,7 +35445,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 return end i32.const 32000 @@ -35361,11 +35459,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35522,11 +35620,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35562,13 +35660,13 @@ i32.store local.get $0 i32.load offset=12 - local.set $3 + local.set $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -35578,9 +35676,9 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end @@ -35591,7 +35689,7 @@ i32.lt_s if (result i32) local.get $2 - local.get $3 + local.get $4 i32.add local.tee $2 i32.const 0 @@ -35601,9 +35699,9 @@ select else local.get $2 - local.get $3 + local.get $4 local.get $2 - local.get $3 + local.get $4 i32.lt_s select end @@ -35615,16 +35713,16 @@ i32.const 0 i32.gt_s select - local.tee $3 + local.tee $4 i32.const 2 i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.load offset=4 - local.set $4 + local.set $2 local.get $0 i32.load offset=4 local.get $1 @@ -35632,34 +35730,32 @@ i32.shl i32.add local.set $1 - i32.const 0 - local.set $0 - local.get $3 + local.get $4 i32.const 2 i32.shl - local.set $3 + local.set $0 loop $while-continue|0 local.get $0 - local.get $3 - i32.lt_u + local.get $5 + i32.gt_u if - local.get $0 - local.get $4 + local.get $2 + local.get $5 i32.add - local.get $0 local.get $1 + local.get $5 i32.add i32.load - local.tee $5 + local.tee $4 i32.store - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $5 i32.const 4 i32.add - local.set $0 + local.set $5 br $while-continue|0 end end @@ -35671,7 +35767,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end i32.const 32000 @@ -35686,11 +35782,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35720,12 +35816,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 0 i32.store - local.get $3 + local.get $5 local.get $2 local.get $0 + local.tee $3 i32.load offset=12 local.tee $4 local.get $1 @@ -35735,9 +35832,9 @@ local.get $1 local.get $4 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select @@ -35749,63 +35846,63 @@ i32.lt_s select end - local.tee $1 + local.tee $0 i32.sub - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.lt_s + i32.gt_s select - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select - local.tee $2 + local.tee $1 i32.const 2 i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.load offset=4 - local.get $0 + local.get $3 i32.load offset=4 local.tee $5 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add local.tee $6 - local.get $2 + local.get $1 i32.const 2 i32.shl call $~lib/memory/memory.copy local.get $4 + local.get $0 local.get $1 - local.get $2 i32.add - local.tee $1 + local.tee $0 i32.ne if local.get $6 - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $5 i32.add local.get $4 - local.get $1 + local.get $0 i32.sub i32.const 2 i32.shl call $~lib/memory/memory.copy end - local.get $0 + local.get $3 local.get $4 - local.get $2 + local.get $1 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -35816,7 +35913,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return end i32.const 32000 @@ -35833,11 +35930,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35848,7 +35945,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $5 + local.set $4 local.get $0 i32.load offset=12 local.set $1 @@ -35870,39 +35967,39 @@ local.get $1 i32.const 1 i32.shr_u - local.set $3 + local.set $5 local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $6 loop $while-continue|0 local.get $2 - local.get $3 + local.get $5 i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $2 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add - local.tee $4 + local.tee $1 i32.load - local.tee $6 + local.tee $3 i32.store - local.get $4 local.get $1 + local.get $6 local.get $2 i32.sub i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add - local.tee $4 + local.tee $1 i32.load i32.store - local.get $4 - local.get $6 + local.get $1 + local.get $3 i32.store local.get $2 i32.const 1 @@ -35932,11 +36029,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#sort@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35999,11 +36096,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#join@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 88486e11d5..4e7c1482c5 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -116,6 +116,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -123,10 +124,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18228 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -140,7 +141,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -165,19 +166,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1712 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1360 i32.const 1424 @@ -186,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1716 @@ -201,28 +204,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1485,7 +1488,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1513,11 +1516,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1536,9 +1539,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1554,7 +1557,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1569,18 +1572,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1591,7 +1594,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1605,13 +1608,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1624,89 +1630,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1714,7 +1720,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2726,11 +2732,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1844 i32.lt_s @@ -2778,6 +2784,7 @@ i32.const 1456 global.set $~lib/rt/itcms/fromSpace local.get $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2786,10 +2793,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 8 i32.const 0 call $~lib/rt/itcms/__new @@ -2802,8 +2809,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.tee $1 i32.store local.get $0 i32.const 20 @@ -2820,13 +2827,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 0 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -2852,13 +2859,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -2873,13 +2880,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const -1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -2894,13 +2901,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 i32.const 3 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -2915,13 +2922,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -2936,13 +2943,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const -3 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -2957,13 +2964,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const -4 i32.const 42 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -2978,7 +2985,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 42 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice @@ -3024,19 +3031,20 @@ i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3050,32 +3058,32 @@ local.tee $0 i32.const 0 i32.store + local.get $0 i32.const 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.const 1632 i32.const 8 call $~lib/memory/memory.copy local.get $0 - local.get $2 i32.store i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 - local.get $2 - i32.store + local.tee $2 local.get $0 + i32.store local.get $2 - call $~lib/rt/itcms/__link local.get $0 + call $~lib/rt/itcms/__link local.get $2 - i32.store offset=4 local.get $0 + i32.store offset=4 + local.get $2 i32.const 8 i32.store offset=8 - local.get $0 + local.get $2 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -3083,7 +3091,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3122,10 +3130,11 @@ local.tee $1 i32.store offset=16 local.get $1 + local.tee $0 i32.const 20 i32.sub i32.load offset=16 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3135,34 +3144,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 12 i32.const 15 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $2 i32.const 0 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $2 local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.gt_u - local.get $2 + local.get $1 i32.const 1073741820 i32.gt_u i32.or @@ -3174,24 +3183,24 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $0 - local.get $1 i32.store + local.get $2 local.get $0 - local.get $1 call $~lib/rt/itcms/__link + local.get $2 local.get $0 - local.get $1 i32.store offset=4 - local.get $0 local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=12 i32.const 18228 global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index 79fa20cf26..7ae1cee419 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -122,6 +122,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -129,10 +130,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18172 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -146,7 +147,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -171,19 +172,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1744 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1360 i32.const 1424 @@ -192,7 +195,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1748 @@ -207,28 +210,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1491,7 +1494,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1519,11 +1522,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1542,9 +1545,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1560,7 +1563,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1575,18 +1578,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1597,7 +1600,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1611,13 +1614,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1630,89 +1636,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1720,7 +1726,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2539,12 +2545,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1788 i32.lt_s @@ -2589,6 +2594,7 @@ i32.const 1456 global.set $~lib/rt/itcms/fromSpace local.get $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2597,14 +2603,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2618,107 +2624,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store end - local.get $1 + local.get $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 8 call $~lib/memory/memory.fill + local.get $0 local.get $1 - local.get $2 i32.store + local.get $0 local.get $1 - local.get $2 call $~lib/rt/itcms/__link + local.get $0 local.get $1 - local.get $2 i32.store offset=4 - local.get $1 + local.get $0 i32.const 8 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 246 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 224 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 88 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const 159 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 4 i32.const 130 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 5 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 6 i32.const 67 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 7 i32.const 95 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.load local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load i32.sub - local.get $1 + local.get $2 i32.load offset=8 call $~lib/dataview/DataView#constructor local.tee $0 @@ -3948,6 +3954,7 @@ unreachable end local.get $0 + local.tee $1 i32.load offset=8 i32.eqz if @@ -3958,11 +3965,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 i32.const 108 i32.store8 - local.get $0 + local.get $1 i32.const 0 call $~lib/dataview/DataView#getInt8 i32.const 108 @@ -3975,11 +3982,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const -13360 i32.const 1 call $~lib/dataview/DataView#setInt16 - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -3995,11 +4002,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 14689 i32.const 0 call $~lib/dataview/DataView#setInt16 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -4015,11 +4022,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1204680201 i32.const 1 call $~lib/dataview/DataView#setInt32 - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4033,11 +4040,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 660673230 i32.const 0 call $~lib/dataview/DataView#setInt32 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4051,11 +4058,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const -3290739641816099749 i32.const 1 call $~lib/dataview/DataView#setInt64 - local.get $0 + local.get $1 i32.const 1 call $~lib/dataview/DataView#getInt64 i64.const -3290739641816099749 @@ -4068,11 +4075,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 8178932412950708047 i32.const 0 call $~lib/dataview/DataView#setInt64 - local.get $0 + local.get $1 i32.const 0 call $~lib/dataview/DataView#getInt64 i64.const 8178932412950708047 @@ -4085,7 +4092,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.eqz if @@ -4096,11 +4103,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 i32.const 238 i32.store8 - local.get $0 + local.get $1 i32.const 0 call $~lib/dataview/DataView#getUint8 i32.const 238 @@ -4113,11 +4120,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 58856 i32.const 1 call $~lib/dataview/DataView#setUint16 - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4133,11 +4140,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 60400 i32.const 0 call $~lib/dataview/DataView#setUint16 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4153,11 +4160,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const -846805744 i32.const 1 call $~lib/dataview/DataView#setUint32 - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4171,11 +4178,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const -1510791631 i32.const 0 call $~lib/dataview/DataView#setUint32 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4189,11 +4196,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const 2334704782995986958 i32.const 1 call $~lib/dataview/DataView#setUint64 - local.get $0 + local.get $1 i32.const 1 call $~lib/dataview/DataView#getUint64 i64.const 2334704782995986958 @@ -4206,11 +4213,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.const -7123186897289856329 i32.const 0 call $~lib/dataview/DataView#setUint64 - local.get $0 + local.get $1 i32.const 0 call $~lib/dataview/DataView#getUint64 i64.const -7123186897289856329 @@ -4224,24 +4231,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.load local.tee $1 + local.get $2 + i32.load + local.tee $0 i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.const 0 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 call $~lib/dataview/DataView#constructor - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub if @@ -4252,7 +4259,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 8 i32.ne diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index d2136f4d4e..315d7b1c47 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -233,7 +233,20 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/date/epochMillis (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i64) - (local $7 i32) + local.get $6 + i64.extend_i32_s + local.get $5 + i32.const 1000 + i32.mul + i64.extend_i32_s + local.get $4 + i32.const 60000 + i32.mul + i64.extend_i32_s + local.get $3 + i32.const 3600000 + i32.mul + i64.extend_i32_s local.get $0 local.get $1 i32.const 2 @@ -249,21 +262,7 @@ select i32.const 400 i32.div_s - local.set $7 - local.get $6 - i64.extend_i32_s - local.get $5 - i32.const 1000 - i32.mul - i64.extend_i32_s - local.get $4 - i32.const 60000 - i32.mul - i64.extend_i32_s - local.get $3 - i32.const 3600000 - i32.mul - i64.extend_i32_s + local.set $3 local.get $2 i32.const -3 i32.const 9 @@ -281,7 +280,7 @@ i32.div_u i32.add local.get $0 - local.get $7 + local.get $3 i32.const 400 i32.mul i32.sub @@ -297,7 +296,7 @@ i32.div_u i32.sub i32.add - local.get $7 + local.get $3 i32.const 146097 i32.mul i32.add @@ -483,6 +482,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -490,10 +490,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 23948 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -507,7 +507,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -532,19 +532,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 7504 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1392 i32.const 1456 @@ -553,7 +555,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 7508 @@ -568,28 +570,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1852,7 +1854,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1880,11 +1882,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1903,9 +1905,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1921,7 +1923,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1936,18 +1938,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1958,7 +1960,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1972,13 +1974,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1991,89 +1996,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -2081,7 +2086,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2240,8 +2245,7 @@ (func $~lib/date/Date#setUTCDate (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i64) + (local $4 i64) local.get $1 local.get $0 i32.load offset=8 @@ -2250,45 +2254,45 @@ return end local.get $0 + i64.const 86400000 + i64.const 0 + local.get $0 + i64.load offset=16 + i64.const 86400000 + i64.rem_s + local.tee $4 + i64.const 0 + i64.lt_s + select + local.get $4 + i64.add + local.get $0 i32.load local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 2 i32.le_s i32.sub - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 399 i32.sub - local.get $2 + local.get $0 i32.const 0 i32.ge_s select i32.const 400 i32.div_s - local.set $4 - local.get $0 - local.get $0 - i64.load offset=16 - i64.const 86400000 - i64.rem_s - local.tee $5 - i64.const 86400000 - i64.const 0 - local.get $5 - i64.const 0 - i64.lt_s - select - i64.add + local.set $3 local.get $1 i32.const -3 i32.const 9 - local.get $3 + local.get $2 i32.const 2 i32.gt_s select - local.get $3 + local.get $2 i32.add i32.const 153 i32.mul @@ -2297,8 +2301,8 @@ i32.const 5 i32.div_u i32.add - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.const 400 i32.mul i32.sub @@ -2314,7 +2318,7 @@ i32.div_u i32.sub i32.add - local.get $4 + local.get $3 i32.const 146097 i32.mul i32.add @@ -2338,6 +2342,7 @@ return end local.get $0 + local.get $0 i32.load local.get $1 i32.const 1 @@ -2357,18 +2362,17 @@ i32.const 400 i32.div_s local.set $3 - local.get $0 + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s local.tee $4 - i64.const 86400000 - i64.const 0 - local.get $4 i64.const 0 i64.lt_s select + local.get $4 i64.add local.get $0 i32.load offset=8 @@ -2392,14 +2396,14 @@ i32.const 400 i32.mul i32.sub - local.tee $0 + local.tee $1 i32.const 365 i32.mul - local.get $0 + local.get $1 i32.const 2 i32.shr_u i32.add - local.get $0 + local.get $1 i32.const 100 i32.div_u i32.sub @@ -2427,6 +2431,7 @@ if return end + local.get $0 local.get $1 local.get $0 i32.load offset=4 @@ -2445,18 +2450,17 @@ i32.const 400 i32.div_s local.set $3 - local.get $0 + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s local.tee $4 - i64.const 86400000 - i64.const 0 - local.get $4 i64.const 0 i64.lt_s select + local.get $4 i64.add local.get $0 i32.load offset=8 @@ -2480,14 +2484,14 @@ i32.const 400 i32.mul i32.sub - local.tee $0 + local.tee $1 i32.const 365 i32.mul - local.get $0 + local.get $1 i32.const 2 i32.shr_u i32.add - local.get $0 + local.get $1 i32.const 100 i32.div_u i32.sub @@ -2509,25 +2513,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7564 - i32.lt_s - if - i32.const 23968 - i32.const 24016 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32 + block $__inlined_func$~lib/util/number/itoa32 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7564 + i32.lt_s + if + i32.const 23968 + i32.const 24016 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.eqz if @@ -2536,9 +2540,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1872 - local.set $1 br $__inlined_func$~lib/util/number/itoa32 end + global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 i32.sub @@ -2549,49 +2553,47 @@ local.tee $3 select local.tee $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add @@ -2717,8 +2719,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $1 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3625,25 +3627,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7564 - i32.lt_s - if - i32.const 23968 - i32.const 24016 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/string/String#concat + block $__inlined_func$~lib/string/String#concat (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7564 + i32.lt_s + if + i32.const 23968 + i32.const 24016 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.const 20 i32.sub @@ -3671,7 +3673,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 - local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer @@ -3694,8 +3695,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $2 ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -4481,6 +4482,7 @@ (local $2 i32) (local $3 i32) (local $4 i64) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 112 i32.sub @@ -4554,6 +4556,7 @@ if global.get $~lib/memory/__stack_pointer local.tee $3 + local.get $3 i32.const 1616 i32.const 1648 local.get $2 @@ -4561,12 +4564,12 @@ local.tee $2 i32.store local.get $1 - local.get $1 i32.const 31 i32.shr_s - local.tee $1 - i32.add + local.tee $3 local.get $1 + local.get $3 + i32.add i32.xor call $~lib/number/I32#toString local.set $1 @@ -4583,7 +4586,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $3 local.get $2 local.get $1 call $~lib/string/String.__concat @@ -4684,17 +4686,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=60 + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s local.tee $4 - i64.const 86400000 - i64.const 0 - local.get $4 i64.const 0 i64.lt_s select + local.get $4 i64.add i32.wrap_i64 i32.const 3600000 @@ -4732,17 +4734,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=44 + i64.const 3600000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s local.tee $4 - i64.const 3600000 - i64.const 0 - local.get $4 i64.const 0 i64.lt_s select + local.get $4 i64.add i32.wrap_i64 i32.const 60000 @@ -4780,17 +4782,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=28 + i64.const 60000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s local.tee $4 - i64.const 60000 - i64.const 0 - local.get $4 i64.const 0 i64.lt_s select + local.get $4 i64.add i32.wrap_i64 i32.const 1000 @@ -4828,17 +4830,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s local.tee $4 - i64.const 1000 - i64.const 0 - local.get $4 i64.const 0 i64.lt_s select + local.get $4 i64.add i32.wrap_i64 call $~lib/number/I32#toString @@ -4960,7 +4962,6 @@ i32.load8_u local.get $2 local.get $2 - local.get $2 i32.const 3 i32.sub local.get $5 @@ -4985,6 +4986,7 @@ i32.const 400 i32.div_s i32.add + local.get $2 i32.add i32.add i32.add @@ -5141,17 +5143,17 @@ local.get $1 i64.const 0 i64.store offset=32 + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s local.tee $3 - i64.const 86400000 - i64.const 0 - local.get $3 i64.const 0 i64.lt_s select + local.get $3 i64.add i32.wrap_i64 i32.const 3600000 @@ -5182,17 +5184,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 + i64.const 3600000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s local.tee $3 - i64.const 3600000 - i64.const 0 - local.get $3 i64.const 0 i64.lt_s select + local.get $3 i64.add i32.wrap_i64 i32.const 60000 @@ -5230,17 +5232,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store + i64.const 60000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s local.tee $3 - i64.const 60000 - i64.const 0 - local.get $3 i64.const 0 i64.lt_s select + local.get $3 i64.add i32.wrap_i64 i32.const 1000 @@ -5373,7 +5375,6 @@ i32.load8_u local.get $4 local.get $4 - local.get $4 i32.const 3 i32.sub local.get $2 @@ -5398,6 +5399,7 @@ i32.const 400 i32.div_s i32.add + local.get $4 i32.add i32.add i32.add @@ -5952,7 +5954,6 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 28 i32.sub @@ -6120,47 +6121,47 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i32.const 1616 i32.store - local.get $0 + local.get $2 local.get $1 i32.const 1616 call $~lib/string/String#split - local.tee $2 + local.tee $0 i32.store offset=24 - local.get $2 + local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $0 + local.get $1 call $~lib/util/string/strtol i32.const 1 local.set $1 - local.get $2 + local.get $0 i32.load offset=12 - local.tee $8 + local.tee $2 i32.const 2 i32.ge_s if (result i32) - local.get $2 + local.get $0 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $0 + local.get $1 call $~lib/util/string/strtol local.set $1 - local.get $8 + local.get $2 i32.const 3 i32.ge_s if (result i32) - local.get $2 + local.get $0 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.set $0 @@ -6175,9 +6176,9 @@ else i32.const 1 end - local.set $0 + local.set $2 local.get $1 - local.get $0 + local.get $2 local.get $5 local.get $6 local.get $3 @@ -6191,10 +6192,9 @@ ) (func $start:std/date (local $0 i32) - (local $1 i64) - (local $2 i32) + (local $1 i32) + (local $2 i64) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 36 i32.sub @@ -6235,15 +6235,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $1 + local.tee $2 i64.const -8640000000000000 i64.lt_s - local.get $1 + local.get $2 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $1 + local.get $2 i64.eqz i32.eqz if @@ -6262,15 +6262,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $1 + local.tee $2 i64.const -8640000000000000 i64.lt_s - local.get $1 + local.get $2 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $1 + local.get $2 i64.eqz i32.eqz if @@ -6289,15 +6289,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $1 + local.tee $2 i64.const -8640000000000000 i64.lt_s - local.get $1 + local.get $2 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $1 + local.get $2 i64.eqz i32.eqz if @@ -6316,15 +6316,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $1 + local.tee $2 i64.const -8640000000000000 i64.lt_s - local.get $1 + local.get $2 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $1 + local.get $2 i64.const 631152000000 i64.ne if @@ -6343,15 +6343,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $1 + local.tee $2 i64.const -8640000000000000 i64.lt_s - local.get $1 + local.get $2 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $1 + local.get $2 i64.const -65007360000000 i64.ne if @@ -6370,15 +6370,15 @@ i32.const 0 i32.const 1 call $~lib/date/epochMillis - local.tee $1 + local.tee $2 i64.const -8640000000000000 i64.lt_s - local.get $1 + local.get $2 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $1 + local.get $2 i64.const 1541847600001 i64.ne if @@ -6397,15 +6397,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $1 + local.tee $2 i64.const -8640000000000000 i64.lt_s - local.get $1 + local.get $2 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $1 + local.get $2 i64.const 8640000000000000 i64.ne if @@ -6521,17 +6521,17 @@ call $~lib/builtins/abort unreachable end + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $1 - i64.const 86400000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -6546,17 +6546,17 @@ call $~lib/builtins/abort unreachable end + i64.const 3600000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $1 - i64.const 3600000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -6571,17 +6571,17 @@ call $~lib/builtins/abort unreachable end + i64.const 60000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $1 - i64.const 60000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -6596,17 +6596,17 @@ call $~lib/builtins/abort unreachable end + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $1 - i64.const 1000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 706 @@ -6660,17 +6660,17 @@ call $~lib/builtins/abort unreachable end + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $1 - i64.const 86400000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -6685,17 +6685,17 @@ call $~lib/builtins/abort unreachable end + i64.const 3600000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $1 - i64.const 3600000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -6710,17 +6710,17 @@ call $~lib/builtins/abort unreachable end + i64.const 60000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $1 - i64.const 60000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -6735,17 +6735,17 @@ call $~lib/builtins/abort unreachable end + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $1 - i64.const 1000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 274 @@ -6763,17 +6763,17 @@ call $~lib/date/Date#constructor local.tee $0 i32.store + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $1 - i64.const 1000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 984 @@ -6789,17 +6789,17 @@ local.get $0 i32.const 12 call $~lib/date/Date#setUTCMilliseconds + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $1 - i64.const 1000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 12 @@ -6815,17 +6815,17 @@ local.get $0 i32.const 568 call $~lib/date/Date#setUTCMilliseconds + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $1 - i64.const 1000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 568 @@ -6871,17 +6871,17 @@ local.get $0 i32.const 2000 call $~lib/date/Date#setUTCMilliseconds + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $1 - i64.const 1000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 if @@ -6907,17 +6907,17 @@ local.get $0 i32.const -2000 call $~lib/date/Date#setUTCMilliseconds + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $1 - i64.const 1000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 if @@ -6945,17 +6945,17 @@ call $~lib/date/Date#constructor local.tee $0 i32.store + i64.const 60000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $1 - i64.const 60000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -6973,17 +6973,17 @@ local.get $0 i32.const 12 call $~lib/date/Date#setUTCSeconds + i64.const 60000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $1 - i64.const 60000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -7001,17 +7001,17 @@ local.get $0 i32.const 50 call $~lib/date/Date#setUTCSeconds + i64.const 60000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $1 - i64.const 60000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -7061,17 +7061,17 @@ call $~lib/date/Date#constructor local.tee $0 i32.store + i64.const 3600000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $1 - i64.const 3600000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -7089,17 +7089,17 @@ local.get $0 i32.const 12 call $~lib/date/Date#setUTCMinutes + i64.const 3600000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $1 - i64.const 3600000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -7117,17 +7117,17 @@ local.get $0 i32.const 50 call $~lib/date/Date#setUTCMinutes + i64.const 3600000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $1 - i64.const 3600000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -7177,17 +7177,17 @@ call $~lib/date/Date#constructor local.tee $0 i32.store + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $1 - i64.const 86400000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -7205,17 +7205,17 @@ local.get $0 i32.const 12 call $~lib/date/Date#setUTCHours + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $1 - i64.const 86400000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -7233,17 +7233,17 @@ local.get $0 i32.const 2 call $~lib/date/Date#setUTCHours + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $1 - i64.const 86400000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -7398,17 +7398,17 @@ call $~lib/builtins/abort unreachable end + i64.const 3600000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $1 - i64.const 3600000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -7423,17 +7423,17 @@ call $~lib/builtins/abort unreachable end + i64.const 60000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $1 - i64.const 60000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -7448,17 +7448,17 @@ call $~lib/builtins/abort unreachable end + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $1 - i64.const 1000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 274 @@ -7609,65 +7609,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1467763200000 call $~lib/date/Date#constructor - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.load - local.get $2 + local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 + local.set $1 + i32.const 7 i32.const 0 - i32.ge_s - local.set $3 - local.get $2 + local.get $0 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.sub - local.get $3 + local.get $1 + i32.const 0 + i32.ge_s + local.tee $0 select i32.const 4 i32.div_s - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 99 i32.sub - local.get $3 + local.get $0 select i32.const 100 i32.div_s i32.sub - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 399 i32.sub - local.get $3 + local.get $0 select i32.const 400 i32.div_s i32.add + local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 - i32.const 7 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s select + local.get $0 i32.add i32.const 3 i32.ne @@ -7682,65 +7682,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1467763199999 call $~lib/date/Date#constructor - local.tee $2 + local.tee $0 i32.store offset=8 - local.get $2 + local.get $0 i32.load - local.get $2 + local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 + local.set $1 + i32.const 7 i32.const 0 - i32.ge_s - local.set $3 - local.get $2 + local.get $0 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.sub - local.get $3 + local.get $1 + i32.const 0 + i32.ge_s + local.tee $0 select i32.const 4 i32.div_s - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 99 i32.sub - local.get $3 + local.get $0 select i32.const 100 i32.div_s i32.sub - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 399 i32.sub - local.get $3 + local.get $0 select i32.const 400 i32.div_s i32.add + local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 - i32.const 7 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s select + local.get $0 i32.add i32.const 2 i32.ne @@ -7755,65 +7755,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1467849599999 call $~lib/date/Date#constructor - local.tee $2 + local.tee $0 i32.store offset=12 - local.get $2 + local.get $0 i32.load - local.get $2 + local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 + local.set $1 + i32.const 7 i32.const 0 - i32.ge_s - local.set $3 - local.get $2 + local.get $0 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.sub - local.get $3 + local.get $1 + i32.const 0 + i32.ge_s + local.tee $0 select i32.const 4 i32.div_s - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 99 i32.sub - local.get $3 + local.get $0 select i32.const 100 i32.div_s i32.sub - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 399 i32.sub - local.get $3 + local.get $0 select i32.const 400 i32.div_s i32.add + local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 - i32.const 7 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s select + local.get $0 i32.add i32.const 3 i32.ne @@ -7828,65 +7828,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1467849600000 call $~lib/date/Date#constructor - local.tee $2 + local.tee $0 i32.store offset=16 - local.get $2 + local.get $0 i32.load - local.get $2 + local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 + local.set $1 + i32.const 7 i32.const 0 - i32.ge_s - local.set $3 - local.get $2 + local.get $0 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.sub - local.get $3 + local.get $1 + i32.const 0 + i32.ge_s + local.tee $0 select i32.const 4 i32.div_s - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 99 i32.sub - local.get $3 + local.get $0 select i32.const 100 i32.div_s i32.sub - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 399 i32.sub - local.get $3 + local.get $0 select i32.const 400 i32.div_s i32.add + local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 - i32.const 7 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s select + local.get $0 i32.add i32.const 4 i32.ne @@ -7901,65 +7901,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1468022400000 call $~lib/date/Date#constructor - local.tee $2 + local.tee $0 i32.store offset=20 - local.get $2 + local.get $0 i32.load - local.get $2 + local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 + local.set $1 + i32.const 7 i32.const 0 - i32.ge_s - local.set $3 - local.get $2 + local.get $0 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.sub - local.get $3 + local.get $1 + i32.const 0 + i32.ge_s + local.tee $0 select i32.const 4 i32.div_s - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 99 i32.sub - local.get $3 + local.get $0 select i32.const 100 i32.div_s i32.sub - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 399 i32.sub - local.get $3 + local.get $0 select i32.const 400 i32.div_s i32.add + local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 - i32.const 7 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s select + local.get $0 i32.add i32.const 6 i32.ne @@ -7974,65 +7974,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1468022399999 call $~lib/date/Date#constructor - local.tee $2 + local.tee $0 i32.store offset=24 - local.get $2 + local.get $0 i32.load - local.get $2 + local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 + local.set $1 + i32.const 7 i32.const 0 - i32.ge_s - local.set $3 - local.get $2 + local.get $0 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.sub - local.get $3 + local.get $1 + i32.const 0 + i32.ge_s + local.tee $0 select i32.const 4 i32.div_s - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 99 i32.sub - local.get $3 + local.get $0 select i32.const 100 i32.div_s i32.sub - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 399 i32.sub - local.get $3 + local.get $0 select i32.const 400 i32.div_s i32.add + local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 - i32.const 7 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s select + local.get $0 i32.add i32.const 5 i32.ne @@ -8047,65 +8047,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1468108799999 call $~lib/date/Date#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.load - local.get $2 + local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 - i32.const 0 - i32.ge_s - local.set $3 - local.get $2 + local.set $1 + i32.const 7 + i32.const 0 + local.get $0 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.sub - local.get $3 + local.get $1 + i32.const 0 + i32.ge_s + local.tee $0 select i32.const 4 i32.div_s - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 99 i32.sub - local.get $3 + local.get $0 select i32.const 100 i32.div_s i32.sub - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 399 i32.sub - local.get $3 + local.get $0 select i32.const 400 i32.div_s i32.add + local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 - i32.const 7 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s select + local.get $0 i32.add i32.const 6 i32.ne @@ -8120,65 +8120,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1468108800000 call $~lib/date/Date#constructor - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.load - local.get $2 + local.get $0 i32.load offset=4 - local.tee $4 + local.tee $3 i32.const 3 i32.lt_s i32.sub - local.tee $0 + local.set $1 + i32.const 7 i32.const 0 - i32.ge_s - local.set $3 - local.get $2 + local.get $0 i32.load offset=8 - local.get $4 + local.get $3 i32.const 1579 i32.add i32.load8_u - local.get $0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.sub - local.get $3 + local.get $1 + i32.const 0 + i32.ge_s + local.tee $0 select i32.const 4 i32.div_s - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 99 i32.sub - local.get $3 + local.get $0 select i32.const 100 i32.div_s i32.sub - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 399 i32.sub - local.get $3 + local.get $0 select i32.const 400 i32.div_s i32.add + local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 - i32.const 7 - i32.const 0 - local.get $0 i32.const 0 i32.lt_s select + local.get $0 i32.add if i32.const 0 @@ -8194,6 +8194,7 @@ local.tee $0 i32.store offset=4 local.get $0 + local.tee $1 i32.load offset=4 i32.const 4 i32.ne @@ -8205,10 +8206,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 10 call $~lib/date/Date#setUTCMonth - local.get $0 + local.get $1 i32.load offset=4 i32.const 11 i32.ne @@ -8220,10 +8221,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 call $~lib/date/Date#setUTCMonth - local.get $0 + local.get $1 i32.load offset=4 i32.const 3 i32.ne @@ -8235,7 +8236,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i64.load offset=16 i64.const 7899941177818720 i64.ne @@ -8247,13 +8248,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/date/Date#setUTCMonth - local.get $0 + local.get $1 i32.const 12 call $~lib/date/Date#setUTCMonth - local.get $0 + local.get $1 i64.load offset=16 i64.const 7899967616218720 i64.ne @@ -8265,10 +8266,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/date/Date#setUTCMonth - local.get $0 + local.get $1 i64.load offset=16 i64.const 7899967616218720 i64.ne @@ -8280,10 +8281,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 13 call $~lib/date/Date#setUTCMonth - local.get $0 + local.get $1 i64.load offset=16 i64.const 7900001830618720 i64.ne @@ -8800,10 +8801,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 6400 i32.store offset=28 - local.get $0 + local.get $1 i32.const 6400 call $~lib/date/Date.fromString local.tee $0 @@ -8821,10 +8822,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 6672 i32.store offset=28 - local.get $0 + local.get $1 i32.const 6672 call $~lib/date/Date.fromString local.tee $0 @@ -8842,10 +8843,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 6720 i32.store offset=28 - local.get $0 + local.get $1 i32.const 6720 call $~lib/date/Date.fromString local.tee $0 @@ -8863,10 +8864,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 6768 i32.store offset=28 - local.get $0 + local.get $1 i32.const 6768 call $~lib/date/Date.fromString local.tee $0 @@ -8884,10 +8885,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 6832 i32.store offset=28 - local.get $0 + local.get $1 i32.const 6832 call $~lib/date/Date.fromString local.tee $0 @@ -8905,10 +8906,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 6912 i32.store offset=28 - local.get $0 + local.get $1 i32.const 6912 call $~lib/date/Date.fromString local.tee $0 @@ -8926,10 +8927,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 6992 i32.store offset=28 - local.get $0 + local.get $1 i32.const 6992 call $~lib/date/Date.fromString local.tee $0 @@ -8947,10 +8948,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 7024 i32.store offset=28 - local.get $0 + local.get $1 i32.const 7024 call $~lib/date/Date.fromString local.tee $0 @@ -8968,10 +8969,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 7056 i32.store offset=28 - local.get $0 + local.get $1 i32.const 7056 call $~lib/date/Date.fromString local.tee $0 @@ -8989,10 +8990,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 7088 i32.store offset=28 - local.get $0 + local.get $1 i32.const 7088 call $~lib/date/Date.fromString local.tee $0 @@ -9010,10 +9011,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 6400 i32.store offset=28 - local.get $0 + local.get $1 i32.const 6400 call $~lib/date/Date.fromString local.tee $0 @@ -9031,10 +9032,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 7136 i32.store offset=28 - local.get $0 + local.get $1 i32.const 7136 call $~lib/date/Date.fromString local.tee $0 @@ -9052,10 +9053,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 6768 i32.store offset=28 - local.get $0 + local.get $1 i32.const 6768 call $~lib/date/Date.fromString local.tee $0 @@ -9080,7 +9081,7 @@ global.get $~lib/memory/__stack_pointer i64.const 8640000000000000 call $~lib/date/Date#constructor - local.tee $2 + local.tee $1 i32.store local.get $0 i64.load offset=16 @@ -9094,7 +9095,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i64.load offset=16 i64.const 8640000000000000 i64.ne @@ -9118,7 +9119,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load i32.const 275760 i32.ne @@ -9142,7 +9143,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=4 i32.const 9 i32.ne @@ -9166,7 +9167,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=8 i32.const 13 i32.ne @@ -9200,14 +9201,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store offset=28 - local.get $2 + local.get $1 i32.const 7280 i32.store offset=32 local.get $0 @@ -9225,7 +9226,7 @@ global.get $~lib/memory/__stack_pointer i64.const 8639999999999999 call $~lib/date/Date#constructor - local.tee $2 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer i64.const -8639999999999999 @@ -9268,17 +9269,17 @@ call $~lib/builtins/abort unreachable end + i64.const 86400000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $1 - i64.const 86400000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -9291,17 +9292,17 @@ call $~lib/builtins/abort unreachable end + i64.const 3600000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $1 - i64.const 3600000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -9314,17 +9315,17 @@ call $~lib/builtins/abort unreachable end + i64.const 60000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $1 - i64.const 60000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -9337,17 +9338,17 @@ call $~lib/builtins/abort unreachable end + i64.const 1000 + i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $1 - i64.const 1000 - i64.const 0 - local.get $1 + local.tee $2 i64.const 0 i64.lt_s select + local.get $2 i64.add i32.wrap_i64 i32.const 1 @@ -9360,17 +9361,17 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 call $~lib/date/Date#toISOString - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $3 - local.get $2 + local.get $1 i32.store offset=28 local.get $3 i32.const 7360 i32.store offset=32 - local.get $2 + local.get $1 i32.const 7360 call $~lib/string/String.__eq i32.eqz @@ -9386,10 +9387,10 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store offset=28 - local.get $2 + local.get $1 i32.const 7440 i32.store offset=32 local.get $0 @@ -9542,7 +9543,7 @@ local.get $1 i32.const 1 i32.shl - local.tee $1 + local.tee $3 i32.gt_u select i32.eqz @@ -9555,61 +9556,65 @@ return end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store local.get $2 - local.get $1 + local.get $3 local.get $6 i32.sub - local.tee $4 + local.tee $3 i32.lt_u if local.get $2 - local.get $4 + local.get $3 i32.const 2 i32.sub local.get $2 i32.div_u + local.tee $5 i32.mul - local.tee $1 local.set $7 + local.get $2 + local.get $5 + i32.mul + local.set $5 loop $while-continue|0 - local.get $1 + local.get $4 local.get $5 - i32.gt_u + i32.lt_u if - local.get $3 - local.get $5 + local.get $1 + local.get $4 i32.add i32.const 1872 local.get $2 call $~lib/memory/memory.copy local.get $2 - local.get $5 + local.get $4 i32.add - local.set $5 + local.set $4 br $while-continue|0 end end - local.get $3 + local.get $1 local.get $7 i32.add i32.const 1872 - local.get $4 + local.get $3 local.get $7 i32.sub call $~lib/memory/memory.copy else - local.get $3 + local.get $1 i32.const 1872 - local.get $4 + local.get $3 call $~lib/memory/memory.copy end + local.get $1 local.get $3 - local.get $4 i32.add local.get $0 local.get $6 @@ -9618,7 +9623,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index e0ae5df9e7..80075b8f08 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -130,6 +130,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -137,10 +138,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18404 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -154,7 +155,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -179,19 +180,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1760 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -200,7 +203,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1764 @@ -215,28 +218,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1499,7 +1502,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1527,11 +1530,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1550,9 +1553,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1568,7 +1571,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1583,18 +1586,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1605,7 +1608,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1619,13 +1622,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1638,89 +1644,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1728,7 +1734,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1815,26 +1821,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -1842,37 +1848,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $5 + local.get $8 i32.ne if - local.get $7 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load8_s - local.tee $8 + local.tee $4 i32.store8 local.get $2 - local.get $7 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $8 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -1882,24 +1888,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor local.get $1 i32.and @@ -1907,10 +1913,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $4 i32.load i32.store offset=8 - local.get $8 + local.get $4 local.get $2 i32.store local.get $2 @@ -1918,10 +1924,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 12 i32.add - local.set $7 + local.set $5 br $while-continue|0 end end @@ -1941,7 +1947,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -1954,52 +1960,54 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) @@ -2007,13 +2015,14 @@ else local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + drop + local.get $1 i32.const -2 i32.and local.set $0 @@ -2021,9 +2030,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1616 @@ -2746,16 +2754,237 @@ i32.store8 end ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.tee $2 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u + if + local.get $2 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $4 + local.get $1 + local.get $2 + i32.load offset=16 + local.tee $2 + local.get $1 + local.get $2 + i32.lt_u + select + local.set $5 + block $~lib/util/memory/memmove|inlined.0 + local.get $4 + local.tee $1 + local.get $0 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $1 + i32.sub + local.get $5 + i32.sub + i32.const 0 + local.get $5 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $1 + local.get $0 + local.get $5 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.gt_u + if + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $1 + i32.const 7 + i32.and + if + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $1 + local.get $0 + i64.load + i64.store + local.get $5 + i32.const 8 + i32.sub + local.set $5 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $5 + if + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + else + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $1 + local.get $5 + i32.add + i32.const 7 + i32.and + if + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $5 + i32.const 8 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $5 + if + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + local.get $4 + ) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) local.get $0 i32.load offset=8 - local.tee $8 + local.tee $4 local.get $2 i32.shr_u local.get $1 @@ -2774,9 +3003,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i32.load - local.set $4 local.get $1 i32.const 8 local.get $1 @@ -2786,272 +3012,53 @@ local.get $2 i32.shl local.set $1 - block $__inlined_func$~lib/rt/itcms/__renew (result i32) - local.get $3 - if (result i32) - local.get $8 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.lt_u - select - else - local.get $1 - end - local.tee $6 + local.get $0 + i32.load + local.tee $5 + local.get $3 + if local.get $4 + i32.const 1 + i32.shl + local.tee $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select local.tee $2 - i32.const 20 - i32.sub - local.tee $1 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $1 - local.get $6 - i32.store offset=16 - local.get $2 - br $__inlined_func$~lib/rt/itcms/__renew - end - local.get $6 - local.get $1 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $9 - local.set $3 - local.get $6 local.get $1 - i32.load offset=16 - local.tee $1 local.get $1 - local.get $6 - i32.gt_u + local.get $2 + i32.lt_u select - local.set $7 - block $~lib/util/memory/memmove|inlined.0 - local.get $3 - local.get $2 - local.tee $1 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $3 - i32.sub - local.get $7 - i32.sub - i32.const 0 - local.get $7 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $3 - local.get $1 - local.get $7 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $1 - local.get $3 - i32.gt_u - if - local.get $1 - i32.const 7 - i32.and - local.get $3 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $3 - i32.const 7 - i32.and - if - local.get $7 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $3 - local.tee $5 - i32.const 1 - i32.add - local.set $3 - local.get $1 - local.tee $4 - i32.const 1 - i32.add - local.set $1 - local.get $5 - local.get $4 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $7 - i32.const 8 - i32.ge_u - if - local.get $3 - local.get $1 - i64.load - i64.store - local.get $7 - i32.const 8 - i32.sub - local.set $7 - local.get $3 - i32.const 8 - i32.add - local.set $3 - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $7 - if - local.get $3 - local.tee $5 - i32.const 1 - i32.add - local.set $3 - local.get $1 - local.tee $4 - i32.const 1 - i32.add - local.set $1 - local.get $5 - local.get $4 - i32.load8_u - i32.store8 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $while-continue|2 - end - end - else - local.get $1 - i32.const 7 - i32.and - local.get $3 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $3 - local.get $7 - i32.add - i32.const 7 - i32.and - if - local.get $7 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $3 - local.get $7 - i32.const 1 - i32.sub - local.tee $7 - i32.add - local.get $1 - local.get $7 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $7 - i32.const 8 - i32.ge_u - if - local.get $3 - local.get $7 - i32.const 8 - i32.sub - local.tee $7 - i32.add - local.get $1 - local.get $7 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $7 - if - local.get $3 - local.get $7 - i32.const 1 - i32.sub - local.tee $7 - i32.add - local.get $1 - local.get $7 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - local.get $9 + local.set $1 end - local.tee $1 - local.get $8 + local.get $1 + call $~lib/rt/itcms/__renew + local.tee $2 + local.get $4 i32.add - local.get $6 - local.get $8 + local.get $1 + local.get $4 i32.sub call $~lib/memory/memory.fill - local.get $1 local.get $2 + local.get $5 i32.ne if local.get $0 - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 call $~lib/rt/itcms/__link end local.get $0 - local.get $6 + local.get $1 i32.store offset=8 end ) @@ -3176,26 +3183,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3203,37 +3210,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $5 + local.get $8 i32.ne if - local.get $7 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load - local.tee $8 + local.tee $4 i32.store local.get $2 - local.get $7 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $8 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3242,24 +3249,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor local.get $1 i32.and @@ -3267,10 +3274,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $4 i32.load i32.store offset=8 - local.get $8 + local.get $4 local.get $2 i32.store local.get $2 @@ -3278,10 +3285,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 12 i32.add - local.set $7 + local.set $5 br $while-continue|0 end end @@ -3301,7 +3308,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -3315,50 +3322,51 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -3375,6 +3383,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -3383,9 +3392,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -3490,85 +3498,86 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store - local.get $4 + local.get $0 i64.const 0 i64.store offset=8 - local.get $4 + local.get $0 i32.const 0 i32.store offset=16 - local.get $4 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $15 i32.store - local.get $5 - local.get $0 + local.get $4 + local.get $15 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 i32.const 3 i32.store offset=4 - local.get $5 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $15 i32.store offset=8 - local.get $5 - local.get $0 + local.get $4 + local.get $15 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 i32.const 4 i32.store offset=12 - local.get $5 + local.get $4 i32.const 0 i32.store offset=16 - local.get $5 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 local.get $4 - local.get $5 + local.tee $7 i32.store loop $for-loop|1 - local.get $2 + local.get $16 i32.extend8_s i32.const 100 i32.lt_s if - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $2 + local.get $16 i32.extend8_s i32.const -1028477379 i32.mul @@ -3578,62 +3587,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $0 i32.load8_u - local.get $2 + local.get $16 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 if i32.const 0 i32.const 1568 @@ -3642,19 +3651,19 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 - local.get $2 + local.get $7 + local.get $16 + local.get $16 i32.extend8_s - local.tee $4 + local.tee $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3663,62 +3672,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $0 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $4 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $0 i32.load8_u - local.get $2 + local.get $16 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $0 br $while-continue|02 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 i32.eqz if i32.const 0 @@ -3728,10 +3737,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $7 + local.get $16 call $~lib/map/Map#get - local.get $2 + local.get $16 i32.extend8_s i32.const 10 i32.add @@ -3744,14 +3753,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $16 i32.const 1 i32.add - local.set $2 + local.set $16 br $for-loop|1 end end - local.get $5 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -3764,18 +3773,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $16 loop $for-loop|3 - local.get $2 + local.get $16 i32.extend8_s i32.const 100 i32.lt_s if - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $2 + local.get $16 i32.extend8_s i32.const -1028477379 i32.mul @@ -3785,62 +3794,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $0 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $4 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $0 i32.load8_u - local.get $2 + local.get $16 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $0 br $while-continue|05 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 i32.eqz if i32.const 0 @@ -3850,10 +3859,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $7 + local.get $16 call $~lib/map/Map#get - local.get $2 + local.get $16 i32.extend8_s i32.const 10 i32.add @@ -3866,19 +3875,19 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 - local.get $2 + local.get $7 + local.get $16 + local.get $16 i32.extend8_s - local.tee $4 + local.tee $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3887,62 +3896,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $0 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $4 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $0 i32.load8_u - local.get $2 + local.get $16 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $0 br $while-continue|08 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 i32.eqz if i32.const 0 @@ -3952,10 +3961,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $7 + local.get $16 call $~lib/map/Map#get - local.get $2 + local.get $16 i32.extend8_s i32.const 20 i32.add @@ -3968,14 +3977,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $16 i32.const 1 i32.add - local.set $2 + local.set $16 br $for-loop|3 end end - local.get $5 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -3988,60 +3997,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $16 i32.const 0 i32.store - local.get $5 + local.get $7 i32.load offset=8 - local.set $11 - local.get $5 + local.set $15 + local.get $7 i32.load offset=16 - local.tee $12 - local.set $4 - local.get $3 + local.tee $4 + local.set $14 + local.get $16 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $0 i32.const 0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.store offset=12 - local.get $4 + local.get $14 i32.const 1073741820 i32.gt_u if @@ -4053,94 +4062,94 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $14 i32.const 8 - local.get $4 + local.get $14 i32.const 8 i32.gt_u select - local.tee $8 + local.tee $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $13 i32.store offset=4 - local.get $0 - local.get $8 + local.get $13 + local.get $6 call $~lib/memory/memory.fill - local.get $2 local.get $0 + local.get $13 i32.store - local.get $2 local.get $0 + local.get $13 call $~lib/rt/itcms/__link - local.get $2 local.get $0 + local.get $13 i32.store offset=4 - local.get $2 - local.get $8 + local.get $0 + local.get $6 i32.store offset=8 - local.get $2 - local.get $4 + local.get $0 + local.get $14 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $2 + local.get $16 + local.get $0 i32.store loop $for-loop|0 - local.get $7 - local.get $12 + local.get $2 + local.get $4 i32.lt_s if - local.get $7 + local.get $2 i32.const 12 i32.mul - local.get $11 + local.get $15 i32.add - local.tee $4 + local.tee $16 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $1 - local.get $4 + local.get $0 + local.get $3 + local.get $16 i32.load8_s call $~lib/array/Array#__set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $0 + local.get $3 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 - local.get $1 + local.get $0 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.tee $1 + local.get $0 + local.tee $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 call $~lib/map/Map#values - local.tee $13 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4150,65 +4159,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 0 i32.store - local.get $4 + local.get $0 i32.const 24 i32.const 6 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $16 i32.store - local.get $4 + local.get $16 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $4 + local.get $16 local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $16 i32.const 3 i32.store offset=4 - local.get $4 + local.get $16 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $4 + local.get $16 local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $16 i32.const 4 i32.store offset=12 - local.get $4 + local.get $16 i32.const 0 i32.store offset=16 - local.get $4 + local.get $16 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $16 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $10 i32.store offset=16 loop $for-loop|4 - local.get $1 - i32.load offset=12 local.get $6 + i32.load offset=12 + local.get $1 i32.gt_s if local.get $1 - i32.load offset=12 + local.tee $4 local.get $6 - i32.le_u + i32.load offset=12 + i32.ge_u if i32.const 1248 i32.const 1728 @@ -4217,21 +4227,22 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $6 - local.get $1 i32.load offset=4 i32.add i32.load8_s - local.set $2 - local.get $13 - local.get $6 + local.set $5 + local.get $8 + local.get $4 call $~lib/array/Array#__get - local.set $12 - local.get $5 + local.set $9 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $2 + local.get $5 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4241,62 +4252,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $3 + local.tee $15 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load8_u - local.get $2 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $3 + local.get $15 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|011 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -4306,14 +4317,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $12 + local.get $9 i32.const 20 i32.sub - local.tee $3 + local.tee $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -4323,62 +4334,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $8 + local.tee $15 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load8_u - local.get $3 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $8 + local.get $15 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -4395,14 +4406,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $16 i32.load - local.get $2 - local.tee $0 + local.get $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4412,47 +4422,47 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $7 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $7 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $7 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $7 i32.xor - local.tee $14 - local.get $4 + local.tee $5 + local.get $16 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $7 + local.get $1 if - local.get $7 + local.get $1 i32.load offset=4 - local.tee $8 + local.tee $15 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $7 + local.get $1 i32.load8_u local.get $0 i32.const 255 @@ -4460,31 +4470,31 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $8 + local.get $15 i32.const -2 i32.and - local.set $7 + local.set $1 br $while-continue|015 end end i32.const 0 - local.set $7 + local.set $1 end - local.get $7 + local.get $1 if - local.get $7 - local.get $2 + local.get $1 + local.get $0 i32.store8 offset=1 else - local.get $4 + local.get $16 i32.load offset=16 - local.get $4 + local.get $16 i32.load offset=12 i32.eq if - local.get $4 + local.get $16 i32.load offset=20 - local.get $4 + local.get $16 i32.load offset=12 i32.const 3 i32.mul @@ -4492,17 +4502,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $16 i32.load offset=4 else - local.get $4 + local.get $16 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $7 + local.set $15 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4510,66 +4520,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - local.get $7 + local.get $1 + local.get $15 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $14 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store offset=4 - local.get $4 + local.get $16 i32.load offset=8 - local.tee $8 - local.get $4 + local.tee $12 + local.get $16 i32.load offset=16 i32.const 3 i32.shl - i32.add - local.set $16 - local.get $3 - local.set $0 + i32.add + local.set $13 + local.get $1 + local.set $2 loop $while-continue|016 - local.get $8 - local.get $16 + local.get $12 + local.get $13 i32.ne if - local.get $8 + local.get $12 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $0 - local.get $8 + local.get $2 + local.get $12 i32.load8_s - local.tee $9 + local.tee $3 i32.store8 - local.get $0 - local.get $8 + local.get $2 + local.get $12 i32.load8_s offset=1 i32.store8 offset=1 - local.get $0 - local.get $9 + local.get $2 + local.get $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -4579,69 +4589,69 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $9 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $9 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $9 i32.xor - local.get $7 + local.get $15 i32.and i32.const 2 i32.shl - local.get $10 + local.get $11 i32.add - local.tee $9 + local.tee $3 i32.load i32.store offset=4 - local.get $9 - local.get $0 + local.get $3 + local.get $2 i32.store - local.get $0 + local.get $2 i32.const 8 i32.add - local.set $0 + local.set $2 end - local.get $8 + local.get $12 i32.const 8 i32.add - local.set $8 + local.set $12 br $while-continue|016 end end - local.get $4 - local.get $10 + local.get $16 + local.get $11 i32.store - local.get $4 - local.get $10 + local.get $16 + local.get $11 call $~lib/rt/itcms/__link - local.get $4 - local.get $7 + local.get $16 + local.get $15 i32.store offset=4 - local.get $4 - local.get $3 + local.get $16 + local.get $1 i32.store offset=8 - local.get $4 - local.get $3 + local.get $16 + local.get $1 call $~lib/rt/itcms/__link - local.get $4 - local.get $15 + local.get $16 + local.get $14 i32.store offset=12 - local.get $4 - local.get $4 + local.get $16 + local.get $16 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4650,70 +4660,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $16 i32.load offset=8 - local.tee $0 + local.tee $15 i32.store - local.get $4 - local.get $4 + local.get $16 + local.get $16 i32.load offset=16 - local.tee $7 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $7 + local.get $1 i32.const 3 i32.shl - local.get $0 + local.get $15 i32.add - local.tee $0 - local.get $2 + local.tee $15 + local.get $0 i32.store8 + local.get $15 local.get $0 - local.get $2 i32.store8 offset=1 - local.get $4 - local.get $4 + local.get $16 + local.get $16 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $4 + local.get $15 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $14 + local.get $5 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=4 - local.get $2 - local.get $0 + local.get $1 + local.get $15 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 - local.get $12 + local.get $10 + local.get $9 i32.const 20 i32.sub - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 call $~lib/map/Map#set - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 + local.set $1 br $for-loop|4 end end - local.get $4 + local.get $16 i32.load offset=20 i32.const 100 i32.ne @@ -4725,7 +4735,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -4738,18 +4748,19 @@ unreachable end i32.const 0 - local.set $6 + local.set $1 loop $for-loop|6 - local.get $6 + local.get $1 i32.extend8_s i32.const 50 i32.lt_s if - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $6 + local.get $1 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4759,62 +4770,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $6 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $0 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|019 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -4824,10 +4835,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $7 + local.get $0 call $~lib/map/Map#get - local.get $6 + local.get $0 i32.extend8_s i32.const 20 i32.add @@ -4840,14 +4851,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $7 + local.get $0 call $~lib/map/Map#delete - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $6 + local.get $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4857,62 +4868,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $6 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $0 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|022 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -4921,14 +4932,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $1 br $for-loop|6 end end - local.get $5 + local.get $7 i32.load offset=20 i32.const 50 i32.ne @@ -4941,18 +4952,19 @@ unreachable end i32.const 0 - local.set $6 + local.set $1 loop $for-loop|8 - local.get $6 + local.get $1 i32.extend8_s i32.const 50 i32.lt_s if - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $6 + local.get $1 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4962,62 +4974,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $6 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $0 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|025 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -5026,19 +5038,19 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 - local.get $6 + local.get $7 + local.get $0 + local.get $0 i32.extend8_s - local.tee $2 + local.tee $1 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5047,62 +5059,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $6 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $0 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|028 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -5112,14 +5124,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $7 + local.get $0 call $~lib/map/Map#delete - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $6 + local.get $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -5129,62 +5141,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load8_u - local.get $6 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|031 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -5193,14 +5205,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $1 br $for-loop|8 end end - local.get $5 + local.get $7 i32.load offset=20 i32.const 50 i32.ne @@ -5212,9 +5224,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $7 call $~lib/map/Map#clear - local.get $5 + local.get $7 i32.load offset=20 if i32.const 0 @@ -5261,26 +5273,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -5288,37 +5300,39 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $5 + local.get $8 i32.ne if - local.get $7 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load8_u - local.tee $8 + local.tee $4 i32.store8 local.get $2 - local.get $7 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $8 + local.get $4 + i32.const 255 + i32.and i32.const -1028477379 i32.mul i32.const 374761394 @@ -5327,24 +5341,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor local.get $1 i32.and @@ -5352,10 +5366,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $4 i32.load i32.store offset=8 - local.get $8 + local.get $4 local.get $2 i32.store local.get $2 @@ -5363,10 +5377,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 12 i32.add - local.set $7 + local.set $5 br $while-continue|0 end end @@ -5386,7 +5400,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -5399,53 +5413,55 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) @@ -5453,13 +5469,14 @@ else local.get $0 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + drop + local.get $1 i32.const -2 i32.and local.set $0 @@ -5467,9 +5484,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1616 @@ -5485,51 +5501,52 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -5546,6 +5563,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -5554,9 +5572,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -5626,15 +5643,16 @@ (local $14 i32) (local $15 i32) (local $16 i32) + (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $4 i64.const 0 @@ -5652,43 +5670,43 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $1 i32.const 24 i32.const 8 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store - local.get $5 + local.get $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $7 i32.store - local.get $5 - local.get $0 + local.get $1 + local.get $7 call $~lib/rt/itcms/__link - local.get $5 + local.get $1 i32.const 3 i32.store offset=4 - local.get $5 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $7 i32.store offset=8 - local.get $5 - local.get $0 + local.get $1 + local.get $7 call $~lib/rt/itcms/__link - local.get $5 + local.get $1 i32.const 4 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -5696,7 +5714,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 - local.get $5 + local.get $1 i32.store loop $for-loop|1 local.get $2 @@ -5705,77 +5723,82 @@ i32.const 100 i32.lt_u if - local.get $5 - i32.load - local.get $5 - i32.load offset=4 + local.get $1 + local.set $5 local.get $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $7 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|0 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 + local.get $5 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $5 i32.load8_u - local.get $2 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + drop + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $5 br $while-continue|0 end end i32.const 0 - local.set $4 end - local.get $4 if i32.const 0 i32.const 1568 @@ -5784,84 +5807,92 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 local.get $2 local.get $2 i32.const 255 i32.and - local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $5 + local.get $2 local.set $4 - block $__inlined_func$~lib/map/Map#find1 + block $__inlined_func$~lib/map/Map#find1 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $7 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|02 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 + local.get $5 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $5 i32.load8_u - local.get $2 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + drop + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $5 br $while-continue|02 end end i32.const 0 - local.set $4 end - local.get $4 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5871,7 +5902,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 local.get $2 call $~lib/map/Map#get local.get $2 @@ -5895,7 +5926,7 @@ br $for-loop|1 end end - local.get $5 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -5916,77 +5947,84 @@ i32.const 100 i32.lt_u if - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $5 + local.get $2 local.set $4 - block $__inlined_func$~lib/map/Map#find4 + block $__inlined_func$~lib/map/Map#find4 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $7 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|05 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 + local.get $5 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $5 i32.load8_u - local.get $2 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $3 + drop + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $5 br $while-continue|05 end end i32.const 0 - local.set $4 end - local.get $4 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5996,7 +6034,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 local.get $2 call $~lib/map/Map#get local.get $2 @@ -6013,84 +6051,92 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 local.get $2 local.get $2 i32.const 255 i32.and - local.tee $4 i32.const 20 i32.add call $~lib/map/Map#set - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $5 + local.get $2 local.set $4 - block $__inlined_func$~lib/map/Map#find7 + block $__inlined_func$~lib/map/Map#find7 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $7 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|08 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 + local.get $5 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $5 i32.load8_u - local.get $2 + local.get $7 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $3 + drop + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $5 br $while-continue|08 end end i32.const 0 - local.set $4 end - local.get $4 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -6100,7 +6146,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 local.get $2 call $~lib/map/Map#get local.get $2 @@ -6124,7 +6170,7 @@ br $for-loop|3 end end - local.get $5 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -6137,60 +6183,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store - local.get $5 + local.get $1 i32.load offset=8 - local.set $11 - local.get $5 + local.set $14 + local.get $1 i32.load offset=16 - local.tee $12 - local.set $4 - local.get $3 + local.tee $13 + local.set $7 + local.get $4 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 i32.const 16 i32.const 9 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $4 i32.const 0 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=8 - local.get $2 + local.get $4 i32.const 0 i32.store offset=12 - local.get $4 + local.get $7 i32.const 1073741820 i32.gt_u if @@ -6202,94 +6249,94 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.const 8 - local.get $4 + local.get $7 i32.const 8 i32.gt_u select - local.tee $8 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $17 i32.store offset=4 - local.get $0 - local.get $8 + local.get $17 + local.get $5 call $~lib/memory/memory.fill - local.get $2 - local.get $0 + local.get $4 + local.get $17 i32.store - local.get $2 - local.get $0 + local.get $4 + local.get $17 call $~lib/rt/itcms/__link - local.get $2 - local.get $0 + local.get $4 + local.get $17 i32.store offset=4 - local.get $2 - local.get $8 + local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $2 + local.get $4 i32.store loop $for-loop|0 - local.get $7 - local.get $12 + local.get $6 + local.get $13 i32.lt_s if - local.get $7 + local.get $6 i32.const 12 i32.mul - local.get $11 + local.get $14 i32.add - local.tee $4 + local.tee $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $1 local.get $4 + local.get $3 + local.get $2 i32.load8_u call $~lib/array/Array#__set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $4 + local.get $3 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 - local.get $1 + local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.tee $1 + local.get $4 + local.tee $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 call $~lib/map/Map#values - local.tee $13 + local.tee $11 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6299,7 +6346,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $4 i32.const 0 @@ -6313,10 +6360,10 @@ local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $17 i32.store local.get $4 - local.get $0 + local.get $17 call $~lib/rt/itcms/__link local.get $4 i32.const 3 @@ -6324,10 +6371,10 @@ local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $17 i32.store offset=8 local.get $4 - local.get $0 + local.get $17 call $~lib/rt/itcms/__link local.get $4 i32.const 4 @@ -6346,18 +6393,19 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $13 i32.store offset=16 loop $for-loop|4 - local.get $1 + local.get $7 i32.load offset=12 - local.get $6 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 + local.tee $6 + local.get $7 i32.load offset=12 - local.get $6 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -6367,84 +6415,93 @@ unreachable end local.get $6 - local.get $1 + local.get $7 i32.load offset=4 i32.add i32.load8_u local.set $2 - local.get $13 + local.get $11 local.get $6 call $~lib/array/Array#__get local.set $12 - local.get $5 - i32.load - local.get $5 - i32.load offset=4 + local.get $1 + local.set $3 local.get $2 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load local.set $0 - block $__inlined_func$~lib/map/Map#find10 + block $__inlined_func$~lib/map/Map#find10 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $0 + local.tee $5 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|011 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u - local.get $2 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $3 + drop + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $0 end - local.get $0 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -6454,56 +6511,61 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.load - local.get $5 - i32.load offset=4 + local.get $1 + local.set $0 local.get $12 i32.const 20 i32.sub - local.tee $3 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find13 + local.set $3 + block $__inlined_func$~lib/map/Map#find13 (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $3 + local.tee $5 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|014 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 - local.tee $8 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -6511,13 +6573,14 @@ else local.get $0 i32.load8_u - local.get $3 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $8 + drop + local.get $3 i32.const -2 i32.and local.set $0 @@ -6525,9 +6588,9 @@ end end i32.const 0 - local.set $0 end - local.get $0 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -6537,6 +6600,7 @@ call $~lib/builtins/abort unreachable end + local.get $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6544,14 +6608,14 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.set $5 local.get $4 i32.load local.get $2 - local.tee $0 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6560,26 +6624,26 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $7 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $7 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $7 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $7 i32.xor - local.tee $14 + local.tee $10 local.get $4 i32.load offset=4 i32.and @@ -6587,41 +6651,41 @@ i32.shl i32.add i32.load - local.set $7 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $7 + local.get $0 if - local.get $7 + local.get $0 i32.load offset=4 - local.tee $8 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $7 - i32.load8_u local.get $0 + i32.load8_u + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $8 + local.get $3 i32.const -2 i32.and - local.set $7 + local.set $0 br $while-continue|015 end end i32.const 0 - local.set $7 + local.set $0 end - local.get $7 + local.get $0 if - local.get $7 - local.get $2 + local.get $0 + local.get $5 i32.store8 offset=1 else local.get $4 @@ -6650,7 +6714,7 @@ i32.const 1 i32.or end - local.set $7 + local.set $17 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6658,20 +6722,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $7 + local.get $17 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $14 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -6679,7 +6743,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $9 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -6687,37 +6751,37 @@ i32.store offset=4 local.get $4 i32.load offset=8 - local.tee $8 + local.tee $15 local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $16 + local.set $8 local.get $3 local.set $0 - loop $while-continue|016 + loop $while-continue|00 local.get $8 - local.get $16 + local.get $15 i32.ne if - local.get $8 + local.get $15 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $8 + local.get $15 i32.load8_u - local.tee $9 + local.tee $16 i32.store8 local.get $0 - local.get $8 + local.get $15 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $9 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6726,35 +6790,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $9 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $9 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u - local.get $9 i32.xor - local.get $7 + local.get $17 i32.and i32.const 2 i32.shl - local.get $10 + local.get $14 i32.add - local.tee $9 + local.tee $16 i32.load i32.store offset=4 - local.get $9 + local.get $16 local.get $0 i32.store local.get $0 @@ -6762,21 +6826,21 @@ i32.add local.set $0 end - local.get $8 + local.get $15 i32.const 8 i32.add - local.set $8 - br $while-continue|016 + local.set $15 + br $while-continue|00 end end local.get $4 - local.get $10 + local.get $14 i32.store local.get $4 - local.get $10 + local.get $14 call $~lib/rt/itcms/__link local.get $4 - local.get $7 + local.get $17 i32.store offset=4 local.get $4 local.get $3 @@ -6785,7 +6849,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $4 - local.get $15 + local.get $9 i32.store offset=12 local.get $4 local.get $4 @@ -6804,11 +6868,11 @@ local.get $4 local.get $4 i32.load offset=16 - local.tee $7 + local.tee $17 i32.const 1 i32.add i32.store offset=16 - local.get $7 + local.get $17 i32.const 3 i32.shl local.get $0 @@ -6817,7 +6881,7 @@ local.get $2 i32.store8 local.get $0 - local.get $2 + local.get $5 i32.store8 offset=1 local.get $4 local.get $4 @@ -6830,7 +6894,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $14 + local.get $10 i32.and i32.const 2 i32.shl @@ -6846,17 +6910,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $13 local.get $12 i32.const 20 i32.sub - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 call $~lib/map/Map#set local.get $6 i32.const 1 i32.add - local.set $6 + local.set $0 br $for-loop|4 end end @@ -6872,7 +6936,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $13 i32.load offset=20 i32.const 100 i32.ne @@ -6885,85 +6949,92 @@ unreachable end i32.const 0 - local.set $6 + local.set $0 loop $for-loop|6 - local.get $6 + local.get $0 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $6 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $3 + local.get $0 local.set $2 - block $__inlined_func$~lib/map/Map#find18 - loop $while-continue|019 - local.get $2 + block $__inlined_func$~lib/map/Map#find17 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|018 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u - local.get $6 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find18 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find17 + drop + local.get $2 i32.const -2 i32.and - local.set $2 - br $while-continue|019 + local.set $3 + br $while-continue|018 end end i32.const 0 - local.set $2 end - local.get $2 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -6973,10 +7044,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $1 + local.get $0 call $~lib/map/Map#get - local.get $6 + local.get $0 i32.const 255 i32.and i32.const 20 @@ -6990,80 +7061,85 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $1 + local.get $0 call $~lib/map/Map#delete - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $6 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $3 + local.get $0 local.set $2 - block $__inlined_func$~lib/map/Map#find21 - loop $while-continue|022 - local.get $2 + block $__inlined_func$~lib/map/Map#find20 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|021 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u - local.get $6 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find21 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find20 + drop + local.get $2 i32.const -2 i32.and - local.set $2 - br $while-continue|022 + local.set $3 + br $while-continue|021 end end i32.const 0 - local.set $2 end - local.get $2 if i32.const 0 i32.const 1568 @@ -7072,14 +7148,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $0 br $for-loop|6 end end - local.get $5 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -7092,85 +7168,90 @@ unreachable end i32.const 0 - local.set $6 + local.set $0 loop $for-loop|8 - local.get $6 + local.get $0 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $6 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $3 + local.get $0 local.set $2 - block $__inlined_func$~lib/map/Map#find24 - loop $while-continue|025 - local.get $2 + block $__inlined_func$~lib/map/Map#find23 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|024 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u - local.get $6 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find24 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find23 + drop + local.get $2 i32.const -2 i32.and - local.set $2 - br $while-continue|025 + local.set $3 + br $while-continue|024 end end i32.const 0 - local.set $2 end - local.get $2 if i32.const 0 i32.const 1568 @@ -7179,84 +7260,92 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 - local.get $6 + local.get $1 + local.get $0 + local.get $0 i32.const 255 i32.and - local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $2 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $3 + local.get $0 local.set $2 - block $__inlined_func$~lib/map/Map#find27 - loop $while-continue|028 - local.get $2 + block $__inlined_func$~lib/map/Map#find26 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|027 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u - local.get $6 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find27 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find26 + drop + local.get $2 i32.const -2 i32.and - local.set $2 - br $while-continue|028 + local.set $3 + br $while-continue|027 end end i32.const 0 - local.set $2 end - local.get $2 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -7266,80 +7355,85 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $1 + local.get $0 call $~lib/map/Map#delete - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $6 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $3 + local.get $0 local.set $2 - block $__inlined_func$~lib/map/Map#find30 - loop $while-continue|031 - local.get $2 + block $__inlined_func$~lib/map/Map#find29 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|030 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u - local.get $6 + local.get $4 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find29 + drop + local.get $2 i32.const -2 i32.and - local.set $2 - br $while-continue|031 + local.set $3 + br $while-continue|030 end end i32.const 0 - local.set $2 end - local.get $2 if i32.const 0 i32.const 1568 @@ -7348,14 +7442,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $0 br $for-loop|8 end end - local.get $5 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -7367,9 +7461,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 call $~lib/map/Map#clear - local.get $5 + local.get $1 i32.load offset=20 if i32.const 0 @@ -7416,26 +7510,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7443,37 +7537,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $5 + local.get $8 i32.ne if - local.get $7 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load16_s - local.tee $8 + local.tee $4 i32.store16 local.get $2 - local.get $7 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $8 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7483,24 +7577,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor local.get $1 i32.and @@ -7508,10 +7602,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $4 i32.load i32.store offset=8 - local.get $8 + local.get $4 local.get $2 i32.store local.get $2 @@ -7519,10 +7613,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 12 i32.add - local.set $7 + local.set $5 br $while-continue|0 end end @@ -7542,7 +7636,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -7555,52 +7649,54 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) @@ -7608,13 +7704,14 @@ else local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + drop + local.get $1 i32.const -2 i32.and local.set $0 @@ -7622,9 +7719,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1616 @@ -7679,50 +7775,51 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -7739,6 +7836,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -7747,9 +7845,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -7823,85 +7920,86 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store - local.get $4 + local.get $0 i64.const 0 i64.store offset=8 - local.get $4 + local.get $0 i32.const 0 i32.store offset=16 - local.get $4 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $4 i32.store - local.get $5 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $15 i32.store - local.get $5 - local.get $0 + local.get $4 + local.get $15 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 i32.const 3 i32.store offset=4 - local.get $5 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $15 i32.store offset=8 - local.get $5 - local.get $0 + local.get $4 + local.get $15 call $~lib/rt/itcms/__link - local.get $5 + local.get $4 i32.const 4 i32.store offset=12 - local.get $5 + local.get $4 i32.const 0 i32.store offset=16 - local.get $5 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 local.get $4 - local.get $5 + local.tee $7 i32.store loop $for-loop|1 - local.get $2 + local.get $16 i32.extend16_s i32.const 100 i32.lt_s if - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $2 + local.get $16 i32.extend16_s i32.const -1028477379 i32.mul @@ -7911,62 +8009,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $0 i32.load16_u - local.get $2 + local.get $16 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 if i32.const 0 i32.const 1568 @@ -7975,19 +8073,19 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 - local.get $2 + local.get $7 + local.get $16 + local.get $16 i32.extend16_s - local.tee $4 + local.tee $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761395 @@ -7996,62 +8094,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $0 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $4 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $0 i32.load16_u - local.get $2 + local.get $16 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $0 br $while-continue|02 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 i32.eqz if i32.const 0 @@ -8061,10 +8159,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $7 + local.get $16 call $~lib/map/Map#get - local.get $2 + local.get $16 i32.extend16_s i32.const 10 i32.add @@ -8077,14 +8175,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $16 i32.const 1 i32.add - local.set $2 + local.set $16 br $for-loop|1 end end - local.get $5 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -8097,18 +8195,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $16 loop $for-loop|3 - local.get $2 + local.get $16 i32.extend16_s i32.const 100 i32.lt_s if - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $2 + local.get $16 i32.extend16_s i32.const -1028477379 i32.mul @@ -8118,62 +8216,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $0 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $4 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $0 i32.load16_u - local.get $2 + local.get $16 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $0 br $while-continue|05 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 i32.eqz if i32.const 0 @@ -8183,10 +8281,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $7 + local.get $16 call $~lib/map/Map#get - local.get $2 + local.get $16 i32.extend16_s i32.const 10 i32.add @@ -8199,19 +8297,19 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 - local.get $2 + local.get $7 + local.get $16 + local.get $16 i32.extend16_s - local.tee $4 + local.tee $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $4 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8220,62 +8318,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $0 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $4 + local.get $0 if - local.get $4 + local.get $0 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $0 i32.load16_u - local.get $2 + local.get $16 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $3 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $0 br $while-continue|08 end end i32.const 0 - local.set $4 + local.set $0 end - local.get $4 + local.get $0 i32.eqz if i32.const 0 @@ -8285,10 +8383,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $2 + local.get $7 + local.get $16 call $~lib/map/Map#get - local.get $2 + local.get $16 i32.extend16_s i32.const 20 i32.add @@ -8301,14 +8399,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $16 i32.const 1 i32.add - local.set $2 + local.set $16 br $for-loop|3 end end - local.get $5 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -8321,60 +8419,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $16 i32.const 0 i32.store - local.get $5 + local.get $7 i32.load offset=8 - local.set $11 - local.get $5 + local.set $15 + local.get $7 i32.load offset=16 - local.tee $12 - local.set $4 - local.get $3 + local.tee $4 + local.set $14 + local.get $16 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $0 i32.const 0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 - local.get $2 + local.get $0 i32.const 0 i32.store offset=12 - local.get $4 + local.get $14 i32.const 536870910 i32.gt_u if @@ -8386,96 +8484,96 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $14 i32.const 8 - local.get $4 + local.get $14 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $8 + local.tee $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $13 i32.store offset=4 - local.get $0 - local.get $8 + local.get $13 + local.get $6 call $~lib/memory/memory.fill - local.get $2 local.get $0 + local.get $13 i32.store - local.get $2 local.get $0 + local.get $13 call $~lib/rt/itcms/__link - local.get $2 local.get $0 + local.get $13 i32.store offset=4 - local.get $2 - local.get $8 + local.get $0 + local.get $6 i32.store offset=8 - local.get $2 - local.get $4 + local.get $0 + local.get $14 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $2 + local.get $16 + local.get $0 i32.store loop $for-loop|0 - local.get $7 - local.get $12 + local.get $2 + local.get $4 i32.lt_s if - local.get $7 + local.get $2 i32.const 12 i32.mul - local.get $11 + local.get $15 i32.add - local.tee $4 + local.tee $16 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $1 - local.get $4 + local.get $0 + local.get $3 + local.get $16 i32.load16_s call $~lib/array/Array#__set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 end - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 + local.set $2 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $0 + local.get $3 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 - local.get $1 + local.get $0 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.tee $1 + local.get $0 + local.tee $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 call $~lib/map/Map#values - local.tee $13 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8485,65 +8583,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i32.const 0 i32.store - local.get $4 + local.get $0 i32.const 24 i32.const 13 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $16 i32.store - local.get $4 + local.get $16 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $4 + local.get $16 local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $16 i32.const 3 i32.store offset=4 - local.get $4 + local.get $16 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $4 + local.get $16 local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $16 i32.const 4 i32.store offset=12 - local.get $4 + local.get $16 i32.const 0 i32.store offset=16 - local.get $4 + local.get $16 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $16 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $10 i32.store offset=16 loop $for-loop|4 - local.get $1 - i32.load offset=12 local.get $6 + i32.load offset=12 + local.get $1 i32.gt_s if local.get $1 - i32.load offset=12 + local.tee $4 local.get $6 - i32.le_u + i32.load offset=12 + i32.ge_u if i32.const 1248 i32.const 1728 @@ -8552,23 +8651,24 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=4 local.get $6 + i32.load offset=4 + local.get $4 i32.const 1 i32.shl i32.add i32.load16_s - local.set $2 - local.get $13 - local.get $6 + local.set $5 + local.get $8 + local.get $4 call $~lib/array/Array#__get - local.set $12 - local.get $5 + local.set $9 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $2 + local.get $5 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -8578,62 +8678,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $3 + local.tee $15 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load16_u - local.get $2 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $3 + local.get $15 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|011 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -8643,14 +8743,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $12 + local.get $9 i32.const 20 i32.sub - local.tee $3 + local.tee $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -8660,62 +8760,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $8 + local.tee $15 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $1 i32.load16_u - local.get $3 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $8 + local.get $15 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -8732,14 +8832,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $16 i32.load - local.get $2 - local.tee $0 + local.get $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -8749,47 +8848,47 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $7 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $7 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $7 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $7 i32.xor - local.tee $14 - local.get $4 + local.tee $5 + local.get $16 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $7 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $7 + local.get $1 if - local.get $7 + local.get $1 i32.load offset=4 - local.tee $8 + local.tee $15 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $7 + local.get $1 i32.load16_u local.get $0 i32.const 65535 @@ -8797,31 +8896,31 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $8 + local.get $15 i32.const -2 i32.and - local.set $7 + local.set $1 br $while-continue|015 end end i32.const 0 - local.set $7 + local.set $1 end - local.get $7 + local.get $1 if - local.get $7 - local.get $2 + local.get $1 + local.get $0 i32.store16 offset=2 else - local.get $4 + local.get $16 i32.load offset=16 - local.get $4 + local.get $16 i32.load offset=12 i32.eq if - local.get $4 + local.get $16 i32.load offset=20 - local.get $4 + local.get $16 i32.load offset=12 i32.const 3 i32.mul @@ -8829,17 +8928,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $16 i32.load offset=4 else - local.get $4 + local.get $16 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $7 + local.set $15 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8847,66 +8946,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - local.get $7 + local.get $1 + local.get $15 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $14 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $1 i32.store offset=4 - local.get $4 + local.get $16 i32.load offset=8 - local.tee $8 - local.get $4 + local.tee $12 + local.get $16 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $16 - local.get $3 - local.set $0 + local.set $13 + local.get $1 + local.set $2 loop $while-continue|016 - local.get $8 - local.get $16 + local.get $12 + local.get $13 i32.ne if - local.get $8 + local.get $12 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $0 - local.get $8 + local.get $2 + local.get $12 i32.load16_s - local.tee $9 + local.tee $3 i32.store16 - local.get $0 - local.get $8 + local.get $2 + local.get $12 i32.load16_s offset=2 i32.store16 offset=2 - local.get $0 - local.get $9 + local.get $2 + local.get $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -8916,69 +9015,69 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $9 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $9 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $9 i32.xor - local.get $7 + local.get $15 i32.and i32.const 2 i32.shl - local.get $10 + local.get $11 i32.add - local.tee $9 + local.tee $3 i32.load i32.store offset=4 - local.get $9 - local.get $0 + local.get $3 + local.get $2 i32.store - local.get $0 + local.get $2 i32.const 8 i32.add - local.set $0 + local.set $2 end - local.get $8 + local.get $12 i32.const 8 i32.add - local.set $8 + local.set $12 br $while-continue|016 end end - local.get $4 - local.get $10 + local.get $16 + local.get $11 i32.store - local.get $4 - local.get $10 + local.get $16 + local.get $11 call $~lib/rt/itcms/__link - local.get $4 - local.get $7 + local.get $16 + local.get $15 i32.store offset=4 - local.get $4 - local.get $3 + local.get $16 + local.get $1 i32.store offset=8 - local.get $4 - local.get $3 + local.get $16 + local.get $1 call $~lib/rt/itcms/__link - local.get $4 - local.get $15 + local.get $16 + local.get $14 i32.store offset=12 - local.get $4 - local.get $4 + local.get $16 + local.get $16 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -8987,70 +9086,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $16 i32.load offset=8 - local.tee $0 + local.tee $15 i32.store - local.get $4 - local.get $4 + local.get $16 + local.get $16 i32.load offset=16 - local.tee $7 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $7 + local.get $1 i32.const 3 i32.shl - local.get $0 + local.get $15 i32.add - local.tee $0 - local.get $2 + local.tee $15 + local.get $0 i32.store16 + local.get $15 local.get $0 - local.get $2 i32.store16 offset=2 - local.get $4 - local.get $4 + local.get $16 + local.get $16 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $4 + local.get $15 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $14 + local.get $5 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=4 - local.get $2 - local.get $0 + local.get $1 + local.get $15 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 - local.get $12 + local.get $10 + local.get $9 i32.const 20 i32.sub - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 call $~lib/map/Map#set - local.get $6 + local.get $4 i32.const 1 i32.add - local.set $6 + local.set $1 br $for-loop|4 end end - local.get $4 + local.get $16 i32.load offset=20 i32.const 100 i32.ne @@ -9062,7 +9161,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -9075,18 +9174,19 @@ unreachable end i32.const 0 - local.set $6 + local.set $1 loop $for-loop|6 - local.get $6 + local.get $1 i32.extend16_s i32.const 50 i32.lt_s if - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $6 + local.get $1 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -9096,62 +9196,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $6 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $0 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|019 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -9161,10 +9261,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $7 + local.get $0 call $~lib/map/Map#get - local.get $6 + local.get $0 i32.extend16_s i32.const 20 i32.add @@ -9177,14 +9277,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $7 + local.get $0 call $~lib/map/Map#delete - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $6 + local.get $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -9194,62 +9294,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $6 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $0 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|022 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -9258,14 +9358,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $1 br $for-loop|6 end end - local.get $5 + local.get $7 i32.load offset=20 i32.const 50 i32.ne @@ -9278,18 +9378,19 @@ unreachable end i32.const 0 - local.set $6 + local.set $1 loop $for-loop|8 - local.get $6 + local.get $1 i32.extend16_s i32.const 50 i32.lt_s if - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $6 + local.get $1 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -9299,62 +9400,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $6 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $0 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|025 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -9363,19 +9464,19 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 - local.get $6 + local.get $7 + local.get $0 + local.get $0 i32.extend16_s - local.tee $2 + local.tee $1 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $2 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761395 @@ -9384,62 +9485,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $6 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $0 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|028 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.eqz if i32.const 0 @@ -9449,14 +9550,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $7 + local.get $0 call $~lib/map/Map#delete - local.get $5 + local.get $7 i32.load - local.get $5 + local.get $7 i32.load offset=4 - local.get $6 + local.get $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -9466,62 +9567,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $1 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $2 + local.get $1 if - local.get $2 + local.get $1 i32.load offset=8 - local.tee $0 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 i32.load16_u - local.get $6 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 + local.get $16 i32.const -2 i32.and - local.set $2 + local.set $1 br $while-continue|031 end end i32.const 0 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -9530,14 +9631,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $1 br $for-loop|8 end end - local.get $5 + local.get $7 i32.load offset=20 i32.const 50 i32.ne @@ -9549,9 +9650,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $7 call $~lib/map/Map#clear - local.get $5 + local.get $7 i32.load offset=20 if i32.const 0 @@ -9598,26 +9699,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9625,37 +9726,39 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $5 + local.get $8 i32.ne if - local.get $7 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load16_u - local.tee $8 + local.tee $4 i32.store16 local.get $2 - local.get $7 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $8 + local.get $4 + i32.const 65535 + i32.and i32.const -1028477379 i32.mul i32.const 374761395 @@ -9664,24 +9767,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor local.get $1 i32.and @@ -9689,10 +9792,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $4 i32.load i32.store offset=8 - local.get $8 + local.get $4 local.get $2 i32.store local.get $2 @@ -9700,10 +9803,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 12 i32.add - local.set $7 + local.set $5 br $while-continue|0 end end @@ -9723,7 +9826,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -9736,53 +9839,55 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) @@ -9790,13 +9895,14 @@ else local.get $0 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + drop + local.get $1 i32.const -2 i32.and local.set $0 @@ -9804,9 +9910,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1616 @@ -9822,51 +9927,52 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -9883,6 +9989,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -9891,9 +9998,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -9963,15 +10069,16 @@ (local $14 i32) (local $15 i32) (local $16 i32) + (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $4 i64.const 0 @@ -9989,43 +10096,43 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 i32.const 0 i32.store - local.get $5 + local.get $1 i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store - local.get $5 + local.get $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $7 i32.store - local.get $5 - local.get $0 + local.get $1 + local.get $7 call $~lib/rt/itcms/__link - local.get $5 + local.get $1 i32.const 3 i32.store offset=4 - local.get $5 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $7 i32.store offset=8 - local.get $5 - local.get $0 + local.get $1 + local.get $7 call $~lib/rt/itcms/__link - local.get $5 + local.get $1 i32.const 4 i32.store offset=12 - local.get $5 + local.get $1 i32.const 0 i32.store offset=16 - local.get $5 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -10033,7 +10140,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 - local.get $5 + local.get $1 i32.store loop $for-loop|1 local.get $2 @@ -10042,77 +10149,82 @@ i32.const 100 i32.lt_u if - local.get $5 - i32.load - local.get $5 - i32.load offset=4 + local.get $1 + local.set $5 local.get $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $7 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|0 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 + local.get $5 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $5 i32.load16_u - local.get $2 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + drop + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $5 br $while-continue|0 end end i32.const 0 - local.set $4 end - local.get $4 if i32.const 0 i32.const 1568 @@ -10121,84 +10233,92 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 local.get $2 local.get $2 i32.const 65535 i32.and - local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $5 + local.get $2 local.set $4 - block $__inlined_func$~lib/map/Map#find1 + block $__inlined_func$~lib/map/Map#find1 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $7 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|02 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 + local.get $5 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $5 i32.load16_u - local.get $2 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $3 + drop + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $5 br $while-continue|02 end end i32.const 0 - local.set $4 end - local.get $4 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -10208,7 +10328,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 local.get $2 call $~lib/map/Map#get local.get $2 @@ -10232,7 +10352,7 @@ br $for-loop|1 end end - local.get $5 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -10253,77 +10373,84 @@ i32.const 100 i32.lt_u if - local.get $5 - i32.load - local.get $5 - i32.load offset=4 + local.get $1 + local.set $5 local.get $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find4 + block $__inlined_func$~lib/map/Map#find4 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $7 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|05 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 + local.get $5 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $5 i32.load16_u - local.get $2 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $3 + drop + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $5 br $while-continue|05 end end i32.const 0 - local.set $4 end - local.get $4 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -10333,101 +10460,109 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 local.get $2 call $~lib/map/Map#get local.get $2 i32.const 65535 i32.and i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $5 - local.get $2 - local.get $2 - i32.const 65535 - i32.and - local.tee $4 - i32.const 20 - i32.add - call $~lib/map/Map#set - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $1 + local.get $2 + local.get $2 + i32.const 65535 i32.and - i32.const 2 - i32.shl + i32.const 20 i32.add - i32.load + call $~lib/map/Map#set + local.get $1 + local.set $5 + local.get $2 local.set $4 - block $__inlined_func$~lib/map/Map#find7 + block $__inlined_func$~lib/map/Map#find7 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $7 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|08 - local.get $4 + local.get $5 if - local.get $4 + local.get $5 + local.get $5 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $5 i32.load16_u - local.get $2 + local.get $7 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $3 + drop + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $5 br $while-continue|08 end end i32.const 0 - local.set $4 end - local.get $4 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -10437,7 +10572,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 local.get $2 call $~lib/map/Map#get local.get $2 @@ -10461,7 +10596,7 @@ br $for-loop|3 end end - local.get $5 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -10474,60 +10609,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $4 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store - local.get $5 + local.get $1 i32.load offset=8 - local.set $11 - local.get $5 + local.set $14 + local.get $1 i32.load offset=16 - local.tee $12 - local.set $4 - local.get $3 + local.tee $13 + local.set $7 + local.get $4 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 i32.const 16 i32.const 15 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $4 i32.const 0 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=8 - local.get $2 + local.get $4 i32.const 0 i32.store offset=12 - local.get $4 + local.get $7 i32.const 536870910 i32.gt_u if @@ -10539,96 +10675,96 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 i32.const 8 - local.get $4 + local.get $7 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $8 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $17 i32.store offset=4 - local.get $0 - local.get $8 + local.get $17 + local.get $5 call $~lib/memory/memory.fill - local.get $2 - local.get $0 + local.get $4 + local.get $17 i32.store - local.get $2 - local.get $0 + local.get $4 + local.get $17 call $~lib/rt/itcms/__link - local.get $2 - local.get $0 + local.get $4 + local.get $17 i32.store offset=4 - local.get $2 - local.get $8 + local.get $4 + local.get $5 i32.store offset=8 - local.get $2 local.get $4 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $2 + local.get $4 i32.store loop $for-loop|0 - local.get $7 - local.get $12 + local.get $6 + local.get $13 i32.lt_s if - local.get $7 + local.get $6 i32.const 12 i32.mul - local.get $11 + local.get $14 i32.add - local.tee $4 + local.tee $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $1 local.get $4 + local.get $3 + local.get $2 i32.load16_u call $~lib/array/Array#__set - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 end - local.get $7 + local.get $6 i32.const 1 i32.add - local.set $7 + local.set $6 br $for-loop|0 end end - local.get $2 - local.get $1 + local.get $4 + local.get $3 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 - local.get $1 + local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.tee $1 + local.get $4 + local.tee $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $1 call $~lib/map/Map#values - local.tee $13 + local.tee $11 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10638,7 +10774,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $4 i32.const 0 @@ -10652,10 +10788,10 @@ local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $17 i32.store local.get $4 - local.get $0 + local.get $17 call $~lib/rt/itcms/__link local.get $4 i32.const 3 @@ -10663,10 +10799,10 @@ local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $17 i32.store offset=8 local.get $4 - local.get $0 + local.get $17 call $~lib/rt/itcms/__link local.get $4 i32.const 4 @@ -10685,18 +10821,19 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $13 i32.store offset=16 loop $for-loop|4 - local.get $1 + local.get $7 i32.load offset=12 - local.get $6 + local.get $0 i32.gt_s if - local.get $1 + local.get $0 + local.tee $6 + local.get $7 i32.load offset=12 - local.get $6 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -10705,7 +10842,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $7 i32.load offset=4 local.get $6 i32.const 1 @@ -10713,79 +10850,88 @@ i32.add i32.load16_u local.set $2 - local.get $13 + local.get $11 local.get $6 call $~lib/array/Array#__get local.set $12 - local.get $5 - i32.load - local.get $5 - i32.load offset=4 + local.get $1 + local.set $3 local.get $2 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load local.set $0 - block $__inlined_func$~lib/map/Map#find10 + block $__inlined_func$~lib/map/Map#find10 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $0 + local.tee $5 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|011 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u - local.get $2 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $3 + drop + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $0 end - local.get $0 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -10795,56 +10941,61 @@ call $~lib/builtins/abort unreachable end - local.get $5 - i32.load - local.get $5 - i32.load offset=4 + local.get $1 + local.set $0 local.get $12 i32.const 20 i32.sub - local.tee $3 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find13 + local.set $3 + block $__inlined_func$~lib/map/Map#find13 (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $3 + local.tee $5 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|014 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 - local.tee $8 + local.tee $3 i32.const 1 i32.and if (result i32) @@ -10852,13 +11003,14 @@ else local.get $0 i32.load16_u - local.get $3 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $8 + drop + local.get $3 i32.const -2 i32.and local.set $0 @@ -10866,9 +11018,9 @@ end end i32.const 0 - local.set $0 end - local.get $0 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -10878,6 +11030,7 @@ call $~lib/builtins/abort unreachable end + local.get $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -10885,14 +11038,14 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.set $5 local.get $4 i32.load local.get $2 - local.tee $0 i32.const -1028477379 i32.mul i32.const 374761395 @@ -10901,26 +11054,26 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $7 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $7 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $7 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $7 i32.xor - local.tee $14 + local.tee $10 local.get $4 i32.load offset=4 i32.and @@ -10928,41 +11081,41 @@ i32.shl i32.add i32.load - local.set $7 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $7 + local.get $0 if - local.get $7 + local.get $0 i32.load offset=4 - local.tee $8 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $7 - i32.load16_u local.get $0 + i32.load16_u + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $8 + local.get $3 i32.const -2 i32.and - local.set $7 + local.set $0 br $while-continue|015 end end i32.const 0 - local.set $7 + local.set $0 end - local.get $7 + local.get $0 if - local.get $7 - local.get $2 + local.get $0 + local.get $5 i32.store16 offset=2 else local.get $4 @@ -10991,7 +11144,7 @@ i32.const 1 i32.or end - local.set $7 + local.set $17 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -10999,20 +11152,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $7 + local.get $17 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $14 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -11020,7 +11173,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $9 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -11028,37 +11181,37 @@ i32.store offset=4 local.get $4 i32.load offset=8 - local.tee $8 + local.tee $15 local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $16 + local.set $8 local.get $3 local.set $0 - loop $while-continue|016 + loop $while-continue|00 local.get $8 - local.get $16 + local.get $15 i32.ne if - local.get $8 + local.get $15 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $8 + local.get $15 i32.load16_u - local.tee $9 + local.tee $16 i32.store16 local.get $0 - local.get $8 + local.get $15 i32.load16_u offset=2 i32.store16 offset=2 local.get $0 - local.get $9 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761395 @@ -11067,35 +11220,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 + local.tee $16 + local.get $16 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $9 + local.tee $16 + local.get $16 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $9 + local.tee $16 + local.get $16 i32.const 16 i32.shr_u - local.get $9 i32.xor - local.get $7 + local.get $17 i32.and i32.const 2 i32.shl - local.get $10 + local.get $14 i32.add - local.tee $9 + local.tee $16 i32.load i32.store offset=4 - local.get $9 + local.get $16 local.get $0 i32.store local.get $0 @@ -11103,21 +11256,21 @@ i32.add local.set $0 end - local.get $8 + local.get $15 i32.const 8 i32.add - local.set $8 - br $while-continue|016 + local.set $15 + br $while-continue|00 end end local.get $4 - local.get $10 + local.get $14 i32.store local.get $4 - local.get $10 + local.get $14 call $~lib/rt/itcms/__link local.get $4 - local.get $7 + local.get $17 i32.store offset=4 local.get $4 local.get $3 @@ -11126,7 +11279,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $4 - local.get $15 + local.get $9 i32.store offset=12 local.get $4 local.get $4 @@ -11145,11 +11298,11 @@ local.get $4 local.get $4 i32.load offset=16 - local.tee $7 + local.tee $17 i32.const 1 i32.add i32.store offset=16 - local.get $7 + local.get $17 i32.const 3 i32.shl local.get $0 @@ -11158,7 +11311,7 @@ local.get $2 i32.store16 local.get $0 - local.get $2 + local.get $5 i32.store16 offset=2 local.get $4 local.get $4 @@ -11171,7 +11324,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $14 + local.get $10 i32.and i32.const 2 i32.shl @@ -11187,17 +11340,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $13 local.get $12 i32.const 20 i32.sub - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 call $~lib/map/Map#set local.get $6 i32.const 1 i32.add - local.set $6 + local.set $0 br $for-loop|4 end end @@ -11209,102 +11362,109 @@ i32.const 0 i32.const 1568 i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $11 - i32.load offset=20 - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $6 - loop $for-loop|6 - local.get $6 - i32.const 65535 - i32.and - i32.const 50 - i32.lt_u - if - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $6 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $13 + i32.load offset=20 + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|6 + local.get $0 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + if + local.get $1 + local.set $3 + local.get $0 local.set $2 - block $__inlined_func$~lib/map/Map#find18 - loop $while-continue|019 - local.get $2 + block $__inlined_func$~lib/map/Map#find17 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|018 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u - local.get $6 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find18 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find17 + drop + local.get $2 i32.const -2 i32.and - local.set $2 - br $while-continue|019 + local.set $3 + br $while-continue|018 end end i32.const 0 - local.set $2 end - local.get $2 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -11314,10 +11474,10 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $1 + local.get $0 call $~lib/map/Map#get - local.get $6 + local.get $0 i32.const 65535 i32.and i32.const 20 @@ -11331,80 +11491,85 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $1 + local.get $0 call $~lib/map/Map#delete - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $6 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $3 + local.get $0 local.set $2 - block $__inlined_func$~lib/map/Map#find21 - loop $while-continue|022 - local.get $2 + block $__inlined_func$~lib/map/Map#find20 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|021 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u - local.get $6 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find21 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find20 + drop + local.get $2 i32.const -2 i32.and - local.set $2 - br $while-continue|022 + local.set $3 + br $while-continue|021 end end i32.const 0 - local.set $2 end - local.get $2 if i32.const 0 i32.const 1568 @@ -11413,14 +11578,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $0 br $for-loop|6 end end - local.get $5 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -11433,85 +11598,90 @@ unreachable end i32.const 0 - local.set $6 + local.set $0 loop $for-loop|8 - local.get $6 + local.get $0 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $6 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $3 + local.get $0 local.set $2 - block $__inlined_func$~lib/map/Map#find24 - loop $while-continue|025 - local.get $2 + block $__inlined_func$~lib/map/Map#find23 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|024 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u - local.get $6 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find24 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find23 + drop + local.get $2 i32.const -2 i32.and - local.set $2 - br $while-continue|025 + local.set $3 + br $while-continue|024 end end i32.const 0 - local.set $2 end - local.get $2 if i32.const 0 i32.const 1568 @@ -11520,84 +11690,92 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 - local.get $6 + local.get $1 + local.get $0 + local.get $0 i32.const 65535 i32.and - local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $2 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $3 + local.get $0 local.set $2 - block $__inlined_func$~lib/map/Map#find27 - loop $while-continue|028 - local.get $2 + block $__inlined_func$~lib/map/Map#find26 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|027 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u - local.get $6 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find27 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find26 + drop + local.get $2 i32.const -2 i32.and - local.set $2 - br $while-continue|028 + local.set $3 + br $while-continue|027 end end i32.const 0 - local.set $2 end - local.get $2 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -11607,80 +11785,85 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $6 + local.get $1 + local.get $0 call $~lib/map/Map#delete - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $6 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load + local.get $1 + local.set $3 + local.get $0 local.set $2 - block $__inlined_func$~lib/map/Map#find30 - loop $while-continue|031 - local.get $2 + block $__inlined_func$~lib/map/Map#find29 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|030 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=8 - local.tee $0 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u - local.get $6 + local.get $4 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find30 - local.get $0 + br_if $__inlined_func$~lib/map/Map#find29 + drop + local.get $2 i32.const -2 i32.and - local.set $2 - br $while-continue|031 + local.set $3 + br $while-continue|030 end end i32.const 0 - local.set $2 end - local.get $2 if i32.const 0 i32.const 1568 @@ -11689,14 +11872,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $0 br $for-loop|8 end end - local.get $5 + local.get $1 i32.load offset=20 i32.const 50 i32.ne @@ -11708,9 +11891,9 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $1 call $~lib/map/Map#clear - local.get $5 + local.get $1 i32.load offset=20 if i32.const 0 @@ -11723,75 +11906,78 @@ global.get $~lib/memory/__stack_pointer i32.const 20 i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 18432 - i32.const 18480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + global.set $~lib/memory/__stack_pointer + return + end + i32.const 18432 + i32.const 18480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + drop + local.get $1 i32.const -2 i32.and local.set $0 @@ -11799,9 +11985,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1616 @@ -11817,49 +12002,50 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -11874,6 +12060,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -11882,9 +12069,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -11958,29 +12144,29 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 0 i32.store offset=16 - local.get $2 + local.get $3 call $~lib/map/Map#constructor - local.tee $2 + local.tee $4 i32.store loop $for-loop|0 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11989,36 +12175,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 local.tee $5 i32.const 1 @@ -12026,8 +12212,8 @@ if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end @@ -12035,14 +12221,14 @@ local.get $5 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -12051,17 +12237,17 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 - local.get $0 + local.get $4 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12070,36 +12256,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 local.tee $5 i32.const 1 @@ -12107,8 +12293,8 @@ if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end @@ -12116,14 +12302,14 @@ local.get $5 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|02 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -12133,10 +12319,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $4 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -12148,14 +12334,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -12168,17 +12354,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12187,36 +12373,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 local.tee $5 i32.const 1 @@ -12224,8 +12410,8 @@ if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end @@ -12233,14 +12419,14 @@ local.get $5 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|05 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -12250,10 +12436,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $4 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 10 i32.add i32.ne @@ -12265,17 +12451,17 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 - local.get $0 + local.get $4 + local.get $1 + local.get $1 i32.const 20 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12284,36 +12470,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=8 local.tee $5 i32.const 1 @@ -12321,8 +12507,8 @@ if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end @@ -12330,14 +12516,14 @@ local.get $5 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|08 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -12347,10 +12533,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $4 + local.get $1 call $~lib/map/Map#get - local.get $0 + local.get $1 i32.const 20 i32.add i32.ne @@ -12362,14 +12548,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -12382,10 +12568,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - local.set $0 - local.get $1 + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -12394,38 +12578,38 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i32.const 0 i32.store - local.get $2 + local.get $4 i32.load offset=8 - local.set $5 - local.get $1 - local.get $2 + local.set $6 + local.get $3 + local.get $4 i32.load offset=16 - local.tee $8 - call $~lib/array/Array#constructor local.tee $1 + call $~lib/array/Array#constructor + local.tee $5 i32.store loop $for-loop|01 - local.get $3 - local.get $8 - i32.lt_s + local.get $1 + local.get $7 + i32.gt_s if - local.get $3 + local.get $7 i32.const 12 i32.mul - local.get $5 + local.get $6 i32.add - local.tee $6 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 + local.get $5 local.get $0 - local.get $6 + local.get $3 i32.load call $~lib/array/Array#__set local.get $0 @@ -12433,59 +12617,59 @@ i32.add local.set $0 end - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 + local.set $7 br $for-loop|01 end end - local.get $1 + local.get $5 local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $5 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $5 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 call $~lib/map/Map#values - local.tee $9 + local.tee $7 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $7 + local.tee $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $5 + local.tee $10 i32.store offset=16 loop $for-loop|2 - local.get $1 + local.get $5 i32.load offset=12 - local.get $4 + local.get $2 i32.gt_s if - local.get $1 - local.get $4 + local.get $5 + local.get $2 + call $~lib/array/Array#__get + local.set $1 + local.get $7 + local.get $2 call $~lib/array/Array#__get local.set $0 - local.get $9 local.get $4 - call $~lib/array/Array#__get - local.set $8 - local.get $2 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12495,23 +12679,23 @@ i32.const 668265263 i32.mul local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $3 i32.xor i32.and i32.const 2 @@ -12531,7 +12715,7 @@ if (result i32) i32.const 0 else - local.get $0 + local.get $1 local.get $3 i32.load i32.eq @@ -12557,14 +12741,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.load - local.get $2 + local.get $4 i32.load offset=4 - local.get $8 + local.get $0 i32.const 20 i32.sub - local.tee $6 + local.tee $8 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12574,23 +12758,23 @@ i32.const 668265263 i32.mul local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $3 i32.xor i32.and i32.const 2 @@ -12604,19 +12788,19 @@ if local.get $3 i32.load offset=8 - local.tee $10 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $8 local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $10 + local.get $6 i32.const -2 i32.and local.set $3 @@ -12636,25 +12820,25 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 - local.get $0 + local.get $9 + local.get $1 + local.get $1 call $~lib/map/Map#set - local.get $5 - local.get $8 + local.get $10 + local.get $0 i32.const 20 i32.sub - local.tee $0 - local.get $0 + local.tee $3 + local.get $3 call $~lib/map/Map#set - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|2 end end - local.get $7 + local.get $9 i32.load offset=20 i32.const 100 i32.ne @@ -12666,7 +12850,7 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -12679,17 +12863,18 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|3 - local.get $4 + local.get $2 i32.const 50 i32.lt_s if - local.get $2 + local.get $4 i32.load - local.get $2 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $2 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12698,60 +12883,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/map/Map#find16 loop $while-continue|017 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find16 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -12761,10 +12946,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $4 + local.get $1 call $~lib/map/Map#get - local.get $4 + local.get $1 i32.const 20 i32.add i32.ne @@ -12776,14 +12961,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $4 + local.get $1 call $~lib/map/Map#delete - local.get $2 + local.get $4 i32.load - local.get $2 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12792,60 +12977,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/map/Map#find19 loop $while-continue|020 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -12854,14 +13039,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -12874,17 +13059,18 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|4 - local.get $4 + local.get $2 i32.const 50 i32.lt_s if - local.get $2 + local.get $4 i32.load - local.get $2 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $2 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12893,60 +13079,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/map/Map#find22 loop $while-continue|023 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -12955,17 +13141,17 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 local.get $4 + local.get $1 + local.get $1 i32.const 10 i32.add call $~lib/map/Map#set - local.get $2 + local.get $4 i32.load - local.get $2 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12974,60 +13160,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/map/Map#find25 loop $while-continue|026 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -13037,14 +13223,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $4 + local.get $1 call $~lib/map/Map#delete - local.get $2 + local.get $4 i32.load - local.get $2 - i32.load offset=4 local.get $4 + i32.load offset=4 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13053,60 +13239,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/map/Map#find28 loop $while-continue|029 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|029 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -13115,14 +13301,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -13134,9 +13320,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 call $~lib/map/Map#clear - local.get $2 + local.get $4 i32.load offset=20 if i32.const 0 @@ -13183,26 +13369,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13210,37 +13396,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $5 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $4 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $5 + local.get $8 i32.ne if - local.get $7 + local.get $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load - local.tee $8 + local.tee $4 i32.store local.get $2 - local.get $7 + local.get $5 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $8 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13249,24 +13435,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor local.get $1 i32.and @@ -13274,10 +13460,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $4 i32.load i32.store offset=8 - local.get $8 + local.get $4 local.get $2 i32.store local.get $2 @@ -13285,10 +13471,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 12 i32.add - local.set $7 + local.set $5 br $while-continue|0 end end @@ -13308,7 +13494,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -13321,63 +13507,66 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + drop + local.get $1 i32.const -2 i32.and local.set $0 @@ -13385,9 +13574,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1616 @@ -13403,49 +13591,50 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -13460,6 +13649,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -13468,9 +13658,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -13544,29 +13733,29 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i64.const 0 i64.store - local.get $3 + local.get $0 i64.const 0 i64.store offset=8 - local.get $3 + local.get $0 i32.const 0 i32.store offset=16 - local.get $3 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $4 i32.const 0 @@ -13580,10 +13769,10 @@ local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $15 i32.store local.get $4 - local.get $1 + local.get $15 call $~lib/rt/itcms/__link local.get $4 i32.const 3 @@ -13591,10 +13780,10 @@ local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $15 i32.store offset=8 local.get $4 - local.get $1 + local.get $15 call $~lib/rt/itcms/__link local.get $4 i32.const 4 @@ -13609,19 +13798,20 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $0 local.get $4 + local.tee $7 i32.store loop $for-loop|0 - local.get $0 + local.get $16 i32.const 100 i32.lt_u if - local.get $4 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $0 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13630,60 +13820,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $16 local.get $0 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + local.get $4 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -13692,17 +13882,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $0 - local.get $0 + local.get $7 + local.get $16 + local.get $16 i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $0 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13711,60 +13901,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $16 local.get $0 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $2 + local.get $4 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -13774,10 +13964,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $0 + local.get $7 + local.get $16 call $~lib/map/Map#get - local.get $0 + local.get $16 i32.const 10 i32.add i32.ne @@ -13789,14 +13979,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $16 i32.const 1 i32.add - local.set $0 + local.set $16 br $for-loop|0 end end - local.get $4 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -13809,17 +13999,17 @@ unreachable end i32.const 0 - local.set $0 + local.set $16 loop $for-loop|1 - local.get $0 + local.get $16 i32.const 100 i32.lt_u if - local.get $4 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $0 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13828,60 +14018,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $16 local.get $0 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $2 + local.get $4 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -13891,10 +14081,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $0 + local.get $7 + local.get $16 call $~lib/map/Map#get - local.get $0 + local.get $16 i32.const 10 i32.add i32.ne @@ -13906,17 +14096,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $0 - local.get $0 + local.get $7 + local.get $16 + local.get $16 i32.const 20 i32.add call $~lib/map/Map#set - local.get $4 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $0 + local.get $16 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13925,60 +14115,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $16 local.get $0 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $2 + local.get $4 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -13988,10 +14178,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $0 + local.get $7 + local.get $16 call $~lib/map/Map#get - local.get $0 + local.get $16 i32.const 20 i32.add i32.ne @@ -14003,14 +14193,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $16 i32.const 1 i32.add - local.set $0 + local.set $16 br $for-loop|1 end end - local.get $4 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -14023,62 +14213,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - local.set $0 - local.get $3 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $16 i32.const 0 i32.store - local.get $4 + local.get $7 i32.load offset=8 - local.set $11 - local.get $4 + local.set $15 + local.get $7 i32.load offset=16 - local.tee $12 - local.set $3 - local.get $2 + local.tee $4 + local.set $14 + local.get $16 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.store - local.get $6 + local.get $0 i32.const 0 i32.store - local.get $6 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $6 + local.get $0 i32.const 0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 0 i32.store offset=8 - local.get $6 + local.get $0 i32.const 0 i32.store offset=12 - local.get $3 + local.get $14 i32.const 268435455 i32.gt_u if @@ -14090,95 +14278,96 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $14 i32.const 8 - local.get $3 + local.get $14 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $7 + local.tee $6 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $13 i32.store offset=4 - local.get $1 - local.get $7 - call $~lib/memory/memory.fill + local.get $13 local.get $6 - local.get $1 + call $~lib/memory/memory.fill + local.get $0 + local.get $13 i32.store - local.get $6 - local.get $1 + local.get $0 + local.get $13 call $~lib/rt/itcms/__link - local.get $6 - local.get $1 + local.get $0 + local.get $13 i32.store offset=4 + local.get $0 local.get $6 - local.get $7 i32.store offset=8 - local.get $6 - local.get $3 + local.get $0 + local.get $14 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $6 + local.get $16 + local.get $0 i32.store loop $for-loop|01 - local.get $8 - local.get $12 + local.get $2 + local.get $4 i32.lt_s if - local.get $8 + local.get $2 i32.const 12 i32.mul - local.get $11 + local.get $15 i32.add - local.tee $3 + local.tee $16 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $6 local.get $0 local.get $3 + local.get $16 i32.load call $~lib/array/Array#__set - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 end - local.get $8 + local.get $2 i32.const 1 i32.add - local.set $8 + local.set $2 br $for-loop|01 end end - local.get $6 local.get $0 + local.get $3 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 local.get $0 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $0 + local.tee $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $7 call $~lib/map/Map#values - local.tee $13 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14188,65 +14377,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 i32.const 0 i32.store - local.get $3 + local.get $0 i32.const 24 i32.const 19 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $16 i32.store - local.get $3 + local.get $16 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store - local.get $3 - local.get $1 + local.get $16 + local.get $0 call $~lib/rt/itcms/__link - local.get $3 + local.get $16 i32.const 3 i32.store offset=4 - local.get $3 + local.get $16 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $3 - local.get $1 + local.get $16 + local.get $0 call $~lib/rt/itcms/__link - local.get $3 + local.get $16 i32.const 4 i32.store offset=12 - local.get $3 + local.get $16 i32.const 0 i32.store offset=16 - local.get $3 + local.get $16 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $16 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $10 i32.store offset=16 loop $for-loop|2 local.get $6 i32.load offset=12 - local.get $5 + local.get $1 i32.gt_s if + local.get $1 + local.tee $4 local.get $6 i32.load offset=12 - local.get $5 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -14257,21 +14447,22 @@ end local.get $6 i32.load offset=4 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $0 - local.get $13 - local.get $5 - call $~lib/array/Array#__get - local.set $12 + local.set $5 + local.get $8 local.get $4 + call $~lib/array/Array#__get + local.set $9 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $0 + local.get $5 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14281,23 +14472,23 @@ i32.const 668265263 i32.mul local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 @@ -14311,7 +14502,7 @@ if local.get $1 i32.load offset=8 - local.tee $2 + local.tee $15 i32.const 1 i32.and if (result i32) @@ -14323,7 +14514,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $2 + local.get $15 i32.const -2 i32.and local.set $1 @@ -14343,11 +14534,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $12 + local.get $9 i32.const 20 i32.sub local.tee $2 @@ -14360,23 +14551,23 @@ i32.const 668265263 i32.mul local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 @@ -14390,7 +14581,7 @@ if local.get $1 i32.load offset=8 - local.tee $7 + local.tee $15 i32.const 1 i32.and if (result i32) @@ -14402,7 +14593,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $7 + local.get $15 i32.const -2 i32.and local.set $1 @@ -14429,14 +14620,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 + local.get $16 i32.load local.get $0 - local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14445,77 +14635,77 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $14 - local.get $3 + local.tee $5 + local.get $16 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find15 loop $while-continue|016 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $2 + local.tee $15 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $2 + local.get $15 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|016 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if - local.get $0 local.get $1 + local.get $0 i32.store offset=4 else - local.get $3 + local.get $16 i32.load offset=16 - local.get $3 + local.get $16 i32.load offset=12 i32.eq if - local.get $3 + local.get $16 i32.load offset=20 - local.get $3 + local.get $16 i32.load offset=12 i32.const 3 i32.mul @@ -14523,17 +14713,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + local.get $16 i32.load offset=4 else - local.get $3 + local.get $16 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $8 + local.set $15 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14541,66 +14731,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - local.get $8 + local.get $1 + local.get $15 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 + local.tee $11 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $15 + local.tee $14 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $3 + local.get $16 i32.load offset=8 - local.tee $7 - local.get $3 + local.tee $12 + local.get $16 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $16 - local.get $2 - local.set $0 + local.set $13 + local.get $1 + local.set $2 loop $while-continue|017 - local.get $7 - local.get $16 + local.get $12 + local.get $13 i32.ne if - local.get $7 + local.get $12 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $0 - local.get $7 + local.get $2 + local.get $12 i32.load - local.tee $9 + local.tee $3 i32.store - local.get $0 - local.get $7 + local.get $2 + local.get $12 i32.load offset=4 i32.store offset=4 - local.get $0 - local.get $9 + local.get $2 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14609,69 +14799,69 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $9 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $9 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $9 i32.xor - local.get $8 + local.get $15 i32.and i32.const 2 i32.shl - local.get $10 + local.get $11 i32.add - local.tee $9 + local.tee $3 i32.load i32.store offset=8 - local.get $9 - local.get $0 + local.get $3 + local.get $2 i32.store - local.get $0 + local.get $2 i32.const 12 i32.add - local.set $0 + local.set $2 end - local.get $7 + local.get $12 i32.const 12 i32.add - local.set $7 + local.set $12 br $while-continue|017 end end - local.get $3 - local.get $10 + local.get $16 + local.get $11 i32.store - local.get $3 - local.get $10 + local.get $16 + local.get $11 call $~lib/rt/itcms/__link - local.get $3 - local.get $8 + local.get $16 + local.get $15 i32.store offset=4 - local.get $3 - local.get $2 + local.get $16 + local.get $1 i32.store offset=8 - local.get $3 - local.get $2 + local.get $16 + local.get $1 call $~lib/rt/itcms/__link - local.get $3 - local.get $15 + local.get $16 + local.get $14 i32.store offset=12 - local.get $3 - local.get $3 + local.get $16 + local.get $16 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -14680,40 +14870,40 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $16 i32.load offset=8 - local.tee $0 + local.tee $15 i32.store - local.get $3 - local.get $3 + local.get $16 + local.get $16 i32.load offset=16 - local.tee $8 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $8 + local.get $1 i32.const 12 i32.mul - local.get $0 + local.get $15 i32.add - local.tee $0 - local.get $1 + local.tee $15 + local.get $0 i32.store + local.get $15 local.get $0 - local.get $1 i32.store offset=4 - local.get $3 - local.get $3 + local.get $16 + local.get $16 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $3 + local.get $15 + local.get $16 i32.load - local.get $3 + local.get $16 i32.load offset=4 - local.get $14 + local.get $5 i32.and i32.const 2 i32.shl @@ -14722,28 +14912,28 @@ i32.load i32.store offset=8 local.get $1 - local.get $0 + local.get $15 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 - local.get $12 + local.get $10 + local.get $9 i32.const 20 i32.sub - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 call $~lib/map/Map#set - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|2 end end - local.get $3 + local.get $16 i32.load offset=20 i32.const 100 i32.ne @@ -14755,7 +14945,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $10 i32.load offset=20 i32.const 100 i32.ne @@ -14768,17 +14958,18 @@ unreachable end i32.const 0 - local.set $5 + local.set $1 loop $for-loop|3 - local.get $5 + local.get $1 i32.const 50 i32.lt_u if - local.get $4 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $5 + local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14787,60 +14978,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find19 loop $while-continue|020 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $1 + local.get $16 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -14850,10 +15041,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $5 + local.get $7 + local.get $0 call $~lib/map/Map#get - local.get $5 + local.get $0 i32.const 20 i32.add i32.ne @@ -14865,14 +15056,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $5 + local.get $7 + local.get $0 call $~lib/map/Map#delete - local.get $4 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $5 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14881,60 +15072,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find22 loop $while-continue|023 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $1 + local.get $16 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|023 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -14943,14 +15134,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|3 end end - local.get $4 + local.get $7 i32.load offset=20 i32.const 50 i32.ne @@ -14963,17 +15154,18 @@ unreachable end i32.const 0 - local.set $5 + local.set $1 loop $for-loop|4 - local.get $5 + local.get $1 i32.const 50 i32.lt_u if - local.get $4 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $5 + local.get $1 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14982,60 +15174,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find25 loop $while-continue|026 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $1 + local.get $16 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|026 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -15044,17 +15236,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $5 - local.get $5 + local.get $7 + local.get $0 + local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $5 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15063,60 +15255,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find28 loop $while-continue|029 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $1 + local.get $16 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|029 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -15126,14 +15318,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $5 + local.get $7 + local.get $0 call $~lib/map/Map#delete - local.get $4 + local.get $7 i32.load - local.get $4 + local.get $7 i32.load offset=4 - local.get $5 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15142,60 +15334,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/map/Map#find31 loop $while-continue|032 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $16 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 local.get $0 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find31 - local.get $1 + local.get $16 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|032 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -15204,14 +15396,14 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $0 i32.const 1 i32.add - local.set $5 + local.set $1 br $for-loop|4 end end - local.get $4 + local.get $7 i32.load offset=20 i32.const 50 i32.ne @@ -15223,9 +15415,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $7 call $~lib/map/Map#clear - local.get $4 + local.get $7 i32.load offset=20 if i32.const 0 @@ -15250,60 +15442,61 @@ ) (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -15318,6 +15511,7 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $2 i32.const -2 i32.and @@ -15326,9 +15520,7 @@ end end i32.const 0 - local.set $0 end - local.get $0 i32.const 0 i32.ne ) @@ -15337,8 +15529,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i32) + (local $6 i32) + (local $7 i64) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer @@ -15357,26 +15549,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $8 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -15384,38 +15576,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $8 + local.tee $4 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $4 + local.set $9 local.get $3 local.set $2 loop $while-continue|0 local.get $4 - local.get $8 + local.get $9 i32.ne if - local.get $8 + local.get $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 i64.load - local.tee $6 + local.tee $7 i64.store local.get $2 - local.get $8 + local.get $4 i32.load offset=8 i32.store offset=8 local.get $2 - local.get $1 - local.get $6 + local.get $7 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15425,7 +15616,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 + local.get $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15436,34 +15627,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor + local.get $1 i32.and i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add - local.tee $9 + local.tee $5 i32.load i32.store offset=12 - local.get $9 + local.get $5 local.get $2 i32.store local.get $2 @@ -15471,18 +15663,18 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 16 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $6 i32.store local.get $0 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $0 local.get $1 @@ -15494,7 +15686,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $8 i32.store offset=12 local.get $0 local.get $0 @@ -15507,60 +15699,61 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -15575,6 +15768,7 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $2 i32.const -2 i32.and @@ -15583,9 +15777,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1616 @@ -15639,61 +15832,62 @@ ) (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (local $2 i32) - (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/map/Map#find + (local $3 i32) + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=12 local.tee $3 @@ -15708,6 +15902,7 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -15716,9 +15911,8 @@ end end i32.const 0 - local.set $2 end - local.get $2 + local.tee $2 i32.eqz if return @@ -15805,8 +15999,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i64) + (local $3 i64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -15816,42 +16010,42 @@ (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i64) + (local $14 i32) (local $15 i32) (local $16 i32) - (local $17 i32) + (local $17 i64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i64.const 0 i64.store - local.get $3 + local.get $2 i64.const 0 i64.store offset=8 - local.get $3 + local.get $2 i32.const 0 i32.store offset=16 - local.get $3 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 24 i32.const 20 call $~lib/rt/itcms/__new @@ -15860,10 +16054,10 @@ local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $4 i32.store local.get $5 - local.get $0 + local.get $4 call $~lib/rt/itcms/__link local.get $5 i32.const 3 @@ -15871,10 +16065,10 @@ local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $4 i32.store offset=8 local.get $5 - local.get $0 + local.get $4 call $~lib/rt/itcms/__link local.get $5 i32.const 4 @@ -15889,16 +16083,16 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $5 i32.store loop $for-loop|0 - local.get $4 + local.get $3 i64.const 100 i64.lt_s if local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -15909,14 +16103,14 @@ unreachable end local.get $5 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -15928,9 +16122,9 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -15943,10 +16137,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|0 end end @@ -15963,14 +16157,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 + local.get $3 i64.const 100 i64.lt_s if local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -15982,9 +16176,9 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -15998,14 +16192,14 @@ unreachable end local.get $5 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16017,9 +16211,9 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -16032,10 +16226,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|1 end end @@ -16052,39 +16246,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $2 i32.const 0 i32.store local.get $5 i32.load offset=8 - local.set $12 + local.set $0 local.get $5 i32.load offset=16 - local.tee $13 - local.set $3 - local.get $7 + local.tee $7 + local.set $9 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i64.const 0 i64.store - local.get $0 + local.get $4 i32.const 16 i32.const 21 call $~lib/rt/itcms/__new @@ -16105,7 +16299,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $3 + local.get $9 i32.const 134217727 i32.gt_u if @@ -16117,55 +16311,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $9 i32.const 8 - local.get $3 + local.get $9 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $10 i32.store offset=4 - local.get $0 - local.get $9 + local.get $10 + local.get $4 call $~lib/memory/memory.fill local.get $6 - local.get $0 + local.get $10 i32.store local.get $6 - local.get $0 + local.get $10 call $~lib/rt/itcms/__link local.get $6 - local.get $0 + local.get $10 i32.store offset=4 local.get $6 - local.get $9 + local.get $4 i32.store offset=8 local.get $6 - local.get $3 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $2 local.get $6 i32.store loop $for-loop|01 - local.get $2 - local.get $13 - i32.lt_s + local.get $7 + local.get $12 + i32.gt_s if - local.get $2 + local.get $12 i32.const 4 i32.shl - local.get $12 + local.get $0 i32.add - local.tee $3 + local.tee $2 i32.load offset=12 i32.const 1 i32.and @@ -16173,7 +16367,7 @@ if local.get $6 local.get $1 - local.get $3 + local.get $2 i64.load call $~lib/array/Array#__set local.get $1 @@ -16181,10 +16375,10 @@ i32.add local.set $1 end - local.get $2 + local.get $12 i32.const 1 i32.add - local.set $2 + local.set $12 br $for-loop|01 end end @@ -16205,7 +16399,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 call $~lib/map/Map#values - local.tee $13 + local.tee $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16215,64 +16409,64 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.const 22 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store - local.get $3 - local.get $1 + local.get $4 + local.get $2 call $~lib/rt/itcms/__link - local.get $3 + local.get $4 i32.const 3 i32.store offset=4 - local.get $3 + local.get $4 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $3 - local.get $1 + local.get $4 + local.get $2 call $~lib/rt/itcms/__link - local.get $3 + local.get $4 i32.const 4 i32.store offset=12 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $15 i32.store offset=16 loop $for-loop|2 local.get $6 i32.load offset=12 - local.get $10 + local.get $13 i32.gt_s if local.get $6 i32.load offset=12 - local.get $10 + local.get $13 i32.le_u if i32.const 1248 @@ -16284,18 +16478,18 @@ end local.get $6 i32.load offset=4 - local.get $10 + local.get $13 i32.const 3 i32.shl i32.add i64.load - local.set $4 + local.set $3 + local.get $9 local.get $13 - local.get $10 call $~lib/array/Array#__get - local.set $12 + local.set $16 local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16307,7 +16501,7 @@ unreachable end local.get $5 - local.get $12 + local.get $16 i32.const 20 i32.sub i64.extend_i32_s @@ -16328,13 +16522,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 - i32.load local.get $4 + i32.load + local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16344,7 +16538,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $4 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16355,77 +16549,77 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $15 - local.get $3 + local.tee $10 + local.get $4 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=16 - local.tee $2 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $3 + local.get $2 i64.load i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + local.get $7 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if - local.get $0 - local.get $4 + local.get $2 + local.get $3 i64.store offset=8 else - local.get $3 + local.get $4 i32.load offset=16 - local.get $3 + local.get $4 i32.load offset=12 i32.eq if - local.get $3 + local.get $4 i32.load offset=20 - local.get $3 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -16433,17 +16627,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + local.get $4 i32.load offset=4 else - local.get $3 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $1 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16451,67 +16645,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 - local.get $1 + local.get $2 + local.get $7 i32.const 1 i32.add - local.tee $0 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $14 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $1 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $2 i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=8 - local.tee $7 - local.get $3 + local.tee $11 + local.get $4 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $17 + local.set $12 local.get $2 local.set $0 loop $while-continue|00 - local.get $7 - local.get $17 + local.get $11 + local.get $12 i32.ne if - local.get $7 + local.get $11 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $7 + local.get $11 i64.load - local.tee $14 + local.tee $17 i64.store local.get $0 - local.get $7 + local.get $11 i64.load offset=8 i64.store offset=8 local.get $0 - local.get $1 - local.get $14 + local.get $17 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16521,7 +16714,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $14 + local.get $17 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16533,28 +16726,29 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $7 i32.and i32.const 2 i32.shl - local.get $9 + local.get $14 i32.add local.tee $8 i32.load @@ -16567,33 +16761,33 @@ i32.add local.set $0 end - local.get $7 + local.get $11 i32.const 24 i32.add - local.set $7 + local.set $11 br $while-continue|00 end end - local.get $3 - local.get $9 + local.get $4 + local.get $14 i32.store - local.get $3 - local.get $9 + local.get $4 + local.get $14 call $~lib/rt/itcms/__link - local.get $3 - local.get $1 + local.get $4 + local.get $7 i32.store offset=4 - local.get $3 + local.get $4 local.get $2 i32.store offset=8 - local.get $3 + local.get $4 local.get $2 call $~lib/rt/itcms/__link - local.get $3 - local.get $16 + local.get $4 + local.get $1 i32.store offset=12 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -16602,70 +16796,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.load offset=8 - local.tee $0 + local.tee $7 i32.store - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $1 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $1 + local.get $2 i32.const 24 i32.mul - local.get $0 + local.get $7 i32.add - local.tee $0 - local.get $4 - i64.store - local.get $0 - local.get $4 - i64.store offset=8 + local.tee $7 local.get $3 + i64.store + local.get $7 local.get $3 + i64.store offset=8 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $3 + local.get $7 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $15 + local.get $10 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=16 - local.get $1 - local.get $0 + local.get $2 + local.get $7 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 - local.get $12 + local.get $15 + local.get $16 i32.const 20 i32.sub - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 call $~lib/map/Map#set - local.get $10 + local.get $13 i32.const 1 i32.add - local.set $10 + local.set $13 br $for-loop|2 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -16677,7 +16871,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -16690,14 +16884,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 i64.const 50 i64.lt_s if local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16709,9 +16903,9 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -16725,10 +16919,10 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#delete local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16738,10 +16932,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|3 end end @@ -16758,14 +16952,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|4 - local.get $4 + local.get $3 i64.const 50 i64.lt_s if local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16776,14 +16970,14 @@ unreachable end local.get $5 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -16795,10 +16989,10 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#delete local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -16808,10 +17002,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|4 end end @@ -16854,60 +17048,61 @@ ) (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -16922,6 +17117,7 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $2 i32.const -2 i32.and @@ -16930,9 +17126,7 @@ end end i32.const 0 - local.set $0 end - local.get $0 i32.const 0 i32.ne ) @@ -16941,8 +17135,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i32) + (local $6 i32) + (local $7 i64) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer @@ -16961,26 +17155,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $8 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -16988,38 +17182,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $8 + local.tee $4 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $4 + local.set $9 local.get $3 local.set $2 loop $while-continue|0 local.get $4 - local.get $8 + local.get $9 i32.ne if - local.get $8 + local.get $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 i64.load - local.tee $6 + local.tee $7 i64.store local.get $2 - local.get $8 + local.get $4 i32.load offset=8 i32.store offset=8 local.get $2 - local.get $1 - local.get $6 + local.get $7 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17029,7 +17222,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 + local.get $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17040,34 +17233,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor + local.get $1 i32.and i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add - local.tee $9 + local.tee $5 i32.load i32.store offset=12 - local.get $9 + local.get $5 local.get $2 i32.store local.get $2 @@ -17075,18 +17269,18 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 16 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $6 i32.store local.get $0 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $0 local.get $1 @@ -17098,7 +17292,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $8 i32.store offset=12 local.get $0 local.get $0 @@ -17111,60 +17305,61 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -17179,6 +17374,7 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $2 i32.const -2 i32.and @@ -17187,9 +17383,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1616 @@ -17205,60 +17400,61 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=12 local.tee $3 @@ -17273,6 +17469,7 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -17281,9 +17478,8 @@ end end i32.const 0 - local.set $2 end - local.get $2 + local.tee $2 i32.eqz if return @@ -17339,8 +17535,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i64) + (local $3 i64) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -17350,42 +17546,42 @@ (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i64) + (local $14 i32) (local $15 i32) (local $16 i32) - (local $17 i32) + (local $17 i64) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i64.const 0 i64.store - local.get $3 + local.get $2 i64.const 0 i64.store offset=8 - local.get $3 + local.get $2 i32.const 0 i32.store offset=16 - local.get $3 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 i32.const 0 i32.store - local.get $5 + local.get $4 i32.const 24 i32.const 23 call $~lib/rt/itcms/__new @@ -17394,10 +17590,10 @@ local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $4 i32.store local.get $5 - local.get $0 + local.get $4 call $~lib/rt/itcms/__link local.get $5 i32.const 3 @@ -17405,10 +17601,10 @@ local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $4 i32.store offset=8 local.get $5 - local.get $0 + local.get $4 call $~lib/rt/itcms/__link local.get $5 i32.const 4 @@ -17423,16 +17619,16 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 local.get $5 i32.store loop $for-loop|0 - local.get $4 + local.get $3 i64.const 100 i64.lt_u if local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -17443,14 +17639,14 @@ unreachable end local.get $5 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17462,9 +17658,9 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -17477,10 +17673,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|0 end end @@ -17497,14 +17693,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 + local.get $3 i64.const 100 i64.lt_u if local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17516,9 +17712,9 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 10 i32.add @@ -17532,14 +17728,14 @@ unreachable end local.get $5 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17551,9 +17747,9 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -17566,10 +17762,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|1 end end @@ -17586,39 +17782,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $2 i32.const 0 i32.store local.get $5 i32.load offset=8 - local.set $12 + local.set $0 local.get $5 i32.load offset=16 - local.tee $13 - local.set $3 - local.get $7 + local.tee $7 + local.set $9 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i64.const 0 i64.store - local.get $0 + local.get $4 i32.const 16 i32.const 24 call $~lib/rt/itcms/__new @@ -17639,7 +17835,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $3 + local.get $9 i32.const 134217727 i32.gt_u if @@ -17651,55 +17847,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $9 i32.const 8 - local.get $3 + local.get $9 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $10 i32.store offset=4 - local.get $0 - local.get $9 + local.get $10 + local.get $4 call $~lib/memory/memory.fill local.get $6 - local.get $0 + local.get $10 i32.store local.get $6 - local.get $0 + local.get $10 call $~lib/rt/itcms/__link local.get $6 - local.get $0 + local.get $10 i32.store offset=4 local.get $6 - local.get $9 + local.get $4 i32.store offset=8 local.get $6 - local.get $3 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $2 local.get $6 i32.store loop $for-loop|01 - local.get $2 - local.get $13 - i32.lt_s + local.get $7 + local.get $12 + i32.gt_s if - local.get $2 + local.get $12 i32.const 4 i32.shl - local.get $12 + local.get $0 i32.add - local.tee $3 + local.tee $2 i32.load offset=12 i32.const 1 i32.and @@ -17707,7 +17903,7 @@ if local.get $6 local.get $1 - local.get $3 + local.get $2 i64.load call $~lib/array/Array#__set local.get $1 @@ -17715,10 +17911,10 @@ i32.add local.set $1 end - local.get $2 + local.get $12 i32.const 1 i32.add - local.set $2 + local.set $12 br $for-loop|01 end end @@ -17739,7 +17935,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 call $~lib/map/Map#values - local.tee $13 + local.tee $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17749,64 +17945,64 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.const 25 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store - local.get $3 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store - local.get $3 - local.get $1 + local.get $4 + local.get $2 call $~lib/rt/itcms/__link - local.get $3 + local.get $4 i32.const 3 i32.store offset=4 - local.get $3 + local.get $4 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $3 - local.get $1 + local.get $4 + local.get $2 call $~lib/rt/itcms/__link - local.get $3 + local.get $4 i32.const 4 i32.store offset=12 - local.get $3 + local.get $4 i32.const 0 i32.store offset=16 - local.get $3 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $15 i32.store offset=16 loop $for-loop|2 local.get $6 i32.load offset=12 - local.get $10 + local.get $13 i32.gt_s if local.get $6 i32.load offset=12 - local.get $10 + local.get $13 i32.le_u if i32.const 1248 @@ -17818,18 +18014,18 @@ end local.get $6 i32.load offset=4 - local.get $10 + local.get $13 i32.const 3 i32.shl i32.add i64.load - local.set $4 + local.set $3 + local.get $9 local.get $13 - local.get $10 call $~lib/array/Array#__get - local.set $12 + local.set $16 local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -17841,7 +18037,7 @@ unreachable end local.get $5 - local.get $12 + local.get $16 i32.const 20 i32.sub i64.extend_i32_s @@ -17862,13 +18058,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $3 - i32.load local.get $4 + i32.load + local.get $3 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17878,7 +18074,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $4 + local.get $3 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17889,77 +18085,77 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $2 + local.get $2 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $2 + local.get $2 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $2 + local.get $2 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $15 - local.get $3 + local.tee $10 + local.get $4 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $2 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $2 if - local.get $0 + local.get $2 i32.load offset=16 - local.tee $2 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $3 + local.get $2 i64.load i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + local.get $7 i32.const -2 i32.and - local.set $0 + local.set $2 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $2 end - local.get $0 + local.get $2 if - local.get $0 - local.get $4 + local.get $2 + local.get $3 i64.store offset=8 else - local.get $3 + local.get $4 i32.load offset=16 - local.get $3 + local.get $4 i32.load offset=12 i32.eq if - local.get $3 + local.get $4 i32.load offset=20 - local.get $3 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -17967,17 +18163,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $3 + local.get $4 i32.load offset=4 else - local.get $3 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $1 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -17985,67 +18181,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 - local.get $1 + local.get $2 + local.get $7 i32.const 1 i32.add - local.tee $0 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $14 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $1 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $2 i32.store offset=4 - local.get $3 + local.get $4 i32.load offset=8 - local.tee $7 - local.get $3 + local.tee $11 + local.get $4 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $17 + local.set $12 local.get $2 local.set $0 loop $while-continue|00 - local.get $7 - local.get $17 + local.get $11 + local.get $12 i32.ne if - local.get $7 + local.get $11 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $7 + local.get $11 i64.load - local.tee $14 + local.tee $17 i64.store local.get $0 - local.get $7 + local.get $11 i64.load offset=8 i64.store offset=8 local.get $0 - local.get $1 - local.get $14 + local.get $17 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18055,7 +18250,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $14 + local.get $17 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18067,28 +18262,29 @@ i32.const 668265263 i32.mul local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $7 i32.and i32.const 2 i32.shl - local.get $9 + local.get $14 i32.add local.tee $8 i32.load @@ -18101,33 +18297,33 @@ i32.add local.set $0 end - local.get $7 + local.get $11 i32.const 24 i32.add - local.set $7 + local.set $11 br $while-continue|00 end end - local.get $3 - local.get $9 + local.get $4 + local.get $14 i32.store - local.get $3 - local.get $9 + local.get $4 + local.get $14 call $~lib/rt/itcms/__link - local.get $3 - local.get $1 + local.get $4 + local.get $7 i32.store offset=4 - local.get $3 + local.get $4 local.get $2 i32.store offset=8 - local.get $3 + local.get $4 local.get $2 call $~lib/rt/itcms/__link - local.get $3 - local.get $16 + local.get $4 + local.get $1 i32.store offset=12 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -18136,70 +18332,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.load offset=8 - local.tee $0 + local.tee $7 i32.store - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $1 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $1 + local.get $2 i32.const 24 i32.mul - local.get $0 + local.get $7 i32.add - local.tee $0 - local.get $4 - i64.store - local.get $0 - local.get $4 - i64.store offset=8 + local.tee $7 local.get $3 + i64.store + local.get $7 local.get $3 + i64.store offset=8 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $3 + local.get $7 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $15 + local.get $10 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=16 - local.get $1 - local.get $0 + local.get $2 + local.get $7 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 - local.get $12 + local.get $15 + local.get $16 i32.const 20 i32.sub - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 call $~lib/map/Map#set - local.get $10 + local.get $13 i32.const 1 i32.add - local.set $10 + local.set $13 br $for-loop|2 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -18211,7 +18407,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $15 i32.load offset=20 i32.const 100 i32.ne @@ -18224,14 +18420,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|3 - local.get $4 + local.get $3 i64.const 50 i64.lt_u if local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -18243,9 +18439,9 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $4 + local.get $3 i32.wrap_i64 i32.const 20 i32.add @@ -18259,10 +18455,10 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#delete local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18272,10 +18468,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|3 end end @@ -18292,14 +18488,14 @@ unreachable end i64.const 0 - local.set $4 + local.set $3 loop $for-loop|4 - local.get $4 + local.get $3 i64.const 50 i64.lt_u if local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18310,14 +18506,14 @@ unreachable end local.get $5 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -18329,10 +18525,10 @@ unreachable end local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#delete local.get $5 - local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -18342,10 +18538,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i64.const 1 i64.add - local.set $4 + local.set $3 br $for-loop|4 end end @@ -18389,12 +18585,12 @@ (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 f32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18411,26 +18607,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $6 + local.tee $7 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18438,37 +18634,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $8 + local.tee $4 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $5 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 + local.get $4 local.get $8 i32.ne if - local.get $8 + local.get $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $4 f32.load - local.tee $4 + local.tee $9 f32.store local.get $2 - local.get $8 + local.get $4 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $4 + local.get $9 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18478,35 +18674,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor local.get $1 i32.and i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add - local.tee $9 + local.tee $5 i32.load i32.store offset=8 - local.get $9 + local.get $5 local.get $2 i32.store local.get $2 @@ -18514,18 +18710,18 @@ i32.add local.set $2 end - local.get $8 + local.get $4 i32.const 12 i32.add - local.set $8 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $6 i32.store local.get $0 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $0 local.get $1 @@ -18537,7 +18733,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $6 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -18550,49 +18746,50 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 f32) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 local.tee $2 @@ -18607,6 +18804,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $2 i32.const -2 i32.and @@ -18615,9 +18813,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1616 @@ -18633,49 +18830,50 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -18690,6 +18888,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -18698,9 +18897,8 @@ end end i32.const 0 - local.set $2 end - local.get $2 + local.tee $2 i32.eqz if return @@ -18756,103 +18954,103 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) + (local $8 f32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 f32) + (local $14 i32) (local $15 i32) (local $16 i32) - (local $17 i32) + (local $17 f32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i64.const 0 i64.store - local.get $1 + local.get $4 i64.const 0 i64.store offset=8 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $16 i32.const 0 i32.store - local.get $5 + local.get $16 i32.const 24 i32.const 26 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $16 i32.store - local.get $4 + local.get $16 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $3 i32.store - local.get $4 - local.get $5 + local.get $16 + local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $16 i32.const 3 i32.store offset=4 - local.get $4 + local.get $16 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $3 i32.store offset=8 - local.get $4 - local.get $5 + local.get $16 + local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $16 i32.const 4 i32.store offset=12 - local.get $4 + local.get $16 i32.const 0 i32.store offset=16 - local.get $4 + local.get $16 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $4 + local.get $16 i32.store loop $for-loop|0 - local.get $3 + local.get $17 f32.const 100 f32.lt if - local.get $4 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18862,60 +19060,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 i32.load offset=8 - local.tee $6 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $17 + local.get $4 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $6 + local.get $1 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $4 end - local.get $1 + local.get $4 if i32.const 0 i32.const 1568 @@ -18924,18 +19122,18 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $3 + local.get $16 + local.get $17 + local.get $17 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18945,60 +19143,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 i32.load offset=8 - local.tee $6 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $17 + local.get $4 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $6 + local.get $1 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $1 + local.set $4 end - local.get $1 + local.get $4 i32.eqz if i32.const 0 @@ -19008,10 +19206,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $16 + local.get $17 call $~lib/map/Map#get - local.get $3 + local.get $17 i32.trunc_f32_s i32.const 10 i32.add @@ -19024,14 +19222,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $17 f32.const 1 f32.add - local.set $3 + local.set $17 br $for-loop|0 end end - local.get $4 + local.get $16 i32.load offset=20 i32.const 100 i32.ne @@ -19044,17 +19242,17 @@ unreachable end f32.const 0 - local.set $3 + local.set $17 loop $for-loop|1 - local.get $3 + local.get $17 f32.const 100 f32.lt if - local.get $4 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19064,60 +19262,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 i32.load offset=8 - local.tee $6 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $17 + local.get $4 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $6 + local.get $1 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $1 + local.set $4 end - local.get $1 + local.get $4 i32.eqz if i32.const 0 @@ -19127,10 +19325,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $16 + local.get $17 call $~lib/map/Map#get - local.get $3 + local.get $17 i32.trunc_f32_s i32.const 10 i32.add @@ -19143,18 +19341,18 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $3 + local.get $16 + local.get $17 + local.get $17 i32.trunc_f32_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $4 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19164,60 +19362,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 i32.load offset=8 - local.tee $6 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $17 + local.get $4 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $6 + local.get $1 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $1 + local.set $4 end - local.get $1 + local.get $4 i32.eqz if i32.const 0 @@ -19227,10 +19425,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $16 + local.get $17 call $~lib/map/Map#get - local.get $3 + local.get $17 i32.trunc_f32_s i32.const 20 i32.add @@ -19243,14 +19441,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $17 f32.const 1 f32.add - local.set $3 + local.set $17 br $for-loop|1 end end - local.get $4 + local.get $16 i32.load offset=20 i32.const 100 i32.ne @@ -19263,60 +19461,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $4 i32.const 0 i32.store - local.get $4 + local.get $16 i32.load offset=8 - local.set $12 - local.get $4 + local.set $10 + local.get $16 i32.load offset=16 - local.tee $13 - local.set $1 - local.get $7 + local.tee $9 + local.set $3 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 i64.const 0 i64.store - local.get $5 + local.get $1 i32.const 16 i32.const 27 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $15 i32.store - local.get $6 + local.get $15 i32.const 0 i32.store - local.get $6 + local.get $15 i32.const 0 call $~lib/rt/itcms/__link - local.get $6 + local.get $15 i32.const 0 i32.store offset=4 - local.get $6 + local.get $15 i32.const 0 i32.store offset=8 - local.get $6 + local.get $15 i32.const 0 i32.store offset=12 - local.get $1 + local.get $3 i32.const 268435455 i32.gt_u if @@ -19328,74 +19526,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.const 8 - local.get $1 + local.get $3 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $9 + local.tee $12 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store offset=4 - local.get $5 - local.get $9 + local.get $1 + local.get $12 call $~lib/memory/memory.fill - local.get $6 - local.get $5 + local.get $15 + local.get $1 i32.store - local.get $6 - local.get $5 + local.get $15 + local.get $1 call $~lib/rt/itcms/__link - local.get $6 - local.get $5 + local.get $15 + local.get $1 i32.store offset=4 - local.get $6 - local.get $9 + local.get $15 + local.get $12 i32.store offset=8 - local.get $6 - local.get $1 + local.get $15 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $6 + local.get $4 + local.get $15 i32.store loop $for-loop|01 - local.get $2 - local.get $13 - i32.lt_s + local.get $9 + local.get $14 + i32.gt_s if - local.get $2 + local.get $14 i32.const 12 i32.mul - local.get $12 + local.get $10 i32.add - local.tee $5 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 + local.get $2 + local.tee $4 i32.const 1 i32.add - local.set $0 - local.get $5 + local.set $2 + local.get $3 f32.load - local.set $3 - local.get $6 + local.set $17 + local.get $15 i32.load offset=12 - local.get $1 + local.get $4 i32.le_u if - local.get $1 + local.get $4 i32.const 0 i32.lt_s if @@ -19406,52 +19604,52 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $15 + local.get $4 i32.const 1 i32.add - local.tee $5 + local.tee $3 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity - local.get $6 - local.get $5 + local.get $15 + local.get $3 i32.store offset=12 end - local.get $6 + local.get $15 i32.load offset=4 - local.get $1 + local.get $4 i32.const 2 i32.shl i32.add - local.get $3 + local.get $17 f32.store end - local.get $2 + local.get $14 i32.const 1 i32.add - local.set $2 + local.set $14 br $for-loop|01 end end - local.get $6 - local.get $0 + local.get $15 + local.get $2 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 - local.get $0 + local.get $15 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $15 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $16 call $~lib/map/Map#values - local.tee $13 + local.tee $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -19461,65 +19659,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 i32.const 24 i32.const 28 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $3 i32.store - local.get $1 - local.get $5 + local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 i32.const 3 i32.store offset=4 - local.get $1 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $3 i32.store offset=8 - local.get $1 - local.get $5 + local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 i32.const 4 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $6 + local.get $15 i32.load offset=12 - local.get $10 + local.get $0 i32.gt_s if - local.get $6 + local.get $0 + local.tee $1 + local.get $15 i32.load offset=12 - local.get $10 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -19528,23 +19727,23 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $15 i32.load offset=4 - local.get $10 + local.get $1 i32.const 2 i32.shl i32.add f32.load - local.set $3 - local.get $13 - local.get $10 + local.set $17 + local.get $9 + local.get $1 call $~lib/array/Array#__get - local.set $12 - local.get $4 + local.set $10 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19555,23 +19754,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -19585,19 +19784,19 @@ if local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $17 local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $0 @@ -19617,15 +19816,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $12 + local.get $10 i32.const 20 i32.sub f32.convert_i32_s - local.tee $14 + local.tee $8 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19636,23 +19835,23 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 @@ -19666,19 +19865,19 @@ if local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $14 + local.get $8 local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $0 @@ -19705,13 +19904,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $4 i32.load - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19722,26 +19921,26 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $15 - local.get $1 + local.tee $7 + local.get $4 i32.load offset=4 i32.and i32.const 2 @@ -19755,19 +19954,19 @@ if local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $17 local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $2 + local.get $3 i32.const -2 i32.and local.set $0 @@ -19780,18 +19979,18 @@ local.get $0 if local.get $0 - local.get $3 + local.get $17 f32.store offset=4 else - local.get $1 + local.get $4 i32.load offset=16 - local.get $1 + local.get $4 i32.load offset=12 i32.eq if - local.get $1 + local.get $4 i32.load offset=20 - local.get $1 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -19799,17 +19998,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $1 + local.get $4 i32.load offset=4 else - local.get $1 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -19817,20 +20016,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $5 + local.get $2 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $12 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -19838,45 +20037,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $1 + local.get $4 i32.load offset=8 - local.tee $7 - local.get $1 + local.tee $14 + local.get $4 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $17 - local.get $2 + local.set $5 + local.get $3 local.set $0 loop $while-continue|017 - local.get $7 - local.get $17 + local.get $5 + local.get $14 i32.ne if - local.get $7 + local.get $14 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $7 + local.get $14 f32.load - local.tee $14 + local.tee $8 f32.store local.get $0 - local.get $7 + local.get $14 f32.load offset=4 f32.store offset=4 local.get $0 - local.get $14 + local.get $8 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19886,35 +20085,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 + local.tee $13 + local.get $13 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul - local.tee $8 + local.tee $13 + local.get $13 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul - local.tee $8 + local.tee $13 + local.get $13 i32.const 16 i32.shr_u - local.get $8 i32.xor - local.get $5 + local.get $2 i32.and i32.const 2 i32.shl - local.get $9 + local.get $12 i32.add - local.tee $8 + local.tee $13 i32.load i32.store offset=8 - local.get $8 + local.get $13 local.get $0 i32.store local.get $0 @@ -19922,33 +20121,33 @@ i32.add local.set $0 end - local.get $7 + local.get $14 i32.const 12 i32.add - local.set $7 + local.set $14 br $while-continue|017 end end - local.get $1 - local.get $9 + local.get $4 + local.get $12 i32.store - local.get $1 - local.get $9 + local.get $4 + local.get $12 call $~lib/rt/itcms/__link - local.get $1 - local.get $5 - i32.store offset=4 - local.get $1 + local.get $4 local.get $2 + i32.store offset=4 + local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $2 + local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 - local.get $16 + local.get $4 + local.get $6 i32.store offset=12 - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -19957,48 +20156,48 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.load offset=8 local.tee $0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $5 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $2 i32.const 12 i32.mul local.get $0 i32.add local.tee $0 - local.get $3 + local.get $17 f32.store local.get $0 - local.get $3 + local.get $17 f32.store offset=4 - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $1 + local.get $4 i32.load - local.get $1 + local.get $4 i32.load offset=4 - local.get $15 + local.get $7 i32.and i32.const 2 i32.shl i32.add - local.tee $5 + local.tee $2 i32.load i32.store offset=8 - local.get $5 + local.get $2 local.get $0 i32.store end @@ -20007,20 +20206,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $11 - local.get $12 + local.get $10 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $10 + local.get $1 i32.const 1 i32.add - local.set $10 + local.set $0 br $for-loop|2 end end - local.get $1 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -20045,17 +20244,17 @@ unreachable end f32.const 0 - local.set $3 + local.set $17 loop $for-loop|3 - local.get $3 + local.get $17 f32.const 50 f32.lt if - local.get $4 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20065,60 +20264,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $4 block $__inlined_func$~lib/map/Map#find19 loop $while-continue|020 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 i32.load offset=8 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $17 + local.get $4 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $5 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|020 end end i32.const 0 - local.set $1 + local.set $4 end - local.get $1 + local.get $4 i32.eqz if i32.const 0 @@ -20128,10 +20327,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $16 + local.get $17 call $~lib/map/Map#get - local.get $3 + local.get $17 i32.trunc_f32_s i32.const 20 i32.add @@ -20144,14 +20343,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $16 + local.get $17 call $~lib/map/Map#delete - local.get $4 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20161,60 +20360,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $4 block $__inlined_func$~lib/map/Map#find22 loop $while-continue|023 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 i32.load offset=8 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $17 + local.get $4 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $5 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|023 end end i32.const 0 - local.set $1 + local.set $4 end - local.get $1 + local.get $4 if i32.const 0 i32.const 1568 @@ -20223,14 +20422,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $17 f32.const 1 f32.add - local.set $3 + local.set $17 br $for-loop|3 end end - local.get $4 + local.get $16 i32.load offset=20 i32.const 50 i32.ne @@ -20243,17 +20442,17 @@ unreachable end f32.const 0 - local.set $3 + local.set $17 loop $for-loop|4 - local.get $3 + local.get $17 f32.const 50 f32.lt if - local.get $4 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20263,60 +20462,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $4 block $__inlined_func$~lib/map/Map#find25 loop $while-continue|026 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 i32.load offset=8 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $17 + local.get $4 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $5 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|026 end end i32.const 0 - local.set $1 + local.set $4 end - local.get $1 + local.get $4 if i32.const 0 i32.const 1568 @@ -20325,18 +20524,18 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $3 + local.get $16 + local.get $17 + local.get $17 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20346,60 +20545,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $4 block $__inlined_func$~lib/map/Map#find28 loop $while-continue|029 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 i32.load offset=8 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $17 + local.get $4 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $5 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|029 end end i32.const 0 - local.set $1 + local.set $4 end - local.get $1 + local.get $4 i32.eqz if i32.const 0 @@ -20409,14 +20608,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $16 + local.get $17 call $~lib/map/Map#delete - local.get $4 + local.get $16 i32.load - local.get $4 + local.get $16 i32.load offset=4 - local.get $3 + local.get $17 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20426,60 +20625,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $4 + local.get $4 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $4 block $__inlined_func$~lib/map/Map#find31 loop $while-continue|032 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 i32.load offset=8 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $17 + local.get $4 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find31 - local.get $5 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|032 end end i32.const 0 - local.set $1 + local.set $4 end - local.get $1 + local.get $4 if i32.const 0 i32.const 1568 @@ -20488,14 +20687,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $17 f32.const 1 f32.add - local.set $3 + local.set $17 br $for-loop|4 end end - local.get $4 + local.get $16 i32.load offset=20 i32.const 50 i32.ne @@ -20507,9 +20706,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $16 call $~lib/map/Map#clear - local.get $4 + local.get $16 i32.load offset=20 if i32.const 0 @@ -20535,62 +20734,63 @@ (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=12 local.tee $3 @@ -20605,6 +20805,7 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -20613,22 +20814,20 @@ end end i32.const 0 - local.set $0 end - local.get $0 i32.const 0 i32.ne ) (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) + (local $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) + (local $9 f64) + (local $10 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -20645,21 +20844,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 3 i32.shl i32.const 3 @@ -20672,40 +20871,39 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $9 + local.tee $4 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $6 + local.set $8 local.get $3 local.set $2 loop $while-continue|0 - local.get $6 - local.get $9 + local.get $4 + local.get $8 i32.ne if - local.get $9 + local.get $4 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $9 + local.get $4 f64.load - local.tee $5 + local.tee $9 f64.store local.get $2 - local.get $9 + local.get $4 i32.load offset=8 i32.store offset=8 local.get $2 - local.get $1 - local.get $5 + local.get $9 i64.reinterpret_f64 - local.tee $4 + local.tee $10 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20715,7 +20913,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $4 + local.get $10 i64.const 32 i64.shr_u i32.wrap_i64 @@ -20726,34 +20924,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $10 - local.get $10 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $10 - local.get $10 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $10 - local.get $10 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor + local.get $1 i32.and i32.const 2 i32.shl - local.get $8 + local.get $6 i32.add - local.tee $10 + local.tee $5 i32.load i32.store offset=12 - local.get $10 + local.get $5 local.get $2 i32.store local.get $2 @@ -20761,18 +20960,18 @@ i32.add local.set $2 end - local.get $9 + local.get $4 i32.const 16 i32.add - local.set $9 + local.set $4 br $while-continue|0 end end local.get $0 - local.get $8 + local.get $6 i32.store local.get $0 - local.get $8 + local.get $6 call $~lib/rt/itcms/__link local.get $0 local.get $1 @@ -20798,62 +20997,63 @@ (func $~lib/map/Map#get (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=12 local.tee $3 @@ -20868,6 +21068,7 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -20876,9 +21077,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1616 @@ -20895,62 +21095,63 @@ (local $2 i32) (local $3 i32) (local $4 i64) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $4 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=12 local.tee $3 @@ -20965,6 +21166,7 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $3 i32.const -2 i32.and @@ -20973,9 +21175,8 @@ end end i32.const 0 - local.set $2 end - local.get $2 + local.tee $2 i32.eqz if return @@ -21031,18 +21232,18 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f64) + (local $3 i32) (local $4 i32) - (local $5 i32) + (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i64) + (local $14 i32) (local $15 i32) (local $16 i32) (local $17 i32) @@ -21051,81 +21252,81 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i64.const 0 i64.store - local.get $1 + local.get $4 i64.const 0 i64.store offset=8 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $17 i32.const 0 i32.store - local.get $5 + local.get $17 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $17 i32.store - local.get $4 + local.get $17 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store - local.get $4 - local.get $5 + local.tee $3 + i32.store + local.get $17 + local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $17 i32.const 3 i32.store offset=4 - local.get $4 + local.get $17 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $3 i32.store offset=8 - local.get $4 - local.get $5 + local.get $17 + local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $17 i32.const 4 i32.store offset=12 - local.get $4 + local.get $17 i32.const 0 i32.store offset=16 - local.get $4 + local.get $17 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $4 + local.get $17 i32.store loop $for-loop|0 - local.get $3 + local.get $18 f64.const 100 f64.lt if - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#has if i32.const 0 @@ -21135,15 +21336,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $3 + local.get $17 + local.get $18 + local.get $18 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#has i32.eqz if @@ -21154,10 +21355,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#get - local.get $3 + local.get $18 i32.trunc_f64_s i32.const 10 i32.add @@ -21170,14 +21371,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $18 f64.const 1 f64.add - local.set $3 + local.set $18 br $for-loop|0 end end - local.get $4 + local.get $17 i32.load offset=20 i32.const 100 i32.ne @@ -21190,14 +21391,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $18 loop $for-loop|1 - local.get $3 + local.get $18 f64.const 100 f64.lt if - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#has i32.eqz if @@ -21208,10 +21409,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#get - local.get $3 + local.get $18 i32.trunc_f64_s i32.const 10 i32.add @@ -21224,15 +21425,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $3 + local.get $17 + local.get $18 + local.get $18 i32.trunc_f64_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#has i32.eqz if @@ -21243,10 +21444,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#get - local.get $3 + local.get $18 i32.trunc_f64_s i32.const 20 i32.add @@ -21259,14 +21460,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $18 f64.const 1 f64.add - local.set $3 + local.set $18 br $for-loop|1 end end - local.get $4 + local.get $17 i32.load offset=20 i32.const 100 i32.ne @@ -21279,60 +21480,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $4 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $7 + local.tee $4 i32.const 0 i32.store - local.get $4 + local.get $17 i32.load offset=8 - local.set $12 - local.get $4 + local.set $11 + local.get $17 i32.load offset=16 - local.tee $13 - local.set $1 - local.get $7 + local.tee $10 + local.set $3 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $1 i64.const 0 i64.store - local.get $5 + local.get $1 i32.const 16 i32.const 30 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $16 i32.store - local.get $6 + local.get $16 i32.const 0 i32.store - local.get $6 + local.get $16 i32.const 0 call $~lib/rt/itcms/__link - local.get $6 + local.get $16 i32.const 0 i32.store offset=4 - local.get $6 + local.get $16 i32.const 0 i32.store offset=8 - local.get $6 + local.get $16 i32.const 0 i32.store offset=12 - local.get $1 + local.get $3 i32.const 134217727 i32.gt_u if @@ -21344,74 +21545,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.const 8 - local.get $1 + local.get $3 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $13 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store offset=4 - local.get $5 - local.get $9 + local.get $1 + local.get $13 call $~lib/memory/memory.fill - local.get $6 - local.get $5 + local.get $16 + local.get $1 i32.store - local.get $6 - local.get $5 + local.get $16 + local.get $1 call $~lib/rt/itcms/__link - local.get $6 - local.get $5 + local.get $16 + local.get $1 i32.store offset=4 - local.get $6 - local.get $9 + local.get $16 + local.get $13 i32.store offset=8 - local.get $6 - local.get $1 + local.get $16 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $6 + local.get $4 + local.get $16 i32.store loop $for-loop|01 - local.get $2 - local.get $13 - i32.lt_s + local.get $10 + local.get $15 + i32.gt_s if - local.get $2 + local.get $15 i32.const 4 i32.shl - local.get $12 + local.get $11 i32.add - local.tee $5 + local.tee $3 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $0 - local.tee $1 + local.get $2 + local.tee $4 i32.const 1 i32.add - local.set $0 - local.get $5 + local.set $2 + local.get $3 f64.load - local.set $3 - local.get $6 + local.set $18 + local.get $16 i32.load offset=12 - local.get $1 + local.get $4 i32.le_u if - local.get $1 + local.get $4 i32.const 0 i32.lt_s if @@ -21422,52 +21623,52 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $1 + local.get $16 + local.get $4 i32.const 1 i32.add - local.tee $5 + local.tee $3 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $6 - local.get $5 + local.get $16 + local.get $3 i32.store offset=12 end - local.get $6 + local.get $16 i32.load offset=4 - local.get $1 + local.get $4 i32.const 3 i32.shl i32.add - local.get $3 + local.get $18 f64.store end - local.get $2 + local.get $15 i32.const 1 i32.add - local.set $2 + local.set $15 br $for-loop|01 end end - local.get $6 - local.get $0 + local.get $16 + local.get $2 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 - local.get $0 + local.get $16 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $16 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $17 call $~lib/map/Map#values - local.tee $13 + local.tee $10 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21477,65 +21678,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i32.const 0 i32.store - local.get $1 + local.get $4 i32.const 24 i32.const 31 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $3 i32.store - local.get $1 - local.get $5 + local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 i32.const 3 i32.store offset=4 - local.get $1 + local.get $4 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 + local.tee $3 i32.store offset=8 - local.get $1 - local.get $5 + local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 i32.const 4 i32.store offset=12 - local.get $1 + local.get $4 i32.const 0 i32.store offset=16 - local.get $1 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $11 + local.tee $12 i32.store offset=16 loop $for-loop|2 - local.get $6 + local.get $16 i32.load offset=12 - local.get $10 + local.get $0 i32.gt_s if - local.get $6 + local.get $0 + local.tee $1 + local.get $16 i32.load offset=12 - local.get $10 - i32.le_u + i32.ge_u if i32.const 1248 i32.const 1728 @@ -21544,20 +21746,20 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $16 i32.load offset=4 - local.get $10 + local.get $1 i32.const 3 i32.shl i32.add f64.load - local.set $3 - local.get $13 + local.set $18 local.get $10 + local.get $1 call $~lib/array/Array#__get - local.set $12 - local.get $4 - local.get $3 + local.set $11 + local.get $17 + local.get $18 call $~lib/map/Map#has i32.eqz if @@ -21568,8 +21770,8 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $12 + local.get $17 + local.get $11 i32.const 20 i32.sub f64.convert_i32_s @@ -21590,15 +21792,15 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $4 i32.load - local.get $3 + local.get $18 i64.reinterpret_f64 - local.tee $14 + local.tee $9 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21608,7 +21810,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $14 + local.get $9 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21620,26 +21822,26 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $15 - local.get $1 + local.tee $8 + local.get $4 i32.load offset=4 i32.and i32.const 2 @@ -21653,19 +21855,19 @@ if local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $18 local.get $0 f64.load f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + local.get $3 i32.const -2 i32.and local.set $0 @@ -21678,18 +21880,18 @@ local.get $0 if local.get $0 - local.get $3 + local.get $18 f64.store offset=8 else - local.get $1 + local.get $4 i32.load offset=16 - local.get $1 + local.get $4 i32.load offset=12 i32.eq if - local.get $1 + local.get $4 i32.load offset=20 - local.get $1 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -21697,17 +21899,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $1 + local.get $4 i32.load offset=4 else - local.get $1 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $5 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21715,20 +21917,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $5 + local.get $2 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $13 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -21736,48 +21938,47 @@ i32.shl i32.const 3 i32.div_s - local.tee $16 + local.tee $7 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $1 + local.get $4 i32.load offset=8 - local.tee $7 - local.get $1 + local.tee $15 + local.get $4 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $17 - local.get $2 + local.set $6 + local.get $3 local.set $0 loop $while-continue|00 - local.get $7 - local.get $17 + local.get $6 + local.get $15 i32.ne if - local.get $7 + local.get $15 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $7 + local.get $15 f64.load - local.tee $18 + local.tee $5 f64.store local.get $0 - local.get $7 + local.get $15 f64.load offset=8 f64.store offset=8 local.get $0 local.get $5 - local.get $18 i64.reinterpret_f64 - local.tee $14 + local.tee $9 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21787,7 +21988,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $14 + local.get $9 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21798,34 +21999,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 + local.tee $14 + local.get $14 i32.const 15 i32.shr_u - local.get $8 i32.xor i32.const -2048144777 i32.mul - local.tee $8 + local.tee $14 + local.get $14 i32.const 13 i32.shr_u - local.get $8 i32.xor i32.const -1028477379 i32.mul - local.tee $8 + local.tee $14 + local.get $14 i32.const 16 i32.shr_u - local.get $8 i32.xor + local.get $2 i32.and i32.const 2 i32.shl - local.get $9 + local.get $13 i32.add - local.tee $8 + local.tee $14 i32.load i32.store offset=16 - local.get $8 + local.get $14 local.get $0 i32.store local.get $0 @@ -21833,33 +22035,33 @@ i32.add local.set $0 end - local.get $7 + local.get $15 i32.const 24 i32.add - local.set $7 + local.set $15 br $while-continue|00 end end - local.get $1 - local.get $9 + local.get $4 + local.get $13 i32.store - local.get $1 - local.get $9 + local.get $4 + local.get $13 call $~lib/rt/itcms/__link - local.get $1 - local.get $5 - i32.store offset=4 - local.get $1 + local.get $4 local.get $2 + i32.store offset=4 + local.get $4 + local.get $3 i32.store offset=8 - local.get $1 - local.get $2 + local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 - local.get $16 + local.get $4 + local.get $7 i32.store offset=12 - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -21868,48 +22070,48 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.load offset=8 local.tee $0 i32.store - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $5 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $5 + local.get $2 i32.const 24 i32.mul local.get $0 i32.add local.tee $0 - local.get $3 + local.get $18 f64.store local.get $0 - local.get $3 + local.get $18 f64.store offset=8 - local.get $1 - local.get $1 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $1 + local.get $4 i32.load - local.get $1 + local.get $4 i32.load offset=4 - local.get $15 + local.get $8 i32.and i32.const 2 i32.shl i32.add - local.tee $5 + local.tee $2 i32.load i32.store offset=16 - local.get $5 + local.get $2 local.get $0 i32.store end @@ -21917,21 +22119,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 local.get $12 + local.get $11 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $10 + local.get $1 i32.const 1 i32.add - local.set $10 + local.set $0 br $for-loop|2 end end - local.get $1 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -21943,7 +22145,7 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $12 i32.load offset=20 i32.const 100 i32.ne @@ -21956,14 +22158,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $18 loop $for-loop|3 - local.get $3 + local.get $18 f64.const 50 f64.lt if - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#has i32.eqz if @@ -21974,10 +22176,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#get - local.get $3 + local.get $18 i32.trunc_f64_s i32.const 20 i32.add @@ -21990,11 +22192,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#delete - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#has if i32.const 0 @@ -22004,14 +22206,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $18 f64.const 1 f64.add - local.set $3 + local.set $18 br $for-loop|3 end end - local.get $4 + local.get $17 i32.load offset=20 i32.const 50 i32.ne @@ -22024,14 +22226,14 @@ unreachable end f64.const 0 - local.set $3 + local.set $18 loop $for-loop|4 - local.get $3 + local.get $18 f64.const 50 f64.lt if - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#has if i32.const 0 @@ -22041,15 +22243,15 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 - local.get $3 + local.get $17 + local.get $18 + local.get $18 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#has i32.eqz if @@ -22060,11 +22262,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#delete - local.get $4 - local.get $3 + local.get $17 + local.get $18 call $~lib/map/Map#has if i32.const 0 @@ -22074,14 +22276,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $18 f64.const 1 f64.add - local.set $3 + local.set $18 br $for-loop|4 end end - local.get $4 + local.get $17 i32.load offset=20 i32.const 50 i32.ne @@ -22093,9 +22295,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $17 call $~lib/map/Map#clear - local.get $4 + local.get $17 i32.load offset=20 if i32.const 0 @@ -22285,6 +22487,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22303,60 +22506,61 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 loop $while-continue|0 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $4 i32.load8_u local.get $3 i32.const 255 @@ -22364,19 +22568,19 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + drop + local.get $6 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $3 if - local.get $1 + local.get $3 local.get $2 i32.store offset=4 else @@ -22412,7 +22616,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.store local.get $0 local.get $0 @@ -22424,12 +22628,12 @@ local.get $4 i32.const 12 i32.mul - local.get $1 - i32.add - local.tee $1 local.get $3 - i32.store8 + i32.add + local.tee $3 local.get $1 + i32.store8 + local.get $3 local.get $2 i32.store offset=4 local.get $0 @@ -22438,7 +22642,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $3 local.get $0 i32.load local.get $0 @@ -22452,7 +22656,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $1 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -22701,6 +22905,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22710,86 +22915,87 @@ i32.lt_s if i32.const 18432 - i32.const 18480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + i32.const 18480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 loop $while-continue|0 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $3 - local.get $1 + local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + drop + local.get $6 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $3 if - local.get $1 + local.get $3 local.get $2 i32.store offset=4 else @@ -22825,7 +23031,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.store local.get $0 local.get $0 @@ -22837,12 +23043,12 @@ local.get $4 i32.const 12 i32.mul - local.get $1 - i32.add - local.tee $1 local.get $3 - i32.store + i32.add + local.tee $3 local.get $1 + i32.store + local.get $3 local.get $2 i32.store offset=4 local.get $0 @@ -22851,7 +23057,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $3 local.get $0 i32.load local.get $0 @@ -22865,7 +23071,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $1 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -22877,6 +23083,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22895,61 +23102,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 loop $while-continue|0 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $4 i32.load8_u local.get $3 i32.const 255 @@ -22957,19 +23165,19 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + drop + local.get $6 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $3 if - local.get $1 + local.get $3 local.get $2 i32.store offset=4 else @@ -23005,7 +23213,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.store local.get $0 local.get $0 @@ -23017,12 +23225,12 @@ local.get $4 i32.const 12 i32.mul - local.get $1 - i32.add - local.tee $1 local.get $3 - i32.store8 + i32.add + local.tee $3 local.get $1 + i32.store8 + local.get $3 local.get $2 i32.store offset=4 local.get $0 @@ -23031,7 +23239,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $3 local.get $0 i32.load local.get $0 @@ -23045,7 +23253,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $1 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -23057,6 +23265,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23075,60 +23284,61 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 loop $while-continue|0 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $4 i32.load16_u local.get $3 i32.const 65535 @@ -23136,19 +23346,19 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + drop + local.get $6 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $3 if - local.get $1 + local.get $3 local.get $2 i32.store offset=4 else @@ -23184,7 +23394,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.store local.get $0 local.get $0 @@ -23196,12 +23406,12 @@ local.get $4 i32.const 12 i32.mul - local.get $1 - i32.add - local.tee $1 local.get $3 - i32.store16 + i32.add + local.tee $3 local.get $1 + i32.store16 + local.get $3 local.get $2 i32.store offset=4 local.get $0 @@ -23210,7 +23420,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $3 local.get $0 i32.load local.get $0 @@ -23224,7 +23434,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $1 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -23236,6 +23446,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23254,61 +23465,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 loop $while-continue|0 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $4 i32.load16_u local.get $3 i32.const 65535 @@ -23316,19 +23528,19 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + drop + local.get $6 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $3 if - local.get $1 + local.get $3 local.get $2 i32.store offset=4 else @@ -23364,7 +23576,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.store local.get $0 local.get $0 @@ -23376,12 +23588,12 @@ local.get $4 i32.const 12 i32.mul - local.get $1 - i32.add - local.tee $1 local.get $3 - i32.store16 + i32.add + local.tee $3 local.get $1 + i32.store16 + local.get $3 local.get $2 i32.store offset=4 local.get $0 @@ -23390,7 +23602,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $3 local.get $0 i32.load local.get $0 @@ -23404,7 +23616,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $1 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -23416,6 +23628,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23434,77 +23647,78 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 loop $while-continue|0 - local.get $1 + local.get $4 if - local.get $1 + local.get $4 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $3 - local.get $1 + local.get $4 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + drop + local.get $6 i32.const -2 i32.and - local.set $1 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $3 if - local.get $1 + local.get $3 local.get $2 i32.store offset=4 else @@ -23540,7 +23754,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $1 + local.tee $3 i32.store local.get $0 local.get $0 @@ -23552,12 +23766,12 @@ local.get $4 i32.const 12 i32.mul - local.get $1 - i32.add - local.tee $1 local.get $3 - i32.store + i32.add + local.tee $3 local.get $1 + i32.store + local.get $3 local.get $2 i32.store offset=4 local.get $0 @@ -23566,7 +23780,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $1 + local.get $3 local.get $0 i32.load local.get $0 @@ -23580,7 +23794,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $1 + local.get $3 i32.store end global.get $~lib/memory/__stack_pointer @@ -23610,61 +23824,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|0 local.get $3 if + local.get $3 local.get $3 i32.load offset=12 local.tee $4 @@ -23679,6 +23894,7 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $4 i32.const -2 i32.and @@ -23687,9 +23903,8 @@ end end i32.const 0 - local.set $3 end - local.get $3 + local.tee $3 if local.get $3 local.get $2 @@ -23879,61 +24094,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|0 local.get $3 if + local.get $3 local.get $3 i32.load offset=12 local.tee $4 @@ -23948,6 +24164,7 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $4 i32.const -2 i32.and @@ -23956,9 +24173,8 @@ end end i32.const 0 - local.set $3 end - local.get $3 + local.tee $3 if local.get $3 local.get $2 @@ -24066,50 +24282,51 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|0 local.get $3 if + local.get $3 local.get $3 i32.load offset=8 local.tee $4 @@ -24124,6 +24341,7 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $4 i32.const -2 i32.and @@ -24132,9 +24350,8 @@ end end i32.const 0 - local.set $3 end - local.get $3 + local.tee $3 if local.get $3 local.get $2 @@ -24243,63 +24460,64 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load - local.get $1 - i64.reinterpret_f64 - local.tee $5 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $6 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $1 + i64.reinterpret_f64 + local.tee $5 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $6 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|0 local.get $3 if + local.get $3 local.get $3 i32.load offset=12 local.tee $4 @@ -24314,6 +24532,7 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find + drop local.get $4 i32.const -2 i32.and @@ -24322,9 +24541,8 @@ end end i32.const 0 - local.set $3 end - local.get $3 + local.tee $3 if local.get $3 local.get $2 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 29fc606a72..bd6eddcaa3 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1,11 +1,12 @@ (module (type $f64_=>_f64 (func (param f64) (result f64))) (type $f64_f64_f64_=>_i32 (func (param f64 f64 f64) (result i32))) - (type $f32_=>_f32 (func (param f32) (result f32))) (type $f32_f32_f32_=>_i32 (func (param f32 f32 f32) (result i32))) + (type $f32_=>_f32 (func (param f32) (result f32))) (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) - (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) (type $f64_f64_f64_f64_=>_i32 (func (param f64 f64 f64 f64) (result i32))) + (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) + (type $f32_f32_f32_f32_=>_i32 (func (param f32 f32 f32 f32) (result i32))) (type $none_=>_f64 (func (result f64))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) @@ -13,7 +14,6 @@ (type $f64_i32_=>_f64 (func (param f64 i32) (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i64_=>_i32 (func (param i64) (result i32))) - (type $f32_f32_f32_f32_=>_i32 (func (param f32 f32 f32 f32) (result i32))) (type $i64_=>_none (func (param i64))) (type $f64_f64_i32_=>_f64 (func (param f64 f64 i32) (result f64))) (type $f64_=>_none (func (param f64))) @@ -567,14 +567,15 @@ (func $~lib/math/NativeMath.acos (param $0 f64) (result f64) (local $1 f64) (local $2 i32) - (local $3 i32) - (local $4 f64) + (local $3 f64) + (local $4 i32) + (local $5 f64) local.get $0 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $3 + local.tee $4 i32.const 2147483647 i32.and local.tee $2 @@ -590,7 +591,7 @@ i32.or i32.eqz if - local.get $3 + local.get $4 i32.const 31 i32.shr_u if @@ -672,7 +673,7 @@ f64.sub return end - local.get $3 + local.get $4 i32.const 31 i32.shr_u if @@ -741,15 +742,16 @@ f64.const 0.5 f64.mul f64.sub - local.tee $0 + local.tee $1 f64.sqrt - local.tee $4 + local.tee $5 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $1 - local.get $0 + local.tee $3 + local.get $1 + local.tee $0 local.get $0 local.get $0 local.get $0 @@ -790,15 +792,15 @@ f64.const 1 f64.add f64.div - local.get $4 + local.get $5 f64.mul local.get $0 - local.get $1 - local.get $1 + local.get $3 + local.get $3 f64.mul f64.sub - local.get $4 - local.get $1 + local.get $5 + local.get $3 f64.add f64.div f64.add @@ -1828,8 +1830,8 @@ ) (func $~lib/math/NativeMath.asin (param $0 f64) (result f64) (local $1 f64) - (local $2 i32) - (local $3 f64) + (local $2 f64) + (local $3 i32) (local $4 i32) local.get $0 i64.reinterpret_f64 @@ -1839,14 +1841,14 @@ local.tee $4 i32.const 2147483647 i32.and - local.tee $2 + local.tee $3 i32.const 1072693248 i32.ge_u if local.get $0 i64.reinterpret_f64 i32.wrap_i64 - local.get $2 + local.get $3 i32.const 1072693248 i32.sub i32.or @@ -1866,15 +1868,15 @@ f64.div return end - local.get $2 + local.get $3 i32.const 1071644672 i32.lt_u if - local.get $2 + local.get $3 i32.const 1048576 i32.ge_u i32.const 0 - local.get $2 + local.get $3 i32.const 1045430272 i32.lt_u select @@ -1938,10 +1940,11 @@ f64.const 0.5 f64.mul f64.sub - local.tee $0 + local.tee $1 f64.sqrt - local.set $1 - local.get $0 + local.set $2 + local.get $1 + local.tee $0 local.get $0 local.get $0 local.get $0 @@ -1982,15 +1985,15 @@ f64.const 1 f64.add f64.div - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.const 1072640819 i32.ge_u if (result f64) f64.const 1.5707963267948966 - local.get $1 - local.get $1 - local.get $3 + local.get $2 + local.get $2 + local.get $0 f64.mul f64.add f64.const 2 @@ -2000,14 +2003,14 @@ f64.sub else f64.const 0.7853981633974483 - local.get $1 - local.get $1 + local.get $2 + local.get $2 f64.add - local.get $3 + local.get $0 f64.mul f64.const 6.123233995736766e-17 - local.get $0 local.get $1 + local.get $2 i64.reinterpret_f64 i64.const -4294967296 i64.and @@ -2016,7 +2019,7 @@ local.get $0 f64.mul f64.sub - local.get $1 + local.get $2 local.get $0 f64.add f64.div @@ -2842,7 +2845,7 @@ (local $8 i64) (local $9 i32) (local $10 i32) - block $__inlined_func$~lib/math/NativeMath.atan2 + block $__inlined_func$~lib/math/NativeMath.atan2 (result f64) i32.const 1 local.get $0 local.tee $4 @@ -2856,7 +2859,6 @@ local.get $1 local.get $4 f64.add - local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end local.get $4 @@ -2865,90 +2867,92 @@ i64.const 32 i64.shr_u i32.wrap_i64 - local.set $9 + local.set $5 local.get $8 i32.wrap_i64 + local.set $9 local.get $1 i64.reinterpret_f64 local.tee $8 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $5 + local.tee $6 + i32.const 1072693248 + i32.sub local.get $8 i32.wrap_i64 local.tee $10 - local.get $5 - i32.const 1072693248 - i32.sub i32.or i32.eqz if local.get $4 call $~lib/math/NativeMath.atan - local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $5 + local.get $6 i32.const 30 i32.shr_u i32.const 2 i32.and - local.get $9 + local.get $5 i32.const 31 i32.shr_u i32.or + local.set $7 + local.get $6 + i32.const 2147483647 + i32.and local.set $6 local.get $5 i32.const 2147483647 i32.and - local.set $5 + local.tee $5 local.get $9 - i32.const 2147483647 - i32.and - local.tee $7 i32.or i32.eqz if block $break|0 block $case3|0 block $case2|0 - local.get $6 - br_table $__inlined_func$~lib/math/NativeMath.atan2 $__inlined_func$~lib/math/NativeMath.atan2 $case2|0 $case3|0 $break|0 + block $case0|0 + local.get $7 + br_table $case0|0 $case0|0 $case2|0 $case3|0 $break|0 + end + local.get $4 + br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const 3.141592653589793 - local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const -3.141592653589793 - local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end end block $folding-inner0 - local.get $5 + local.get $6 local.get $10 i32.or i32.eqz br_if $folding-inner0 - local.get $5 + local.get $6 i32.const 2146435072 i32.eq if - local.get $7 + local.get $5 i32.const 2146435072 i32.eq if (result f64) f64.const 2.356194490192345 f64.const 0.7853981633974483 - local.get $6 + local.get $7 i32.const 2 i32.and select else f64.const 3.141592653589793 f64.const 0 - local.get $6 + local.get $7 i32.const 2 i32.and select @@ -2956,31 +2960,30 @@ local.tee $4 f64.neg local.get $4 - local.get $6 + local.get $7 i32.const 1 i32.and select - local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end i32.const 1 - local.get $7 + local.get $5 i32.const 2146435072 i32.eq - local.get $7 local.get $5 + local.get $6 i32.const 67108864 i32.add i32.gt_u select br_if $folding-inner0 + local.get $6 local.get $5 - local.get $7 i32.const 67108864 i32.add i32.gt_u i32.const 0 - local.get $6 + local.get $7 i32.const 2 i32.and select @@ -2999,14 +3002,14 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $6 + local.get $7 br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 end + local.get $4 br $__inlined_func$~lib/math/NativeMath.atan2 end local.get $4 f64.neg - local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const 3.141592653589793 @@ -3014,7 +3017,6 @@ f64.const 1.2246467991473532e-16 f64.sub f64.sub - local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end local.get $4 @@ -3022,20 +3024,17 @@ f64.sub f64.const 3.141592653589793 f64.sub - local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end unreachable end f64.const -1.5707963267948966 f64.const 1.5707963267948966 - local.get $6 + local.get $7 i32.const 1 i32.and select - local.set $4 end - local.get $4 local.get $2 local.get $3 call $std/math/check @@ -3050,11 +3049,14 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atan2 (param $0 f32) (param $1 f32) (result f32) - (local $2 i32) - (local $3 i32) + (func $std/math/test_atan2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) (local $4 i32) - block $folding-inner0 + (local $5 i32) + (local $6 i32) + block $__inlined_func$~lib/math/NativeMathf.atan2 (result f32) + local.get $1 + local.get $0 + f32.add i32.const 1 local.get $0 local.get $0 @@ -3063,121 +3065,131 @@ local.get $1 f32.ne select - if - local.get $1 - local.get $0 - f32.add - return - end + br_if $__inlined_func$~lib/math/NativeMathf.atan2 + drop local.get $0 i32.reinterpret_f32 - local.set $3 + local.set $5 local.get $1 i32.reinterpret_f32 - local.tee $4 + local.tee $6 i32.const 1065353216 i32.eq if local.get $0 call $~lib/math/NativeMathf.atan - return + br $__inlined_func$~lib/math/NativeMathf.atan2 end - local.get $4 + local.get $6 i32.const 30 i32.shr_u i32.const 2 i32.and - local.get $3 + local.get $5 i32.const 31 i32.shr_u i32.or - local.set $2 - local.get $4 + local.set $4 + local.get $6 i32.const 2147483647 i32.and - local.set $4 - local.get $3 + local.set $6 + local.get $5 i32.const 2147483647 i32.and - local.tee $3 + local.tee $5 i32.eqz if block $break|0 block $case3|0 block $case2|0 block $case1|0 - local.get $2 + local.get $4 br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0 end local.get $0 - return + br $__inlined_func$~lib/math/NativeMathf.atan2 end f32.const 3.1415927410125732 - return + br $__inlined_func$~lib/math/NativeMathf.atan2 end f32.const -3.1415927410125732 - return + br $__inlined_func$~lib/math/NativeMathf.atan2 end end + f32.const -1.5707963705062866 + f32.const 1.5707963705062866 local.get $4 + i32.const 1 + i32.and + select + local.get $6 i32.eqz - br_if $folding-inner0 - local.get $4 + br_if $__inlined_func$~lib/math/NativeMathf.atan2 + drop + local.get $6 i32.const 2139095040 i32.eq if - local.get $3 + local.get $5 i32.const 2139095040 i32.eq if (result f32) f32.const 2.356194496154785 f32.const 0.7853981852531433 - local.get $2 + local.get $4 i32.const 2 i32.and select local.tee $0 f32.neg local.get $0 - local.get $2 + local.get $4 i32.const 1 i32.and select else f32.const 3.1415927410125732 f32.const 0 - local.get $2 + local.get $4 i32.const 2 i32.and select local.tee $0 f32.neg local.get $0 - local.get $2 + local.get $4 i32.const 1 i32.and select end - return + br $__inlined_func$~lib/math/NativeMathf.atan2 end + f32.const -1.5707963705062866 + f32.const 1.5707963705062866 + local.get $4 i32.const 1 - local.get $3 + i32.and + select + i32.const 1 + local.get $5 i32.const 2139095040 i32.eq - local.get $3 - local.get $4 + local.get $5 + local.get $6 i32.const 218103808 i32.add i32.gt_u select - br_if $folding-inner0 - local.get $4 - local.get $3 + br_if $__inlined_func$~lib/math/NativeMathf.atan2 + drop + local.get $6 + local.get $5 i32.const 218103808 i32.add i32.gt_u i32.const 0 - local.get $2 + local.get $4 i32.const 2 i32.and select @@ -3196,159 +3208,171 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $2 + local.get $4 br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 end local.get $0 - return + br $__inlined_func$~lib/math/NativeMathf.atan2 end local.get $0 f32.neg - return + br $__inlined_func$~lib/math/NativeMathf.atan2 end f32.const 3.1415927410125732 local.get $0 f32.const -8.742277657347586e-08 f32.sub f32.sub - return + br $__inlined_func$~lib/math/NativeMathf.atan2 end local.get $0 f32.const -8.742277657347586e-08 f32.sub f32.const 3.1415927410125732 f32.sub - return + br $__inlined_func$~lib/math/NativeMathf.atan2 end unreachable end - f32.const -1.5707963705062866 - f32.const 1.5707963705062866 local.get $2 - i32.const 1 - i32.and - select + local.get $3 + call $std/math/check ) - (func $~lib/math/NativeMath.cbrt (param $0 f64) (result f64) - (local $1 f64) - (local $2 i32) + (func $std/math/test_cbrt (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) - (local $4 i64) - local.get $0 - i64.reinterpret_f64 - local.tee $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $2 - i32.const 2146435072 - i32.ge_u - if - local.get $0 - local.get $0 - f64.add - return - end - local.get $2 - i32.const 1048576 - i32.lt_u - if (result i32) + (local $4 f64) + (local $5 i32) + (local $6 f64) + (local $7 i64) + block $__inlined_func$~lib/math/NativeMath.cbrt (result f64) local.get $0 - f64.const 18014398509481984 - f64.mul + local.tee $3 i64.reinterpret_f64 - local.tee $4 + local.tee $7 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $2 - i32.eqz + local.tee $5 + i32.const 2146435072 + i32.ge_u if - local.get $0 - return + local.get $3 + local.get $3 + f64.add + br $__inlined_func$~lib/math/NativeMath.cbrt end + local.get $5 + i32.const 1048576 + i32.lt_u + if (result i32) + local.get $3 + local.get $3 + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.tee $7 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $5 + i32.eqz + br_if $__inlined_func$~lib/math/NativeMath.cbrt + drop + local.get $5 + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add + else + local.get $5 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add + end + local.set $5 + local.get $7 + i64.const -9223372036854775808 + i64.and + local.get $5 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + local.tee $6 + local.get $6 + f64.mul + local.get $6 + local.get $3 + f64.div + f64.mul + local.set $4 + local.get $3 + local.get $6 + local.get $4 + local.get $4 + f64.const 1.6214297201053545 + f64.mul + f64.const -1.8849797954337717 + f64.add + f64.mul + f64.const 1.87595182427177 + f64.add + local.get $4 + local.get $4 + f64.mul + local.get $4 + f64.mul + local.get $4 + f64.const 0.14599619288661245 + f64.mul + f64.const -0.758397934778766 + f64.add + f64.mul + f64.add + f64.mul + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.tee $4 + local.get $4 + f64.mul + f64.div + local.set $3 + local.get $4 + local.get $4 + local.get $3 + local.get $4 + f64.sub + local.get $4 + local.get $4 + f64.add + local.get $3 + f64.add + f64.div + f64.mul + f64.add + end + local.get $1 + local.get $2 + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/cbrt + local.get $1 local.get $2 - i32.const 3 - i32.div_u - i32.const 696219795 - i32.add + call $std/math/check else - local.get $2 - i32.const 3 - i32.div_u - i32.const 715094163 - i32.add + i32.const 0 end - local.set $2 - local.get $4 - i64.const -9223372036854775808 - i64.and - local.get $2 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - f64.reinterpret_i64 - local.tee $3 - local.get $3 - f64.mul - local.get $3 - local.get $0 - f64.div - f64.mul - local.set $1 - local.get $0 - local.get $3 - local.get $1 - local.get $1 - f64.const 1.6214297201053545 - f64.mul - f64.const -1.8849797954337717 - f64.add - f64.mul - f64.const 1.87595182427177 - f64.add - local.get $1 - local.get $1 - f64.mul - local.get $1 - f64.mul - local.get $1 - f64.const 0.14599619288661245 - f64.mul - f64.const -0.758397934778766 - f64.add - f64.mul - f64.add - f64.mul - i64.reinterpret_f64 - i64.const 2147483648 - i64.add - i64.const -1073741824 - i64.and - f64.reinterpret_i64 - local.tee $1 - local.get $1 - f64.mul - f64.div - local.set $0 - local.get $1 - local.get $1 - local.get $0 - local.get $1 - f64.sub - local.get $1 - local.get $1 - f64.add - local.get $0 - f64.add - f64.div - f64.mul - f64.add ) (func $std/math/test_cbrtf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 f64) @@ -4414,6 +4438,16 @@ i32.and i64.extend_i32_s local.set $6 + local.get $2 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $2 + i64.load offset=8 + local.set $4 f64.const 8.515303950216386e-20 local.get $0 f64.promote_f32 @@ -4424,21 +4458,12 @@ i32.const 8388608 i32.or i64.extend_i32_s - local.tee $4 + local.tee $3 local.get $2 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $2 i64.load local.get $6 i64.shl - local.get $2 - i64.load offset=8 - local.tee $3 + local.get $4 i64.const 64 local.get $6 i64.sub @@ -4449,7 +4474,7 @@ i64.const 32 i64.gt_u if (result i64) - local.get $3 + local.get $4 local.get $6 i64.const 32 i64.sub @@ -4462,13 +4487,13 @@ i64.shr_u i64.or else - local.get $3 + local.get $4 i64.const 32 local.get $6 i64.sub i64.shr_u end - local.get $4 + local.get $3 i64.mul i64.const 32 i64.shr_u @@ -4476,7 +4501,7 @@ local.tee $4 i64.const 2 i64.shl - local.tee $6 + local.tee $3 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y @@ -4484,7 +4509,7 @@ local.get $4 i64.const 62 i64.shr_u - local.get $6 + local.get $3 i64.const 63 i64.shr_u i64.add @@ -4593,8 +4618,8 @@ ) (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64) (local $1 f64) - (local $2 f64) - (local $3 i32) + (local $2 i32) + (local $3 f64) (local $4 f64) (local $5 i32) (local $6 f64) @@ -4662,7 +4687,7 @@ i32.const 1072734898 i32.lt_u select - local.tee $3 + local.tee $2 f64.convert_i32_s local.tee $1 f64.const 0.6931471803691238 @@ -4693,7 +4718,7 @@ local.get $0 f64.const 0.5 f64.mul - local.tee $2 + local.tee $3 f64.mul local.tee $1 local.get $1 @@ -4722,28 +4747,28 @@ f64.mul f64.add local.tee $6 - local.get $2 + local.get $3 f64.mul f64.sub - local.set $2 + local.set $3 local.get $1 local.get $6 - local.get $2 + local.get $3 f64.sub f64.const 6 local.get $0 - local.get $2 + local.get $3 f64.mul f64.sub f64.div f64.mul - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.eqz if local.get $0 local.get $0 - local.get $2 + local.get $3 f64.mul local.get $1 f64.sub @@ -4751,7 +4776,7 @@ return end local.get $0 - local.get $2 + local.get $3 local.get $4 f64.sub f64.mul @@ -4760,7 +4785,7 @@ local.get $1 f64.sub local.set $1 - local.get $3 + local.get $2 i32.const -1 i32.eq if @@ -4773,7 +4798,7 @@ f64.sub return end - local.get $3 + local.get $2 i32.const 1 i32.eq if @@ -4799,7 +4824,7 @@ f64.add return end - local.get $3 + local.get $2 i64.extend_i32_s i64.const 1023 i64.add @@ -4808,10 +4833,10 @@ f64.reinterpret_i64 local.set $4 i32.const 1 - local.get $3 + local.get $2 i32.const 56 i32.gt_s - local.get $3 + local.get $2 i32.const 0 i32.lt_s select @@ -4829,7 +4854,7 @@ local.get $0 local.get $4 f64.mul - local.get $3 + local.get $2 i32.const 1024 i32.eq select @@ -4840,22 +4865,22 @@ local.get $0 f64.const 1 i64.const 1023 - local.get $3 + local.get $2 i64.extend_i32_s i64.sub i64.const 52 i64.shl f64.reinterpret_i64 - local.tee $2 + local.tee $3 f64.sub local.get $1 f64.sub f64.const 1 local.get $1 - local.get $2 + local.get $3 f64.add f64.sub - local.get $3 + local.get $2 i32.const 20 i32.lt_s select @@ -5157,8 +5182,8 @@ ) (func $~lib/math/NativeMathf.expm1 (param $0 f32) (result f32) (local $1 f32) - (local $2 f32) - (local $3 i32) + (local $2 i32) + (local $3 f32) (local $4 f32) (local $5 i32) (local $6 i32) @@ -5221,7 +5246,7 @@ i32.const 1065686418 i32.lt_u select - local.tee $3 + local.tee $2 f32.convert_i32_s local.tee $1 f32.const 0.6931381225585938 @@ -5253,7 +5278,7 @@ local.get $0 f32.const 0.5 f32.mul - local.tee $2 + local.tee $3 f32.mul local.tee $1 local.get $1 @@ -5265,28 +5290,28 @@ f32.const 1 f32.add local.tee $7 - local.get $2 + local.get $3 f32.mul f32.sub - local.set $2 + local.set $3 local.get $1 local.get $7 - local.get $2 + local.get $3 f32.sub f32.const 6 local.get $0 - local.get $2 + local.get $3 f32.mul f32.sub f32.div f32.mul - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.eqz if local.get $0 local.get $0 - local.get $2 + local.get $3 f32.mul local.get $1 f32.sub @@ -5294,7 +5319,7 @@ return end local.get $0 - local.get $2 + local.get $3 local.get $4 f32.sub f32.mul @@ -5303,7 +5328,7 @@ local.get $1 f32.sub local.set $1 - local.get $3 + local.get $2 i32.const -1 i32.eq if @@ -5316,7 +5341,7 @@ f32.sub return end - local.get $3 + local.get $2 i32.const 1 i32.eq if @@ -5342,7 +5367,7 @@ f32.add return end - local.get $3 + local.get $2 i32.const 127 i32.add i32.const 23 @@ -5350,10 +5375,10 @@ f32.reinterpret_i32 local.set $4 i32.const 1 - local.get $3 + local.get $2 i32.const 56 i32.gt_s - local.get $3 + local.get $2 i32.const 0 i32.lt_s select @@ -5371,7 +5396,7 @@ local.get $0 local.get $4 f32.mul - local.get $3 + local.get $2 i32.const 128 i32.eq select @@ -5382,21 +5407,21 @@ local.get $0 f32.const 1 i32.const 127 - local.get $3 + local.get $2 i32.sub i32.const 23 i32.shl f32.reinterpret_i32 - local.tee $2 + local.tee $3 f32.sub local.get $1 f32.sub f32.const 1 local.get $1 - local.get $2 + local.get $3 f32.add f32.sub - local.get $3 + local.get $2 i32.const 20 i32.lt_s select @@ -5875,174 +5900,174 @@ local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.hypot (param $0 f64) (param $1 f64) (result f64) - (local $2 i64) - (local $3 i64) + (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) (local $4 i64) - (local $5 f64) - (local $6 i32) + (local $5 i64) + (local $6 i64) (local $7 f64) - (local $8 i32) - (local $9 f64) + (local $8 f64) + (local $9 i32) (local $10 f64) - (local $11 f64) - local.get $1 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $2 - local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $3 - i64.gt_u - if - local.get $3 - local.get $2 - local.set $3 - local.set $2 - end - local.get $2 - f64.reinterpret_i64 - local.set $1 - local.get $2 - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $6 - i32.const 2047 - i32.eq - if + (local $11 i32) + (local $12 f64) + (local $13 f64) + block $__inlined_func$~lib/math/NativeMath.hypot (result f64) local.get $1 - return - end - local.get $3 - f64.reinterpret_i64 - local.set $0 - i64.const 0 - local.get $2 - local.get $3 - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $8 - i32.const 2047 - i32.eq - select - i64.eqz - if + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $4 local.get $0 - return - end - local.get $8 - local.get $6 - i32.sub - i32.const 64 - i32.gt_s - if + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $5 + i64.gt_u + if + local.get $5 + local.get $4 + local.set $5 + local.set $4 + end + local.get $4 + f64.reinterpret_i64 + local.tee $1 + local.get $4 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $9 + i32.const 2047 + i32.eq + br_if $__inlined_func$~lib/math/NativeMath.hypot + drop + local.get $5 + f64.reinterpret_i64 + local.tee $0 + i64.const 0 + local.get $4 + local.get $5 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $11 + i32.const 2047 + i32.eq + select + i64.eqz + br_if $__inlined_func$~lib/math/NativeMath.hypot + drop local.get $0 local.get $1 f64.add - return - end - f64.const 1 - local.set $7 - local.get $8 - i32.const 1533 - i32.gt_u - if (result f64) - f64.const 5260135901548373507240989e186 - local.set $7 - local.get $1 - f64.const 1.90109156629516e-211 - f64.mul - local.set $1 - local.get $0 - f64.const 1.90109156629516e-211 - f64.mul - else - local.get $6 - i32.const 573 - i32.lt_u + local.get $11 + local.get $9 + i32.sub + i32.const 64 + i32.gt_s + br_if $__inlined_func$~lib/math/NativeMath.hypot + drop + f64.const 1 + local.set $10 + local.get $11 + i32.const 1533 + i32.gt_u if (result f64) - f64.const 1.90109156629516e-211 - local.set $7 - local.get $1 f64.const 5260135901548373507240989e186 + local.set $10 + local.get $1 + f64.const 1.90109156629516e-211 f64.mul local.set $1 local.get $0 - f64.const 5260135901548373507240989e186 + f64.const 1.90109156629516e-211 f64.mul else - local.get $0 + local.get $9 + i32.const 573 + i32.lt_u + if (result f64) + f64.const 1.90109156629516e-211 + local.set $10 + local.get $1 + f64.const 5260135901548373507240989e186 + f64.mul + local.set $1 + local.get $0 + f64.const 5260135901548373507240989e186 + f64.mul + else + local.get $0 + end end + local.tee $0 + local.get $0 + local.get $0 + f64.const 134217729 + f64.mul + local.tee $13 + f64.sub + local.get $13 + f64.add + local.tee $13 + f64.sub + local.set $8 + local.get $1 + local.get $1 + local.get $1 + f64.const 134217729 + f64.mul + local.tee $12 + f64.sub + local.get $12 + f64.add + local.tee $12 + f64.sub + local.set $7 + local.get $10 + local.get $12 + local.get $12 + f64.mul + local.get $1 + local.get $1 + f64.mul + local.tee $1 + f64.sub + local.get $12 + local.get $12 + f64.add + local.get $7 + f64.add + local.get $7 + f64.mul + f64.add + local.get $13 + local.get $13 + f64.mul + local.get $0 + local.get $0 + f64.mul + local.tee $0 + f64.sub + local.get $13 + local.get $13 + f64.add + local.get $8 + f64.add + local.get $8 + f64.mul + f64.add + f64.add + local.get $1 + f64.add + local.get $0 + f64.add + f64.sqrt + f64.mul end - local.tee $0 - local.get $0 - local.get $0 - f64.const 134217729 - f64.mul - local.tee $11 - f64.sub - local.get $11 - f64.add - local.tee $10 - f64.sub - local.set $5 - local.get $1 - local.get $1 - local.get $1 - f64.const 134217729 - f64.mul - local.tee $11 - f64.sub - local.get $11 - f64.add - local.tee $9 - f64.sub - local.set $11 - local.get $7 - local.get $9 - local.get $9 - f64.mul - local.get $1 - local.get $1 - f64.mul - local.tee $1 - f64.sub - local.get $9 - local.get $9 - f64.add - local.get $11 - f64.add - local.get $11 - f64.mul - f64.add - local.get $10 - local.get $10 - f64.mul - local.get $0 - local.get $0 - f64.mul - local.tee $0 - f64.sub - local.get $10 - local.get $10 - f64.add - local.get $5 - f64.add - local.get $5 - f64.mul - f64.add - f64.add - local.get $1 - f64.add - local.get $0 - f64.add - f64.sqrt - f64.mul + local.get $2 + local.get $3 + call $std/math/check ) (func $std/math/test_hypotf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) (local $4 i32) @@ -6151,363 +6176,378 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.log10 (param $0 f64) (result f64) - (local $1 i32) - (local $2 f64) + (func $std/math/test_log10 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) - (local $4 f64) - (local $5 i64) + (local $4 i32) + (local $5 f64) (local $6 f64) (local $7 f64) - (local $8 i32) - i32.const 1 - local.get $0 - i64.reinterpret_f64 - local.tee $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $1 - i32.const 31 - i32.shr_u - local.get $1 - i32.const 1048576 - i32.lt_u - select - if - local.get $5 - i64.const 1 - i64.shl - i64.eqz - if - f64.const -1 - local.get $0 - local.get $0 - f64.mul - f64.div - return - end - local.get $1 - i32.const 31 - i32.shr_u - if - local.get $0 - local.get $0 - f64.sub - f64.const 0 - f64.div - return - end - i32.const -54 - local.set $8 + (local $8 i64) + (local $9 f64) + (local $10 i32) + (local $11 f64) + block $__inlined_func$~lib/math/NativeMath.log10 (result f64) + i32.const 1 local.get $0 - f64.const 18014398509481984 - f64.mul + local.tee $3 i64.reinterpret_f64 - local.tee $5 + local.tee $8 i64.const 32 i64.shr_u i32.wrap_i64 - local.set $1 - else - local.get $1 - i32.const 2146435072 - i32.ge_u + local.tee $4 + i32.const 31 + i32.shr_u + local.get $4 + i32.const 1048576 + i32.lt_u + select if - local.get $0 - return - else - local.get $5 - i64.const 32 - i64.shl + f64.const -1 + local.get $3 + local.get $3 + f64.mul + f64.div + local.get $8 i64.const 1 - local.get $1 - i32.const 1072693248 - i32.eq - select + i64.shl i64.eqz + br_if $__inlined_func$~lib/math/NativeMath.log10 + drop + local.get $3 + local.get $3 + f64.sub + f64.const 0 + f64.div + local.get $4 + i32.const 31 + i32.shr_u + br_if $__inlined_func$~lib/math/NativeMath.log10 + drop + i32.const -54 + local.set $10 + local.get $3 + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.tee $8 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $4 + else + local.get $4 + i32.const 2146435072 + i32.ge_u if + local.get $3 + br $__inlined_func$~lib/math/NativeMath.log10 + else f64.const 0 - return + local.get $8 + i64.const 32 + i64.shl + i64.const 1 + local.get $4 + i32.const 1072693248 + i32.eq + select + i64.eqz + br_if $__inlined_func$~lib/math/NativeMath.log10 + drop end end + local.get $8 + i64.const 4294967295 + i64.and + local.get $4 + i32.const 614242 + i32.add + local.tee $4 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub + local.tee $3 + f64.const 0.5 + f64.mul + local.get $3 + f64.mul + local.set $6 + local.get $3 + local.get $3 + f64.const 2 + f64.add + f64.div + local.tee $9 + local.get $9 + f64.mul + local.tee $7 + local.get $7 + f64.mul + local.set $5 + local.get $3 + local.get $3 + local.get $6 + f64.sub + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $11 + f64.sub + local.get $6 + f64.sub + local.get $9 + local.get $6 + local.get $7 + local.get $5 + local.get $5 + local.get $5 + f64.const 0.14798198605116586 + f64.mul + f64.const 0.1818357216161805 + f64.add + f64.mul + f64.const 0.2857142874366239 + f64.add + f64.mul + f64.const 0.6666666666666735 + f64.add + f64.mul + local.get $5 + local.get $5 + local.get $5 + f64.const 0.15313837699209373 + f64.mul + f64.const 0.22222198432149784 + f64.add + f64.mul + f64.const 0.3999999999940942 + f64.add + f64.mul + f64.add + f64.add + f64.mul + f64.add + local.set $3 + local.get $4 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + local.get $10 + i32.add + f64.convert_i32_s + local.tee $5 + f64.const 0.30102999566361177 + f64.mul + local.tee $6 + local.get $11 + f64.const 0.4342944818781689 + f64.mul + local.tee $9 + f64.add + local.set $7 + local.get $5 + f64.const 3.694239077158931e-13 + f64.mul + local.get $3 + local.get $11 + f64.add + f64.const 2.5082946711645275e-11 + f64.mul + f64.add + local.get $3 + f64.const 0.4342944818781689 + f64.mul + f64.add + local.get $6 + local.get $7 + f64.sub + local.get $9 + f64.add + f64.add + local.get $7 + f64.add end - local.get $5 - i64.const 4294967295 - i64.and local.get $1 - i32.const 614242 - i32.add - local.tee $1 - i32.const 1048575 - i32.and - i32.const 1072079006 - i32.add - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - f64.reinterpret_i64 - f64.const 1 - f64.sub - local.tee $0 - f64.const 0.5 - f64.mul - local.get $0 - f64.mul - local.set $3 - local.get $0 - local.get $0 - f64.const 2 - f64.add - f64.div - local.tee $6 - local.get $6 - f64.mul - local.tee $4 - local.get $4 - f64.mul - local.set $2 - local.get $0 - local.get $0 - local.get $3 - f64.sub - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $7 - f64.sub - local.get $3 - f64.sub - local.get $6 - local.get $3 - local.get $4 - local.get $2 - local.get $2 - local.get $2 - f64.const 0.14798198605116586 - f64.mul - f64.const 0.1818357216161805 - f64.add - f64.mul - f64.const 0.2857142874366239 - f64.add - f64.mul - f64.const 0.6666666666666735 - f64.add - f64.mul - local.get $2 local.get $2 - local.get $2 - f64.const 0.15313837699209373 - f64.mul - f64.const 0.22222198432149784 - f64.add - f64.mul - f64.const 0.3999999999940942 - f64.add - f64.mul - f64.add - f64.add - f64.mul - f64.add - local.set $0 - local.get $1 - i32.const 20 - i32.shr_u - i32.const 1023 - i32.sub - local.get $8 - i32.add - f64.convert_i32_s - local.tee $2 - f64.const 0.30102999566361177 - f64.mul - local.tee $3 - local.get $7 - f64.const 0.4342944818781689 - f64.mul - local.tee $6 - f64.add - local.set $4 - local.get $2 - f64.const 3.694239077158931e-13 - f64.mul - local.get $0 - local.get $7 - f64.add - f64.const 2.5082946711645275e-11 - f64.mul - f64.add - local.get $0 - f64.const 0.4342944818781689 - f64.mul - f64.add - local.get $3 - local.get $4 - f64.sub - local.get $6 - f64.add - f64.add - local.get $4 - f64.add + call $std/math/check + if (result i32) + local.get $0 + call $~lib/bindings/Math/log10 + local.get $1 + local.get $2 + call $std/math/check + else + i32.const 0 + end ) - (func $~lib/math/NativeMathf.log10 (param $0 f32) (result f32) - (local $1 i32) - (local $2 f32) - (local $3 f32) + (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (local $3 i32) (local $4 f32) - (local $5 f32) - (local $6 i32) + (local $5 i32) + (local $6 f32) (local $7 f32) - i32.const 1 - local.get $0 - i32.reinterpret_f32 - local.tee $1 - i32.const 31 - i32.shr_u - local.get $1 - i32.const 8388608 - i32.lt_u - select - if - local.get $1 + (local $8 f32) + (local $9 f32) + block $__inlined_func$~lib/math/NativeMathf.log10 (result f32) i32.const 1 - i32.shl - i32.eqz + local.get $0 + i32.reinterpret_f32 + local.tee $3 + i32.const 31 + i32.shr_u + local.get $3 + i32.const 8388608 + i32.lt_u + select if f32.const -1 local.get $0 local.get $0 f32.mul f32.div - return - end - local.get $1 - i32.const 31 - i32.shr_u - if + local.get $3 + i32.const 1 + i32.shl + i32.eqz + br_if $__inlined_func$~lib/math/NativeMathf.log10 + drop local.get $0 local.get $0 f32.sub f32.const 0 f32.div - return - end - i32.const -25 - local.set $6 - local.get $0 - f32.const 33554432 - f32.mul - i32.reinterpret_f32 - local.set $1 - else - local.get $1 - i32.const 2139095040 - i32.ge_u - if + local.get $3 + i32.const 31 + i32.shr_u + br_if $__inlined_func$~lib/math/NativeMathf.log10 + drop + i32.const -25 + local.set $5 local.get $0 - return + f32.const 33554432 + f32.mul + i32.reinterpret_f32 + local.set $3 else - local.get $1 - i32.const 1065353216 - i32.eq + local.get $3 + i32.const 2139095040 + i32.ge_u if + local.get $0 + br $__inlined_func$~lib/math/NativeMathf.log10 + else f32.const 0 - return + local.get $3 + i32.const 1065353216 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.log10 + drop end end + local.get $3 + i32.const 4913933 + i32.add + local.tee $3 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + f32.reinterpret_i32 + f32.const 1 + f32.sub + local.tee $0 + local.get $0 + f32.const 2 + f32.add + f32.div + local.tee $6 + local.get $6 + f32.mul + local.tee $7 + local.get $7 + f32.mul + local.set $4 + local.get $3 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + local.get $5 + i32.add + f32.convert_i32_s + local.tee $9 + f32.const 7.903415166765626e-07 + f32.mul + local.get $0 + local.get $0 + local.get $0 + f32.const 0.5 + f32.mul + local.get $0 + f32.mul + local.tee $0 + f32.sub + i32.reinterpret_f32 + i32.const -4096 + i32.and + f32.reinterpret_i32 + local.tee $8 + f32.sub + local.get $0 + f32.sub + local.get $6 + local.get $0 + local.get $7 + local.get $4 + f32.const 0.2849878668785095 + f32.mul + f32.const 0.6666666269302368 + f32.add + f32.mul + local.get $4 + local.get $4 + f32.const 0.24279078841209412 + f32.mul + f32.const 0.40000972151756287 + f32.add + f32.mul + f32.add + f32.add + f32.mul + f32.add + local.tee $0 + local.get $8 + f32.add + f32.const -3.168997136526741e-05 + f32.mul + f32.add + local.get $0 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $8 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $9 + f32.const 0.3010292053222656 + f32.mul + f32.add end local.get $1 - i32.const 4913933 - i32.add - local.tee $1 - i32.const 8388607 - i32.and - i32.const 1060439283 - i32.add - f32.reinterpret_i32 - f32.const 1 - f32.sub - local.tee $0 - local.get $0 - f32.const 2 - f32.add - f32.div - local.tee $3 - local.get $3 - f32.mul - local.tee $4 - local.get $4 - f32.mul - local.set $2 - local.get $1 - i32.const 23 - i32.shr_u - i32.const 127 - i32.sub - local.get $6 - i32.add - f32.convert_i32_s - local.tee $7 - f32.const 7.903415166765626e-07 - f32.mul - local.get $0 - local.get $0 - local.get $0 - f32.const 0.5 - f32.mul - local.get $0 - f32.mul - local.tee $0 - f32.sub - i32.reinterpret_f32 - i32.const -4096 - i32.and - f32.reinterpret_i32 - local.tee $5 - f32.sub - local.get $0 - f32.sub - local.get $3 - local.get $0 - local.get $4 - local.get $2 - f32.const 0.2849878668785095 - f32.mul - f32.const 0.6666666269302368 - f32.add - f32.mul - local.get $2 local.get $2 - f32.const 0.24279078841209412 - f32.mul - f32.const 0.40000972151756287 - f32.add - f32.mul - f32.add - f32.add - f32.mul - f32.add - local.tee $0 - local.get $5 - f32.add - f32.const -3.168997136526741e-05 - f32.mul - f32.add - local.get $0 - f32.const 0.434326171875 - f32.mul - f32.add - local.get $5 - f32.const 0.434326171875 - f32.mul - f32.add - local.get $7 - f32.const 0.3010292053222656 - f32.mul - f32.add + call $std/math/check ) (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64) (local $1 i64) @@ -7036,89 +7076,91 @@ i64.or end local.set $4 - block $folding-inner0 - loop $while-continue|0 - local.get $5 - local.get $6 - i64.gt_s - if + loop $while-continue|0 + local.get $5 + local.get $6 + i64.gt_s + if + local.get $3 + local.get $4 + i64.ge_u + if (result i64) + local.get $0 + f64.const 0 + f64.mul + local.get $3 + local.get $4 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod + drop local.get $3 local.get $4 - i64.ge_u - if (result i64) - local.get $3 - local.get $4 - i64.eq - br_if $folding-inner0 - local.get $3 - local.get $4 - i64.sub - else - local.get $3 - end - i64.const 1 - i64.shl - local.set $3 - local.get $5 - i64.const 1 i64.sub - local.set $5 - br $while-continue|0 + else + local.get $3 end + i64.const 1 + i64.shl + local.set $3 + local.get $5 + i64.const 1 + i64.sub + local.set $5 + br $while-continue|0 end - local.get $5 + end + local.get $5 + local.get $3 + local.get $4 + i64.ge_u + if + local.get $0 + f64.const 0 + f64.mul local.get $3 local.get $4 - i64.ge_u - if - local.get $3 - local.get $4 - i64.eq - br_if $folding-inner0 - local.get $3 - local.get $4 - i64.sub - local.set $3 - end + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod + drop local.get $3 - i64.const 11 - i64.shl - i64.clz - local.tee $5 + local.get $4 i64.sub - local.set $4 - local.get $3 - local.get $5 - i64.shl local.set $3 + end + local.get $3 + i64.const 11 + i64.shl + i64.clz + local.tee $5 + i64.sub + local.set $4 + local.get $3 + local.get $5 + i64.shl + local.set $3 + local.get $4 + i64.const 0 + i64.gt_s + if (result i64) + local.get $3 + i64.const 4503599627370496 + i64.sub local.get $4 - i64.const 0 - i64.gt_s - if (result i64) - local.get $3 - i64.const 4503599627370496 - i64.sub - local.get $4 - i64.const 52 - i64.shl - i64.or - else - local.get $3 - i64.const 1 - local.get $4 - i64.sub - i64.shr_u - end - local.get $7 - i64.const 63 + i64.const 52 i64.shl i64.or - f64.reinterpret_i64 - br $__inlined_func$~lib/math/NativeMath.mod + else + local.get $3 + i64.const 1 + local.get $4 + i64.sub + i64.shr_u end - local.get $0 - f64.const 0 - f64.mul + local.get $7 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 end local.get $2 f64.const 0 @@ -7253,87 +7295,91 @@ i32.shl end local.set $3 - block $folding-inner0 - loop $while-continue|0 - local.get $4 - local.get $5 - i32.gt_s - if + loop $while-continue|0 + local.get $4 + local.get $5 + i32.gt_s + if + local.get $2 + local.get $3 + i32.ge_u + if (result i32) local.get $2 local.get $3 - i32.ge_u - if (result i32) - local.get $2 - local.get $3 - i32.eq - br_if $folding-inner0 - local.get $2 - local.get $3 - i32.sub - else - local.get $2 + i32.eq + if + local.get $0 + f32.const 0 + f32.mul + return end - i32.const 1 - i32.shl - local.set $2 - local.get $4 - i32.const 1 + local.get $2 + local.get $3 i32.sub - local.set $4 - br $while-continue|0 + else + local.get $2 end + i32.const 1 + i32.shl + local.set $2 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|0 end - local.get $4 + end + local.get $4 + local.get $2 + local.get $3 + i32.ge_u + if local.get $2 local.get $3 - i32.ge_u + i32.eq if - local.get $2 - local.get $3 - i32.eq - br_if $folding-inner0 - local.get $2 - local.get $3 - i32.sub - local.set $2 + local.get $0 + f32.const 0 + f32.mul + return end local.get $2 - i32.const 8 - i32.shl - i32.clz - local.tee $3 - i32.sub - local.set $4 - local.get $2 local.get $3 - i32.shl + i32.sub local.set $2 + end + local.get $2 + i32.const 8 + i32.shl + i32.clz + local.tee $3 + i32.sub + local.set $4 + local.get $2 + local.get $3 + i32.shl + local.set $2 + local.get $4 + i32.const 0 + i32.gt_s + if (result i32) + local.get $2 + i32.const 8388608 + i32.sub local.get $4 - i32.const 0 - i32.gt_s - if (result i32) - local.get $2 - i32.const 8388608 - i32.sub - local.get $4 - i32.const 23 - i32.shl - i32.or - else - local.get $2 - i32.const 1 - local.get $4 - i32.sub - i32.shr_u - end - local.get $6 + i32.const 23 + i32.shl i32.or - f32.reinterpret_i32 - return + else + local.get $2 + i32.const 1 + local.get $4 + i32.sub + i32.shr_u end - local.get $0 - f32.const 0 - f32.mul + local.get $6 + i32.or + f32.reinterpret_i32 ) (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -8092,11 +8138,12 @@ (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 f64) + (local $4 f32) + (local $5 i32) + (local $6 i64) + (local $7 i32) (local $8 f64) + (local $9 f64) local.get $1 f32.abs f32.const 2 @@ -8150,9 +8197,14 @@ end end block $~lib/util/math/powf_lut|inlined.0 (result f32) + local.get $0 + local.tee $4 + i32.reinterpret_f32 + local.set $2 local.get $1 + local.tee $0 i32.reinterpret_f32 - local.tee $4 + local.tee $5 i32.const 1 i32.shl i32.const 1 @@ -8160,9 +8212,7 @@ i32.const -16777217 i32.ge_u local.tee $3 - local.get $0 - i32.reinterpret_f32 - local.tee $2 + local.get $2 i32.const 8388608 i32.sub i32.const 2130706432 @@ -8172,7 +8222,7 @@ local.get $3 if f32.const 1 - local.get $4 + local.get $5 i32.const 1 i32.shl i32.eqz @@ -8184,11 +8234,11 @@ i32.eq br_if $~lib/util/math/powf_lut|inlined.0 drop + local.get $4 local.get $0 - local.get $1 f32.add i32.const 1 - local.get $4 + local.get $5 i32.const 1 i32.shl i32.const -16777216 @@ -8210,7 +8260,7 @@ br_if $~lib/util/math/powf_lut|inlined.0 drop f32.const 0 - local.get $4 + local.get $5 i32.const 31 i32.shr_u i32.eqz @@ -8222,8 +8272,8 @@ i32.eq br_if $~lib/util/math/powf_lut|inlined.0 drop - local.get $1 - local.get $1 + local.get $0 + local.get $0 f32.mul br $~lib/util/math/powf_lut|inlined.0 end @@ -8236,8 +8286,8 @@ i32.ge_u if f32.const 1 - local.get $0 - local.get $0 + local.get $4 + local.get $4 f32.mul local.tee $0 f32.neg @@ -8248,7 +8298,7 @@ if (result i32) block $~lib/util/math/checkintf|inlined.0 (result i32) i32.const 0 - local.get $4 + local.get $5 i32.const 23 i32.shr_u i32.const 255 @@ -8273,13 +8323,13 @@ local.tee $2 i32.const 1 i32.sub - local.get $4 + local.get $5 i32.and br_if $~lib/util/math/checkintf|inlined.0 drop i32.const 1 local.get $2 - local.get $4 + local.get $5 i32.and br_if $~lib/util/math/checkintf|inlined.0 drop @@ -8294,7 +8344,7 @@ local.tee $0 f32.div local.get $0 - local.get $4 + local.get $5 i32.const 31 i32.shr_u select @@ -8306,19 +8356,19 @@ if block $~lib/util/math/checkintf|inlined.1 (result i32) i32.const 0 - local.get $4 + local.get $5 local.tee $3 i32.const 23 i32.shr_u i32.const 255 i32.and - local.tee $4 + local.tee $5 i32.const 127 i32.lt_u br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 2 - local.get $4 + local.get $5 i32.const 150 i32.gt_u br_if $~lib/util/math/checkintf|inlined.1 @@ -8326,10 +8376,10 @@ i32.const 0 i32.const 1 i32.const 150 - local.get $4 + local.get $5 i32.sub i32.shl - local.tee $4 + local.tee $5 i32.const 1 i32.sub local.get $3 @@ -8338,17 +8388,17 @@ drop i32.const 1 local.get $3 - local.get $4 + local.get $5 i32.and br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 2 end - local.tee $4 + local.tee $5 i32.eqz if - local.get $0 - local.get $0 + local.get $4 + local.get $4 f32.sub local.tee $0 local.get $0 @@ -8357,11 +8407,11 @@ end i32.const 65536 i32.const 0 - local.get $4 + local.get $5 i32.const 1 i32.eq select - local.set $6 + local.set $7 local.get $2 i32.const 2147483647 i32.and @@ -8371,7 +8421,7 @@ i32.const 8388608 i32.lt_u if (result i32) - local.get $0 + local.get $4 f32.const 8388608 f32.mul i32.reinterpret_f32 @@ -8388,14 +8438,14 @@ local.get $2 i32.const 1060306944 i32.sub - local.tee $4 + local.tee $5 i32.const -8388608 i32.and local.tee $3 i32.sub f32.reinterpret_i32 f64.promote_f32 - local.get $4 + local.get $5 i32.const 19 i32.shr_u i32.const 15 @@ -8404,30 +8454,30 @@ i32.shl i32.const 10016 i32.add - local.tee $4 + local.tee $5 f64.load f64.mul f64.const 1 f64.sub - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.mul - local.set $7 - local.get $1 + local.set $8 + local.get $0 f64.promote_f32 - local.get $8 + local.get $9 f64.const 0.288457581109214 f64.mul f64.const -0.36092606229713164 f64.add - local.get $7 - local.get $7 + local.get $8 + local.get $8 f64.mul f64.mul - local.get $8 + local.get $9 f64.const 1.4426950408774342 f64.mul - local.get $4 + local.get $5 f64.load offset=8 local.get $3 i32.const 23 @@ -8435,17 +8485,17 @@ f64.convert_i32_s f64.add f64.add - local.get $8 + local.get $9 f64.const 0.480898481472577 f64.mul f64.const -0.7213474675006291 f64.add - local.get $7 + local.get $8 f64.mul f64.add f64.add f64.mul - local.tee $8 + local.tee $9 i64.reinterpret_f64 i64.const 47 i64.shr_u @@ -8456,54 +8506,54 @@ if f32.const -1584563250285286751870879e5 f32.const 1584563250285286751870879e5 - local.get $6 + local.get $7 select f32.const 1584563250285286751870879e5 f32.mul - local.get $8 + local.get $9 f64.const 127.99999995700433 f64.gt br_if $~lib/util/math/powf_lut|inlined.0 drop f32.const -2.524354896707238e-29 f32.const 2.524354896707238e-29 - local.get $6 + local.get $7 select f32.const 2.524354896707238e-29 f32.mul - local.get $8 + local.get $9 f64.const -150 f64.le br_if $~lib/util/math/powf_lut|inlined.0 drop end - local.get $8 + local.get $9 f64.const 211106232532992 f64.add - local.tee $7 + local.tee $8 i64.reinterpret_f64 - local.set $5 + local.set $6 + local.get $9 local.get $8 - local.get $7 f64.const 211106232532992 f64.sub f64.sub - local.tee $8 + local.tee $9 f64.const 0.6931471806916203 f64.mul f64.const 1 f64.add - local.get $8 + local.get $9 f64.const 0.05550361559341535 f64.mul f64.const 0.2402284522445722 f64.add - local.get $8 - local.get $8 + local.get $9 + local.get $9 f64.mul f64.mul f64.add - local.get $5 + local.get $6 i32.wrap_i64 i32.const 31 i32.and @@ -8512,9 +8562,9 @@ i32.const 7712 i32.add i64.load - local.get $6 + local.get $7 i64.extend_i32_u - local.get $5 + local.get $6 i64.add i64.const 47 i64.shl @@ -9909,6 +9959,16 @@ i32.and i64.extend_i32_s local.set $6 + local.get $2 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $2 + i64.load offset=8 + local.set $4 f64.const 8.515303950216386e-20 local.get $0 f64.promote_f32 @@ -9919,21 +9979,12 @@ i32.const 8388608 i32.or i64.extend_i32_s - local.tee $4 + local.tee $3 local.get $2 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $2 i64.load local.get $6 i64.shl - local.get $2 - i64.load offset=8 - local.tee $3 + local.get $4 i64.const 64 local.get $6 i64.sub @@ -9944,7 +9995,7 @@ i64.const 32 i64.gt_u if (result i64) - local.get $3 + local.get $4 local.get $6 i64.const 32 i64.sub @@ -9957,13 +10008,13 @@ i64.shr_u i64.or else - local.get $3 + local.get $4 i64.const 32 local.get $6 i64.sub i64.shr_u end - local.get $4 + local.get $3 i64.mul i64.const 32 i64.shr_u @@ -9971,7 +10022,7 @@ local.tee $4 i64.const 2 i64.shl - local.tee $6 + local.tee $3 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y @@ -9979,7 +10030,7 @@ local.get $4 i64.const 62 i64.shr_u - local.get $6 + local.get $3 i64.const 63 i64.shr_u i64.add @@ -10874,6 +10925,16 @@ i32.and i64.extend_i32_s local.set $6 + local.get $2 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $2 + i64.load offset=8 + local.set $4 f64.const 8.515303950216386e-20 local.get $0 f64.promote_f32 @@ -10884,21 +10945,12 @@ i32.const 8388608 i32.or i64.extend_i32_s - local.tee $4 + local.tee $3 local.get $2 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $2 i64.load local.get $6 i64.shl - local.get $2 - i64.load offset=8 - local.tee $3 + local.get $4 i64.const 64 local.get $6 i64.sub @@ -10909,7 +10961,7 @@ i64.const 32 i64.gt_u if (result i64) - local.get $3 + local.get $4 local.get $6 i64.const 32 i64.sub @@ -10922,13 +10974,13 @@ i64.shr_u i64.or else - local.get $3 + local.get $4 i64.const 32 local.get $6 i64.sub i64.shr_u end - local.get $4 + local.get $3 i64.mul i64.const 32 i64.shr_u @@ -10936,7 +10988,7 @@ local.tee $4 i64.const 2 i64.shl - local.tee $6 + local.tee $3 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y @@ -10944,7 +10996,7 @@ local.get $4 i64.const 62 i64.shr_u - local.get $6 + local.get $3 i64.const 63 i64.shr_u i64.add @@ -11727,15 +11779,15 @@ end ) (func $~lib/math/NativeMath.imul (param $0 f64) (param $1 f64) (result f64) - (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 f64) + (local $2 f64) + (local $3 i32) + (local $4 i64) + (local $5 i64) local.get $0 local.get $1 f64.add - local.tee $5 - local.get $5 + local.tee $2 + local.get $2 f64.sub f64.const 0 f64.ne @@ -11744,40 +11796,41 @@ return end local.get $0 - i64.reinterpret_f64 local.tee $2 + i64.reinterpret_f64 + local.tee $4 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $3 + local.tee $5 i64.const 1053 i64.le_u if (result i32) - local.get $0 + local.get $2 i32.trunc_f64_s else - local.get $3 + local.get $5 i64.const 1106 i64.le_u if (result i32) i32.const 0 - local.get $2 + local.get $4 i64.const 4503599627370495 i64.and i64.const 4503599627370496 i64.or - local.get $3 + local.get $5 i64.const 1043 i64.sub i64.shl i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $3 i32.sub + local.get $3 local.get $4 - local.get $2 i64.const 63 i64.shr_u i32.wrap_i64 @@ -11787,40 +11840,41 @@ end end local.get $1 + local.tee $0 i64.reinterpret_f64 - local.tee $2 + local.tee $4 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $3 + local.tee $5 i64.const 1053 i64.le_u if (result i32) - local.get $1 + local.get $0 i32.trunc_f64_s else - local.get $3 + local.get $5 i64.const 1106 i64.le_u if (result i32) i32.const 0 - local.get $2 + local.get $4 i64.const 4503599627370495 i64.and i64.const 4503599627370496 i64.or - local.get $3 + local.get $5 i64.const 1043 i64.sub i64.shl i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $3 i32.sub + local.get $3 local.get $4 - local.get $2 i64.const 63 i64.shr_u i32.wrap_i64 @@ -18067,10 +18121,9 @@ end f32.const -8.066848754882812 f32.const 4.535662651062012 - call $~lib/math/NativeMathf.atan2 f32.const -1.0585895776748657 f32.const -0.22352588176727295 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18082,10 +18135,9 @@ end f32.const 4.345239639282227 f32.const -8.887990951538086 - call $~lib/math/NativeMathf.atan2 f32.const 2.686873435974121 f32.const 0.09464472532272339 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18097,10 +18149,9 @@ end f32.const -8.381433486938477 f32.const -2.7636072635650635 - call $~lib/math/NativeMathf.atan2 f32.const -1.8893001079559326 f32.const -0.21941901743412018 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18112,10 +18163,9 @@ end f32.const -6.531673431396484 f32.const 4.567535400390625 - call $~lib/math/NativeMathf.atan2 f32.const -0.9605468511581421 f32.const 0.46015575528144836 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18127,10 +18177,9 @@ end f32.const 9.267057418823242 f32.const 4.811392307281494 - call $~lib/math/NativeMathf.atan2 f32.const 1.0919123888015747 f32.const -0.05708503723144531 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18142,10 +18191,9 @@ end f32.const -6.450045585632324 f32.const 0.6620717644691467 - call $~lib/math/NativeMathf.atan2 f32.const -1.4685084819793701 f32.const 0.19611206650733948 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18157,10 +18205,9 @@ end f32.const 7.858890056610107 f32.const 0.052154526114463806 - call $~lib/math/NativeMathf.atan2 f32.const 1.5641601085662842 f32.const 0.48143187165260315 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18172,10 +18219,9 @@ end f32.const -0.7920545339584351 f32.const 7.676402568817139 - call $~lib/math/NativeMathf.atan2 f32.const -0.10281659662723541 f32.const -0.4216274917125702 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18187,10 +18233,9 @@ end f32.const 0.6157026886940002 f32.const 2.0119025707244873 - call $~lib/math/NativeMathf.atan2 f32.const 0.29697975516319275 f32.const 0.2322007566690445 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18202,10 +18247,9 @@ end f32.const -0.5587586760520935 f32.const 0.03223983198404312 - call $~lib/math/NativeMathf.atan2 f32.const -1.5131611824035645 f32.const 0.16620726883411407 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18217,10 +18261,9 @@ end f32.const 0 f32.const 0 - call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18232,10 +18275,9 @@ end f32.const 0 f32.const -0 - call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18247,10 +18289,9 @@ end f32.const 0 f32.const -1 - call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18262,10 +18303,9 @@ end f32.const 0 f32.const -inf - call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18277,10 +18317,9 @@ end f32.const 0 f32.const 1 - call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18292,10 +18331,9 @@ end f32.const 0 f32.const inf - call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18307,10 +18345,9 @@ end f32.const -0 f32.const 0 - call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18322,10 +18359,9 @@ end f32.const -0 f32.const -0 - call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18337,10 +18373,9 @@ end f32.const -0 f32.const -1 - call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18352,10 +18387,9 @@ end f32.const -0 f32.const -inf - call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18367,10 +18401,9 @@ end f32.const -0 f32.const 1 - call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18382,10 +18415,9 @@ end f32.const -0 f32.const inf - call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18397,10 +18429,9 @@ end f32.const -1 f32.const 0 - call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18412,10 +18443,9 @@ end f32.const -1 f32.const -0 - call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18427,10 +18457,9 @@ end f32.const 1 f32.const 0 - call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18442,10 +18471,9 @@ end f32.const 1 f32.const -0 - call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18457,10 +18485,9 @@ end f32.const -1 f32.const inf - call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18472,10 +18499,9 @@ end f32.const 1 f32.const inf - call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18487,10 +18513,9 @@ end f32.const -1 f32.const -inf - call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18502,10 +18527,9 @@ end f32.const 1 f32.const -inf - call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18517,10 +18541,9 @@ end f32.const inf f32.const 0 - call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18532,10 +18555,9 @@ end f32.const -inf f32.const 0 - call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18547,10 +18569,9 @@ end f32.const inf f32.const inf - call $~lib/math/NativeMathf.atan2 f32.const 0.7853981852531433 f32.const 0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18562,10 +18583,9 @@ end f32.const inf f32.const -inf - call $~lib/math/NativeMathf.atan2 f32.const 2.356194496154785 f32.const 0.02500828728079796 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18577,10 +18597,9 @@ end f32.const -inf f32.const inf - call $~lib/math/NativeMathf.atan2 f32.const -0.7853981852531433 f32.const -0.3666777014732361 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18592,10 +18611,9 @@ end f32.const -inf f32.const -inf - call $~lib/math/NativeMathf.atan2 f32.const -2.356194496154785 f32.const -0.02500828728079796 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18607,10 +18625,9 @@ end f32.const 5.877471754111438e-39 f32.const 1 - call $~lib/math/NativeMathf.atan2 f32.const 5.877471754111438e-39 f32.const 0 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18622,10 +18639,9 @@ end f32.const 1 f32.const 1701411834604692317316873e14 - call $~lib/math/NativeMathf.atan2 f32.const 5.877471754111438e-39 f32.const 0 - call $std/math/check + call $std/math/test_atan2f i32.eqz if i32.const 0 @@ -18636,19 +18652,9 @@ unreachable end f64.const -8.06684839057968 - call $~lib/math/NativeMath.cbrt f64.const -2.0055552545020245 f64.const 0.46667951345443726 - call $std/math/check - if (result i32) - f64.const -8.06684839057968 - call $~lib/bindings/Math/cbrt - f64.const -2.0055552545020245 - f64.const 0.46667951345443726 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18659,19 +18665,9 @@ unreachable end f64.const 4.345239849338305 - call $~lib/math/NativeMath.cbrt f64.const 1.6318162410515635 f64.const -0.08160271495580673 - call $std/math/check - if (result i32) - f64.const 4.345239849338305 - call $~lib/bindings/Math/cbrt - f64.const 1.6318162410515635 - f64.const -0.08160271495580673 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18682,19 +18678,9 @@ unreachable end f64.const -8.38143342755525 - call $~lib/math/NativeMath.cbrt f64.const -2.031293910673361 f64.const -0.048101816326379776 - call $std/math/check - if (result i32) - f64.const -8.38143342755525 - call $~lib/bindings/Math/cbrt - f64.const -2.031293910673361 - f64.const -0.048101816326379776 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18705,19 +18691,9 @@ unreachable end f64.const -6.531673581913484 - call $~lib/math/NativeMath.cbrt f64.const -1.8692820012204925 f64.const 0.08624018728733063 - call $std/math/check - if (result i32) - f64.const -6.531673581913484 - call $~lib/bindings/Math/cbrt - f64.const -1.8692820012204925 - f64.const 0.08624018728733063 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18728,19 +18704,9 @@ unreachable end f64.const 9.267056966972586 - call $~lib/math/NativeMath.cbrt f64.const 2.100457720859702 f64.const -0.2722989022731781 - call $std/math/check - if (result i32) - f64.const 9.267056966972586 - call $~lib/bindings/Math/cbrt - f64.const 2.100457720859702 - f64.const -0.2722989022731781 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18751,19 +18717,9 @@ unreachable end f64.const 0.6619858980995045 - call $~lib/math/NativeMath.cbrt f64.const 0.8715311470455973 f64.const 0.4414918124675751 - call $std/math/check - if (result i32) - f64.const 0.6619858980995045 - call $~lib/bindings/Math/cbrt - f64.const 0.8715311470455973 - f64.const 0.4414918124675751 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18774,19 +18730,9 @@ unreachable end f64.const -0.4066039223853553 - call $~lib/math/NativeMath.cbrt f64.const -0.740839030300223 f64.const 0.016453813761472702 - call $std/math/check - if (result i32) - f64.const -0.4066039223853553 - call $~lib/bindings/Math/cbrt - f64.const -0.740839030300223 - f64.const 0.016453813761472702 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18797,19 +18743,9 @@ unreachable end f64.const 0.5617597462207241 - call $~lib/math/NativeMath.cbrt f64.const 0.8251195400559286 f64.const 0.30680638551712036 - call $std/math/check - if (result i32) - f64.const 0.5617597462207241 - call $~lib/bindings/Math/cbrt - f64.const 0.8251195400559286 - f64.const 0.30680638551712036 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18820,19 +18756,9 @@ unreachable end f64.const 0.7741522965913037 - call $~lib/math/NativeMath.cbrt f64.const 0.9182102478959914 f64.const 0.06543998420238495 - call $std/math/check - if (result i32) - f64.const 0.7741522965913037 - call $~lib/bindings/Math/cbrt - f64.const 0.9182102478959914 - f64.const 0.06543998420238495 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18843,19 +18769,9 @@ unreachable end f64.const -0.6787637026394024 - call $~lib/math/NativeMath.cbrt f64.const -0.8788326906580094 f64.const -0.2016713172197342 - call $std/math/check - if (result i32) - f64.const -0.6787637026394024 - call $~lib/bindings/Math/cbrt - f64.const -0.8788326906580094 - f64.const -0.2016713172197342 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18866,19 +18782,9 @@ unreachable end f64.const nan:0x8000000000000 - call $~lib/math/NativeMath.cbrt f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check - if (result i32) - f64.const nan:0x8000000000000 - call $~lib/bindings/Math/cbrt - f64.const nan:0x8000000000000 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18889,19 +18795,9 @@ unreachable end f64.const inf - call $~lib/math/NativeMath.cbrt f64.const inf f64.const 0 - call $std/math/check - if (result i32) - f64.const inf - call $~lib/bindings/Math/cbrt - f64.const inf - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18912,19 +18808,9 @@ unreachable end f64.const -inf - call $~lib/math/NativeMath.cbrt f64.const -inf f64.const 0 - call $std/math/check - if (result i32) - f64.const -inf - call $~lib/bindings/Math/cbrt - f64.const -inf - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18935,19 +18821,9 @@ unreachable end f64.const 0 - call $~lib/math/NativeMath.cbrt f64.const 0 f64.const 0 - call $std/math/check - if (result i32) - f64.const 0 - call $~lib/bindings/Math/cbrt - f64.const 0 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18958,19 +18834,9 @@ unreachable end f64.const -0 - call $~lib/math/NativeMath.cbrt f64.const -0 f64.const 0 - call $std/math/check - if (result i32) - f64.const -0 - call $~lib/bindings/Math/cbrt - f64.const -0 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -18981,19 +18847,9 @@ unreachable end f64.const 9.313225746154785e-10 - call $~lib/math/NativeMath.cbrt f64.const 0.0009765625 f64.const 0 - call $std/math/check - if (result i32) - f64.const 9.313225746154785e-10 - call $~lib/bindings/Math/cbrt - f64.const 0.0009765625 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -19004,19 +18860,9 @@ unreachable end f64.const -9.313225746154785e-10 - call $~lib/math/NativeMath.cbrt f64.const -0.0009765625 f64.const 0 - call $std/math/check - if (result i32) - f64.const -9.313225746154785e-10 - call $~lib/bindings/Math/cbrt - f64.const -0.0009765625 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -19027,19 +18873,9 @@ unreachable end f64.const 1 - call $~lib/math/NativeMath.cbrt f64.const 1 f64.const 0 - call $std/math/check - if (result i32) - f64.const 1 - call $~lib/bindings/Math/cbrt - f64.const 1 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -19050,19 +18886,9 @@ unreachable end f64.const -1 - call $~lib/math/NativeMath.cbrt f64.const -1 f64.const 0 - call $std/math/check - if (result i32) - f64.const -1 - call $~lib/bindings/Math/cbrt - f64.const -1 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -19073,19 +18899,9 @@ unreachable end f64.const 8 - call $~lib/math/NativeMath.cbrt f64.const 2 f64.const 0 - call $std/math/check - if (result i32) - f64.const 8 - call $~lib/bindings/Math/cbrt - f64.const 2 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_cbrt i32.eqz if i32.const 0 @@ -29223,10 +29039,9 @@ end f64.const -8.06684839057968 f64.const 4.535662560676869 - call $~lib/math/NativeMath.hypot f64.const 9.25452742288464 f64.const -0.31188681721687317 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29238,10 +29053,9 @@ end f64.const 4.345239849338305 f64.const -8.88799136300345 - call $~lib/math/NativeMath.hypot f64.const 9.893305808328252 f64.const 0.4593673348426819 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29253,10 +29067,9 @@ end f64.const -8.38143342755525 f64.const -2.763607337379588 - call $~lib/math/NativeMath.hypot f64.const 8.825301797432132 f64.const -0.1701754331588745 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29268,10 +29081,9 @@ end f64.const -6.531673581913484 f64.const 4.567535276842744 - call $~lib/math/NativeMath.hypot f64.const 7.970265885519092 f64.const -0.3176782727241516 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29283,10 +29095,9 @@ end f64.const 9.267056966972586 f64.const 4.811392084359796 - call $~lib/math/NativeMath.hypot f64.const 10.441639651824575 f64.const -0.2693633437156677 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29298,10 +29109,9 @@ end f64.const -6.450045556060236 f64.const 0.6620717923376739 - call $~lib/math/NativeMath.hypot f64.const 6.483936052542593 f64.const 0.35618898272514343 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29313,10 +29123,9 @@ end f64.const 7.858890253041697 f64.const 0.05215452675006225 - call $~lib/math/NativeMath.hypot f64.const 7.859063309581766 f64.const 0.08044655621051788 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29328,10 +29137,9 @@ end f64.const -0.792054511984896 f64.const 7.67640268511754 - call $~lib/math/NativeMath.hypot f64.const 7.717156764899584 f64.const 0.05178084969520569 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29343,10 +29151,9 @@ end f64.const 0.615702673197924 f64.const 2.0119025790324803 - call $~lib/math/NativeMath.hypot f64.const 2.104006123874314 f64.const -0.0918039008975029 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29358,10 +29165,9 @@ end f64.const -0.5587586823609152 f64.const 0.03223983060263804 - call $~lib/math/NativeMath.hypot f64.const 0.5596880129062913 f64.const 0.1383407711982727 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29373,10 +29179,9 @@ end f64.const 3 f64.const 4 - call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29388,10 +29193,9 @@ end f64.const -3 f64.const 4 - call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29403,10 +29207,9 @@ end f64.const 4 f64.const 3 - call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29418,10 +29221,9 @@ end f64.const 4 f64.const -3 - call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29433,10 +29235,9 @@ end f64.const -3 f64.const -4 - call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29448,10 +29249,9 @@ end f64.const 1797693134862315708145274e284 f64.const 0 - call $~lib/math/NativeMath.hypot f64.const 1797693134862315708145274e284 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29463,10 +29263,9 @@ end f64.const 1797693134862315708145274e284 f64.const -0 - call $~lib/math/NativeMath.hypot f64.const 1797693134862315708145274e284 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29478,10 +29277,9 @@ end f64.const 5e-324 f64.const 0 - call $~lib/math/NativeMath.hypot f64.const 5e-324 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29493,10 +29291,9 @@ end f64.const 5e-324 f64.const -0 - call $~lib/math/NativeMath.hypot f64.const 5e-324 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29508,10 +29305,9 @@ end f64.const inf f64.const 1 - call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29523,10 +29319,9 @@ end f64.const 1 f64.const inf - call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29538,10 +29333,9 @@ end f64.const inf f64.const nan:0x8000000000000 - call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29553,10 +29347,9 @@ end f64.const nan:0x8000000000000 f64.const inf - call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29568,10 +29361,9 @@ end f64.const -inf f64.const 1 - call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29583,10 +29375,9 @@ end f64.const 1 f64.const -inf - call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29598,10 +29389,9 @@ end f64.const -inf f64.const nan:0x8000000000000 - call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29613,10 +29403,9 @@ end f64.const nan:0x8000000000000 f64.const -inf - call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29628,10 +29417,9 @@ end f64.const nan:0x8000000000000 f64.const 1 - call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29643,10 +29431,9 @@ end f64.const 1 f64.const nan:0x8000000000000 - call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29658,10 +29445,9 @@ end f64.const nan:0x8000000000000 f64.const 0 - call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -29673,10 +29459,9 @@ end f64.const 0 f64.const nan:0x8000000000000 - call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check + call $std/math/test_hypot i32.eqz if i32.const 0 @@ -30731,19 +30516,9 @@ unreachable end f64.const -8.06684839057968 - call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check - if (result i32) - f64.const -8.06684839057968 - call $~lib/bindings/Math/log10 - f64.const nan:0x8000000000000 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30754,19 +30529,9 @@ unreachable end f64.const 4.345239849338305 - call $~lib/math/NativeMath.log10 f64.const 0.6380137537120029 f64.const -0.2088824063539505 - call $std/math/check - if (result i32) - f64.const 4.345239849338305 - call $~lib/bindings/Math/log10 - f64.const 0.6380137537120029 - f64.const -0.2088824063539505 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30777,19 +30542,9 @@ unreachable end f64.const -8.38143342755525 - call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check - if (result i32) - f64.const -8.38143342755525 - call $~lib/bindings/Math/log10 - f64.const nan:0x8000000000000 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30800,19 +30555,9 @@ unreachable end f64.const -6.531673581913484 - call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check - if (result i32) - f64.const -6.531673581913484 - call $~lib/bindings/Math/log10 - f64.const nan:0x8000000000000 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30823,19 +30568,9 @@ unreachable end f64.const 9.267056966972586 - call $~lib/math/NativeMath.log10 f64.const 0.9669418327487274 f64.const -0.06120431795716286 - call $std/math/check - if (result i32) - f64.const 9.267056966972586 - call $~lib/bindings/Math/log10 - f64.const 0.9669418327487274 - f64.const -0.06120431795716286 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30846,19 +30581,9 @@ unreachable end f64.const 0.6619858980995045 - call $~lib/math/NativeMath.log10 f64.const -0.17915126198447093 f64.const 0.39090874791145325 - call $std/math/check - if (result i32) - f64.const 0.6619858980995045 - call $~lib/bindings/Math/log10 - f64.const -0.17915126198447093 - f64.const 0.39090874791145325 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30869,19 +30594,9 @@ unreachable end f64.const -0.4066039223853553 - call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check - if (result i32) - f64.const -0.4066039223853553 - call $~lib/bindings/Math/log10 - f64.const nan:0x8000000000000 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30892,19 +30607,9 @@ unreachable end f64.const 0.5617597462207241 - call $~lib/math/NativeMath.log10 f64.const -0.25044938407454437 f64.const -0.3046841621398926 - call $std/math/check - if (result i32) - f64.const 0.5617597462207241 - call $~lib/bindings/Math/log10 - f64.const -0.25044938407454437 - f64.const -0.3046841621398926 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30915,19 +30620,9 @@ unreachable end f64.const 0.7741522965913037 - call $~lib/math/NativeMath.log10 f64.const -0.11117359349943837 f64.const -0.31503361463546753 - call $std/math/check - if (result i32) - f64.const 0.7741522965913037 - call $~lib/bindings/Math/log10 - f64.const -0.11117359349943837 - f64.const -0.31503361463546753 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30938,19 +30633,9 @@ unreachable end f64.const -0.6787637026394024 - call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check - if (result i32) - f64.const -0.6787637026394024 - call $~lib/bindings/Math/log10 - f64.const nan:0x8000000000000 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30961,19 +30646,9 @@ unreachable end f64.const 0 - call $~lib/math/NativeMath.log10 f64.const -inf f64.const 0 - call $std/math/check - if (result i32) - f64.const 0 - call $~lib/bindings/Math/log10 - f64.const -inf - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -30984,19 +30659,9 @@ unreachable end f64.const -0 - call $~lib/math/NativeMath.log10 f64.const -inf f64.const 0 - call $std/math/check - if (result i32) - f64.const -0 - call $~lib/bindings/Math/log10 - f64.const -inf - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -31007,19 +30672,9 @@ unreachable end f64.const -7.888609052210118e-31 - call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check - if (result i32) - f64.const -7.888609052210118e-31 - call $~lib/bindings/Math/log10 - f64.const nan:0x8000000000000 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -31030,19 +30685,9 @@ unreachable end f64.const 1 - call $~lib/math/NativeMath.log10 f64.const 0 f64.const 0 - call $std/math/check - if (result i32) - f64.const 1 - call $~lib/bindings/Math/log10 - f64.const 0 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -31053,19 +30698,9 @@ unreachable end f64.const -1 - call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check - if (result i32) - f64.const -1 - call $~lib/bindings/Math/log10 - f64.const nan:0x8000000000000 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -31076,19 +30711,9 @@ unreachable end f64.const inf - call $~lib/math/NativeMath.log10 f64.const inf f64.const 0 - call $std/math/check - if (result i32) - f64.const inf - call $~lib/bindings/Math/log10 - f64.const inf - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -31099,19 +30724,9 @@ unreachable end f64.const -inf - call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check - if (result i32) - f64.const -inf - call $~lib/bindings/Math/log10 - f64.const nan:0x8000000000000 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -31122,19 +30737,9 @@ unreachable end f64.const nan:0x8000000000000 - call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/check - if (result i32) - f64.const nan:0x8000000000000 - call $~lib/bindings/Math/log10 - f64.const nan:0x8000000000000 - f64.const 0 - call $std/math/check - else - i32.const 0 - end + call $std/math/test_log10 i32.eqz if i32.const 0 @@ -31145,10 +30750,9 @@ unreachable end f32.const -8.066848754882812 - call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31159,10 +30763,9 @@ unreachable end f32.const 4.345239639282227 - call $~lib/math/NativeMathf.log10 f32.const 0.6380137205123901 f32.const -0.20476758480072021 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31173,10 +30776,9 @@ unreachable end f32.const -8.381433486938477 - call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31187,10 +30789,9 @@ unreachable end f32.const -6.531673431396484 - call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31201,10 +30802,9 @@ unreachable end f32.const 9.267057418823242 - call $~lib/math/NativeMathf.log10 f32.const 0.9669418334960938 f32.const -0.34273025393486023 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31215,10 +30815,9 @@ unreachable end f32.const 0.6619858741760254 - call $~lib/math/NativeMathf.log10 f32.const -0.1791512817144394 f32.const -0.27078554034233093 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31229,10 +30828,9 @@ unreachable end f32.const -0.40660393238067627 - call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31243,10 +30841,9 @@ unreachable end f32.const 0.5617597699165344 - call $~lib/math/NativeMathf.log10 f32.const -0.25044935941696167 f32.const 0.2126826047897339 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31257,10 +30854,9 @@ unreachable end f32.const 0.7741522789001465 - call $~lib/math/NativeMathf.log10 f32.const -0.1111735999584198 f32.const 0.46515095233917236 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31271,10 +30867,9 @@ unreachable end f32.const -0.6787636876106262 - call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31285,10 +30880,9 @@ unreachable end f32.const 0 - call $~lib/math/NativeMathf.log10 f32.const -inf f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31299,10 +30893,9 @@ unreachable end f32.const -0 - call $~lib/math/NativeMathf.log10 f32.const -inf f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31313,10 +30906,9 @@ unreachable end f32.const -7.888609052210118e-31 - call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31327,10 +30919,9 @@ unreachable end f32.const 1 - call $~lib/math/NativeMathf.log10 f32.const 0 f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31341,10 +30932,9 @@ unreachable end f32.const -1 - call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31355,10 +30945,9 @@ unreachable end f32.const inf - call $~lib/math/NativeMathf.log10 f32.const inf f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31369,10 +30958,9 @@ unreachable end f32.const -inf - call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -31383,10 +30971,9 @@ unreachable end f32.const nan:0x400000 - call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/check + call $std/math/test_log10f i32.eqz if i32.const 0 @@ -44569,9 +44156,9 @@ local.get $2 i64.xor local.tee $2 + local.get $2 i64.const 17 i64.shr_u - local.get $2 i64.xor i64.xor local.get $3 diff --git a/tests/compiler/std/mod.optimized.wat b/tests/compiler/std/mod.optimized.wat index 3a905d40e0..97a015ffff 100644 --- a/tests/compiler/std/mod.optimized.wat +++ b/tests/compiler/std/mod.optimized.wat @@ -137,89 +137,91 @@ i64.or end local.set $5 - block $folding-inner0 - loop $while-continue|0 - local.get $6 - local.get $7 - i64.gt_s - if + loop $while-continue|0 + local.get $6 + local.get $7 + i64.gt_s + if + local.get $3 + local.get $5 + i64.ge_u + if (result i64) + local.get $0 + f64.const 0 + f64.mul + local.get $3 + local.get $5 + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod + drop local.get $3 local.get $5 - i64.ge_u - if (result i64) - local.get $3 - local.get $5 - i64.eq - br_if $folding-inner0 - local.get $3 - local.get $5 - i64.sub - else - local.get $3 - end - i64.const 1 - i64.shl - local.set $3 - local.get $6 - i64.const 1 i64.sub - local.set $6 - br $while-continue|0 + else + local.get $3 end + i64.const 1 + i64.shl + local.set $3 + local.get $6 + i64.const 1 + i64.sub + local.set $6 + br $while-continue|0 end - local.get $6 + end + local.get $6 + local.get $3 + local.get $5 + i64.ge_u + if + local.get $0 + f64.const 0 + f64.mul local.get $3 local.get $5 - i64.ge_u - if - local.get $3 - local.get $5 - i64.eq - br_if $folding-inner0 - local.get $3 - local.get $5 - i64.sub - local.set $3 - end + i64.eq + br_if $__inlined_func$~lib/math/NativeMath.mod + drop local.get $3 - i64.const 11 - i64.shl - i64.clz - local.tee $6 + local.get $5 i64.sub - local.set $5 - local.get $3 - local.get $6 - i64.shl local.set $3 + end + local.get $3 + i64.const 11 + i64.shl + i64.clz + local.tee $6 + i64.sub + local.set $5 + local.get $3 + local.get $6 + i64.shl + local.set $3 + local.get $5 + i64.const 0 + i64.gt_s + if (result i64) + local.get $3 + i64.const 4503599627370496 + i64.sub local.get $5 - i64.const 0 - i64.gt_s - if (result i64) - local.get $3 - i64.const 4503599627370496 - i64.sub - local.get $5 - i64.const 52 - i64.shl - i64.or - else - local.get $3 - i64.const 1 - local.get $5 - i64.sub - i64.shr_u - end - local.get $8 - i64.const 63 + i64.const 52 i64.shl i64.or - f64.reinterpret_i64 - br $__inlined_func$~lib/math/NativeMath.mod + else + local.get $3 + i64.const 1 + local.get $5 + i64.sub + i64.shr_u end - local.get $0 - f64.const 0 - f64.mul + local.get $8 + i64.const 63 + i64.shl + i64.or + f64.reinterpret_i64 end local.tee $1 local.get $1 @@ -398,87 +400,89 @@ i32.shl end local.set $4 - block $folding-inner0 - loop $while-continue|0 - local.get $5 - local.get $6 - i32.gt_s - if + loop $while-continue|0 + local.get $5 + local.get $6 + i32.gt_s + if + local.get $3 + local.get $4 + i32.ge_u + if (result i32) + local.get $0 + f32.const 0 + f32.mul + local.get $3 + local.get $4 + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.mod + drop local.get $3 local.get $4 - i32.ge_u - if (result i32) - local.get $3 - local.get $4 - i32.eq - br_if $folding-inner0 - local.get $3 - local.get $4 - i32.sub - else - local.get $3 - end - i32.const 1 - i32.shl - local.set $3 - local.get $5 - i32.const 1 i32.sub - local.set $5 - br $while-continue|0 + else + local.get $3 end + i32.const 1 + i32.shl + local.set $3 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|0 end - local.get $5 + end + local.get $5 + local.get $3 + local.get $4 + i32.ge_u + if + local.get $0 + f32.const 0 + f32.mul local.get $3 local.get $4 - i32.ge_u - if - local.get $3 - local.get $4 - i32.eq - br_if $folding-inner0 - local.get $3 - local.get $4 - i32.sub - local.set $3 - end + i32.eq + br_if $__inlined_func$~lib/math/NativeMathf.mod + drop local.get $3 - i32.const 8 - i32.shl - i32.clz - local.tee $5 + local.get $4 i32.sub - local.set $4 - local.get $3 - local.get $5 - i32.shl local.set $3 + end + local.get $3 + i32.const 8 + i32.shl + i32.clz + local.tee $5 + i32.sub + local.set $4 + local.get $3 + local.get $5 + i32.shl + local.set $3 + local.get $4 + i32.const 0 + i32.gt_s + if (result i32) + local.get $3 + i32.const 8388608 + i32.sub local.get $4 - i32.const 0 - i32.gt_s - if (result i32) - local.get $3 - i32.const 8388608 - i32.sub - local.get $4 - i32.const 23 - i32.shl - i32.or - else - local.get $3 - i32.const 1 - local.get $4 - i32.sub - i32.shr_u - end - local.get $7 + i32.const 23 + i32.shl i32.or - f32.reinterpret_i32 - br $__inlined_func$~lib/math/NativeMathf.mod + else + local.get $3 + i32.const 1 + local.get $4 + i32.sub + i32.shr_u end - local.get $0 - f32.const 0 - f32.mul + local.get $7 + i32.or + f32.reinterpret_i32 end local.tee $0 local.get $0 diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index 37485b7a44..c13d239956 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -125,6 +125,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -132,10 +133,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17860 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -149,7 +150,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -174,8 +175,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -183,10 +185,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1440 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -195,7 +198,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -210,16 +213,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -227,11 +230,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1404,8 +1407,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 @@ -1434,64 +1437,64 @@ local.get $0 i32.const 20 i32.add - local.tee $1 + local.tee $0 i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 8 i32.add - local.tee $0 + local.tee $1 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=3 - local.get $0 + local.get $1 i32.const 4 i32.sub i32.const 0 i32.store8 local.get $4 - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.store - local.get $1 + local.get $0 f32.const 2 f32.store offset=4 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load i32.const 1 i32.add i32.store - local.get $1 + local.get $0 f32.const 3 f32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $std/new/aClass ) (func $~lib/rt/__visit_members (param $0 i32) diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 2f5135eadb..96a78110d9 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -184,6 +184,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -191,10 +192,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17956 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -208,7 +209,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -233,8 +234,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -242,10 +244,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1520 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -254,7 +257,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1524 @@ -269,16 +272,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -286,11 +289,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1270,17 +1273,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1293,16 +1296,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1310,15 +1313,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1345,12 +1348,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1360,7 +1363,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1369,19 +1372,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1407,26 +1410,26 @@ i32.const 8 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1441,42 +1444,42 @@ local.get $1 i32.const 20 i32.add - local.tee $1 + local.tee $0 i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 8 i32.add - local.tee $0 + local.tee $1 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=1 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 0 i32.store8 offset=3 - local.get $0 + local.get $1 i32.const 4 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 ) (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2065,6 +2068,7 @@ (func $start:std/operator-overloading (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -2129,8 +2133,10 @@ global.set $std/operator-overloading/a2 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a1 - local.tee $1 + local.tee $0 i32.store + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a2 local.tee $0 @@ -2177,11 +2183,13 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/s1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/s2 local.tee $0 i32.store offset=4 @@ -2225,11 +2233,13 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/m1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/m2 local.tee $0 i32.store offset=4 @@ -2275,11 +2285,13 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/d1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/d2 local.tee $0 i32.store offset=4 @@ -2325,11 +2337,13 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/f1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/f2 local.tee $0 i32.store offset=4 @@ -2372,11 +2386,13 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/p1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/p2 local.tee $0 i32.store offset=4 @@ -2422,11 +2438,13 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/n1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/n2 local.tee $0 i32.store offset=4 @@ -2472,11 +2490,13 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/o1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/o2 local.tee $0 i32.store offset=4 @@ -2522,11 +2542,13 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/x1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/x2 local.tee $0 i32.store offset=4 @@ -2572,23 +2594,26 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/eq1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/eq2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 + local.tee $2 i32.load i32.eq if (result i32) local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=4 i32.eq else @@ -2615,23 +2640,26 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq4 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/eq3 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/eq4 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 + local.tee $2 i32.load i32.eq if (result i32) local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=4 i32.eq else @@ -2648,23 +2676,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/eq1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/eq2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 + local.tee $2 i32.load i32.ne if (result i32) local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=4 i32.ne else @@ -2681,23 +2712,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/eq3 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/eq4 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 + local.tee $2 i32.load i32.ne if (result i32) local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=4 i32.ne else @@ -2724,23 +2758,26 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gt2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/gt1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/gt2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 + local.tee $2 i32.load i32.gt_s if (result i32) local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=4 i32.gt_s else @@ -2767,23 +2804,26 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gte2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/gte1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/gte2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 + local.tee $2 i32.load i32.ge_s if (result i32) local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=4 i32.ge_s else @@ -2810,23 +2850,26 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/le2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/le1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/le2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 + local.tee $2 i32.load i32.lt_s if (result i32) local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=4 i32.lt_s else @@ -2853,23 +2896,26 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/leq2 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/operator-overloading/leq1 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.set $1 + local.get $2 global.get $std/operator-overloading/leq2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 + local.tee $2 i32.load i32.le_s if (result i32) local.get $1 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=4 i32.le_s else @@ -3140,11 +3186,12 @@ local.tee $0 i32.store local.get $0 + local.tee $1 i32.load if (result i32) i32.const 1 else - local.get $0 + local.get $1 i32.load offset=4 end i32.eqz @@ -3380,18 +3427,18 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/operator-overloading/ais1 local.tee $1 + global.get $std/operator-overloading/ais1 + local.tee $0 i32.store - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 + local.get $0 i32.load i32.const 1 i32.add - local.get $1 + local.get $0 i32.load offset=4 i32.const 1 i32.add @@ -3403,21 +3450,21 @@ global.set $std/operator-overloading/ais2 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais1 - local.tee $1 + local.tee $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais2 - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais @@ -3466,21 +3513,21 @@ global.set $std/operator-overloading/aii2 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/aii1 - local.tee $1 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/aii2 - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $1 - i32.load local.get $0 i32.load - i32.add local.get $1 - i32.load offset=4 + i32.load + i32.add local.get $0 i32.load offset=4 + local.get $1 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index ffd55b7272..c3457e8d4b 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -123,6 +123,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -130,10 +131,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18220 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -147,7 +148,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -172,19 +173,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1648 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -193,7 +196,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1652 @@ -208,28 +211,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1492,7 +1495,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1520,11 +1523,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1543,9 +1546,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1561,7 +1564,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1576,18 +1579,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1598,7 +1601,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1612,13 +1615,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1631,89 +1637,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1721,7 +1727,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -1808,60 +1814,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $3 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 - local.get $3 + local.set $8 + local.get $4 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $3 + local.get $8 i32.ne if - local.get $7 + local.get $3 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load8_s - local.tee $8 + local.tee $3 i32.store8 local.get $2 - local.get $8 + local.get $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -1871,24 +1878,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor local.get $1 i32.and @@ -1896,10 +1903,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $3 i32.load i32.store offset=4 - local.get $8 + local.get $3 local.get $2 i32.store local.get $2 @@ -1907,10 +1914,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 8 i32.add - local.set $7 + local.set $3 br $while-continue|0 end end @@ -1924,13 +1931,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -1945,77 +1952,79 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 - i32.load - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + (local $5 i32) + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|0 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $3 + drop + local.get $5 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz if local.get $0 @@ -2049,18 +2058,18 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $3 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add local.tee $2 local.get $1 @@ -2799,16 +2808,237 @@ i32.store8 end ) + (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + i32.const 20 + i32.sub + local.tee $2 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + local.get $1 + i32.ge_u + if + local.get $2 + local.get $1 + i32.store offset=16 + local.get $0 + return + end + local.get $1 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.set $4 + local.get $1 + local.get $2 + i32.load offset=16 + local.tee $2 + local.get $1 + local.get $2 + i32.lt_u + select + local.set $5 + block $~lib/util/memory/memmove|inlined.0 + local.get $4 + local.tee $1 + local.get $0 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $1 + i32.sub + local.get $5 + i32.sub + i32.const 0 + local.get $5 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $1 + local.get $0 + local.get $5 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.gt_u + if + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $1 + i32.const 7 + i32.and + if + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $1 + local.get $0 + i64.load + i64.store + local.get $5 + i32.const 8 + i32.sub + local.set $5 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 8 + i32.add + local.set $0 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $5 + if + local.get $1 + local.tee $3 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|2 + end + end + else + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $1 + local.get $5 + i32.add + i32.const 7 + i32.and + if + local.get $5 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $5 + i32.const 8 + i32.ge_u + if + local.get $5 + i32.const 8 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $5 + if + local.get $5 + i32.const 1 + i32.sub + local.tee $5 + local.get $1 + i32.add + local.get $0 + local.get $5 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + local.get $4 + ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) local.get $0 i32.load offset=8 - local.tee $8 + local.tee $4 local.get $2 i32.shr_u local.get $1 @@ -2827,9 +3057,6 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i32.load - local.set $4 local.get $1 i32.const 8 local.get $1 @@ -2839,272 +3066,53 @@ local.get $2 i32.shl local.set $1 - block $__inlined_func$~lib/rt/itcms/__renew (result i32) - local.get $3 - if (result i32) - local.get $8 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.lt_u - select - else - local.get $1 - end - local.tee $6 + local.get $0 + i32.load + local.tee $5 + local.get $3 + if local.get $4 + i32.const 1 + i32.shl + local.tee $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select local.tee $2 - i32.const 20 - i32.sub - local.tee $1 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $1 - local.get $6 - i32.store offset=16 - local.get $2 - br $__inlined_func$~lib/rt/itcms/__renew - end - local.get $6 - local.get $1 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $9 - local.set $3 - local.get $6 local.get $1 - i32.load offset=16 - local.tee $1 local.get $1 - local.get $6 - i32.gt_u + local.get $2 + i32.lt_u select - local.set $7 - block $~lib/util/memory/memmove|inlined.0 - local.get $3 - local.get $2 - local.tee $1 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $1 - local.get $3 - i32.sub - local.get $7 - i32.sub - i32.const 0 - local.get $7 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $3 - local.get $1 - local.get $7 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $1 - local.get $3 - i32.gt_u - if - local.get $1 - i32.const 7 - i32.and - local.get $3 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $3 - i32.const 7 - i32.and - if - local.get $7 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $3 - local.tee $5 - i32.const 1 - i32.add - local.set $3 - local.get $1 - local.tee $4 - i32.const 1 - i32.add - local.set $1 - local.get $5 - local.get $4 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $7 - i32.const 8 - i32.ge_u - if - local.get $3 - local.get $1 - i64.load - i64.store - local.get $7 - i32.const 8 - i32.sub - local.set $7 - local.get $3 - i32.const 8 - i32.add - local.set $3 - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $7 - if - local.get $3 - local.tee $5 - i32.const 1 - i32.add - local.set $3 - local.get $1 - local.tee $4 - i32.const 1 - i32.add - local.set $1 - local.get $5 - local.get $4 - i32.load8_u - i32.store8 - local.get $7 - i32.const 1 - i32.sub - local.set $7 - br $while-continue|2 - end - end - else - local.get $1 - i32.const 7 - i32.and - local.get $3 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $3 - local.get $7 - i32.add - i32.const 7 - i32.and - if - local.get $7 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $3 - local.get $7 - i32.const 1 - i32.sub - local.tee $7 - i32.add - local.get $1 - local.get $7 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $7 - i32.const 8 - i32.ge_u - if - local.get $3 - local.get $7 - i32.const 8 - i32.sub - local.tee $7 - i32.add - local.get $1 - local.get $7 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $7 - if - local.get $3 - local.get $7 - i32.const 1 - i32.sub - local.tee $7 - i32.add - local.get $1 - local.get $7 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - local.get $9 + local.set $1 end - local.tee $1 - local.get $8 + local.get $1 + call $~lib/rt/itcms/__renew + local.tee $2 + local.get $4 i32.add - local.get $6 - local.get $8 + local.get $1 + local.get $4 i32.sub call $~lib/memory/memory.fill - local.get $1 local.get $2 + local.get $5 i32.ne if local.get $0 - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 call $~lib/rt/itcms/__link end local.get $0 - local.get $6 + local.get $1 i32.store offset=8 end ) @@ -3167,50 +3175,51 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -3227,6 +3236,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -3235,9 +3245,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -3343,27 +3352,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 call $~lib/set/Set#constructor - local.tee $2 + local.tee $11 i32.store loop $for-loop|1 - local.get $0 + local.get $1 i32.extend8_s i32.const 100 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3373,62 +3382,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -3437,14 +3446,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3454,62 +3463,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - i32.const 16 + local.tee $3 + local.get $3 + i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|02 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -3519,14 +3528,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -3539,18 +3548,18 @@ unreachable end i32.const 50 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i32.extend8_s i32.const 100 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3560,62 +3569,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|05 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -3625,14 +3634,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -3642,62 +3651,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load8_u - local.get $0 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|08 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -3707,14 +3716,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|3 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -3727,10 +3736,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - local.set $0 - local.get $1 + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3742,13 +3749,13 @@ local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $11 i32.load offset=8 - local.set $10 - local.get $2 + local.set $6 + local.get $11 i32.load offset=16 - local.tee $11 - local.set $5 + local.tee $10 + local.set $8 local.get $1 i32.const 8 i32.sub @@ -3782,7 +3789,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $5 + local.get $8 i32.const 1073741820 i32.gt_u if @@ -3794,34 +3801,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.const 8 - local.get $5 + local.get $8 i32.const 8 i32.gt_u select - local.tee $8 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $6 - local.get $8 + local.get $7 + local.get $9 call $~lib/memory/memory.fill local.get $3 - local.get $6 + local.get $7 i32.store local.get $3 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $3 - local.get $6 + local.get $7 i32.store offset=4 local.get $3 - local.get $8 + local.get $9 i32.store offset=8 local.get $3 - local.get $5 + local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3831,14 +3838,14 @@ local.get $3 i32.store loop $for-loop|0 - local.get $7 - local.get $11 + local.get $5 + local.get $10 i32.lt_s if - local.get $7 + local.get $5 i32.const 3 i32.shl - local.get $10 + local.get $6 i32.add local.tee $1 i32.load offset=4 @@ -3856,10 +3863,10 @@ i32.add local.set $0 end - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|0 end end @@ -3876,19 +3883,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $9 i32.store offset=8 loop $for-loop|4 - local.get $3 + local.get $1 i32.load offset=12 - local.get $4 + local.get $2 i32.gt_s if - local.get $3 - local.get $4 + local.get $1 + local.get $2 call $~lib/array/Array#__get local.tee $6 i32.extend8_s @@ -3900,49 +3908,49 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.set $0 - local.get $2 + local.set $3 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $7 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u local.get $6 i32.const 255 @@ -3950,17 +3958,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $7 + local.get $10 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -3970,21 +3978,21 @@ call $~lib/builtins/abort unreachable end + local.get $9 local.get $1 - local.get $3 - local.get $4 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|4 end end - local.get $1 + local.get $9 i32.load offset=20 - local.get $2 + local.get $11 i32.load offset=20 i32.ne if @@ -3996,18 +4004,19 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|6 - local.get $4 + local.get $2 i32.extend8_s i32.const 50 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4017,62 +4026,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u - local.get $4 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -4082,14 +4091,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#delete - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4099,62 +4108,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u - local.get $4 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -4163,14 +4172,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|6 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -4183,18 +4192,19 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|8 - local.get $4 + local.get $2 i32.extend8_s i32.const 50 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 + local.tee $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4204,62 +4214,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u - local.get $4 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -4268,14 +4278,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4285,62 +4295,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u - local.get $4 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -4350,14 +4360,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#delete - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.extend8_s i32.const -1028477379 i32.mul @@ -4367,62 +4377,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u - local.get $4 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -4431,14 +4441,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|8 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -4450,9 +4460,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $11 call $~lib/set/Set#clear - local.get $2 + local.get $11 i32.load offset=20 if i32.const 0 @@ -4499,60 +4509,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $3 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 - local.get $3 + local.set $8 + local.get $4 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $3 + local.get $8 i32.ne if - local.get $7 + local.get $3 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load8_u - local.tee $8 + local.tee $3 i32.store8 local.get $2 - local.get $8 + local.get $3 + i32.const 255 + i32.and i32.const -1028477379 i32.mul i32.const 374761394 @@ -4561,24 +4574,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor local.get $1 i32.and @@ -4586,10 +4599,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $3 i32.load i32.store offset=4 - local.get $8 + local.get $3 local.get $2 i32.store local.get $2 @@ -4597,10 +4610,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 8 i32.add - local.set $7 + local.set $3 br $while-continue|0 end end @@ -4614,13 +4627,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -4635,78 +4648,80 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 - i32.load - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find - loop $while-continue|0 - local.get $2 - if - local.get $2 - i32.load offset=4 - local.tee $3 + (local $5 i32) + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + loop $while-continue|0 + local.get $3 + if + local.get $3 + local.get $3 + i32.load offset=4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load8_u - local.get $1 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $3 + drop + local.get $5 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz if local.get $0 @@ -4740,18 +4755,18 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $3 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add local.tee $2 local.get $1 @@ -4802,51 +4817,52 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -4863,6 +4879,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -4871,9 +4888,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -4948,94 +4964,99 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $6 i64.const 0 i64.store - local.get $1 + local.get $6 i32.const 0 i32.store offset=8 - local.get $1 + local.get $6 call $~lib/set/Set#constructor - local.tee $2 + local.tee $0 i32.store loop $for-loop|1 - local.get $0 + local.get $2 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $2 - i32.load - local.get $2 - i32.load offset=4 local.get $0 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find + local.set $5 + local.get $2 + local.set $4 + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $6 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|0 - local.get $1 + local.get $5 if - local.get $1 + local.get $5 + local.get $5 i32.load offset=4 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $5 i32.load8_u - local.get $0 + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $5 + drop + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $5 br $while-continue|0 end end i32.const 0 - local.set $1 end - local.get $1 if i32.const 0 i32.const 1568 @@ -5044,80 +5065,87 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $0 - call $~lib/set/Set#add local.get $2 - i32.load - local.get $2 - i32.load offset=4 + call $~lib/set/Set#add local.get $0 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find1 - loop $while-continue|02 - local.get $1 + local.set $5 + local.get $2 + local.set $4 + block $__inlined_func$~lib/set/Set#find1 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $6 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + loop $while-continue|02 + local.get $5 if - local.get $1 + local.get $5 + local.get $5 i32.load offset=4 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $5 i32.load8_u - local.get $0 + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $5 + drop + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $5 br $while-continue|02 end end i32.const 0 - local.set $1 end - local.get $1 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5127,14 +5155,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $2 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -5147,85 +5175,92 @@ unreachable end i32.const 50 - local.set $0 + local.set $2 loop $for-loop|3 - local.get $0 + local.get $2 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $2 - i32.load - local.get $2 - i32.load offset=4 local.get $0 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find4 + local.set $5 + local.get $2 + local.set $4 + block $__inlined_func$~lib/set/Set#find4 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $6 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|05 - local.get $1 + local.get $5 if - local.get $1 + local.get $5 + local.get $5 i32.load offset=4 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $5 i32.load8_u - local.get $0 + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $5 + drop + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $5 br $while-continue|05 end end i32.const 0 - local.set $1 end - local.get $1 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5235,80 +5270,87 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $0 - call $~lib/set/Set#add - local.get $2 - i32.load local.get $2 - i32.load offset=4 + call $~lib/set/Set#add local.get $0 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find7 + local.set $5 + local.get $2 + local.set $4 + block $__inlined_func$~lib/set/Set#find7 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $6 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|08 - local.get $1 + local.get $5 if - local.get $1 + local.get $5 + local.get $5 i32.load offset=4 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $5 i32.load8_u - local.get $0 + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $5 + drop + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $5 br $while-continue|08 end end i32.const 0 - local.set $1 end - local.get $1 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5318,14 +5360,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -5338,10 +5380,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - local.set $0 - local.get $1 + local.tee $6 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5350,17 +5390,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $2 + local.get $0 i32.load offset=8 local.set $10 - local.get $2 + local.get $0 i32.load offset=16 local.tee $11 - local.set $5 - local.get $1 + local.set $4 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5369,31 +5409,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $3 + local.get $6 i32.const 16 i32.const 6 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $6 i32.store - local.get $3 + local.get $6 i32.const 0 i32.store - local.get $3 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link - local.get $3 + local.get $6 i32.const 0 i32.store offset=4 - local.get $3 + local.get $6 i32.const 0 i32.store offset=8 - local.get $3 + local.get $6 i32.const 0 i32.store offset=12 - local.get $5 + local.get $4 i32.const 1073741820 i32.gt_u if @@ -5405,41 +5445,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 8 - local.get $5 + local.get $4 i32.const 8 i32.gt_u select local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $8 call $~lib/memory/memory.fill - local.get $3 local.get $6 + local.get $5 i32.store - local.get $3 local.get $6 + local.get $5 call $~lib/rt/itcms/__link - local.get $3 local.get $6 + local.get $5 i32.store offset=4 - local.get $3 + local.get $6 local.get $8 i32.store offset=8 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.store loop $for-loop|0 local.get $7 @@ -5451,21 +5491,21 @@ i32.shl local.get $10 i32.add - local.tee $1 + local.tee $2 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $6 local.get $3 - local.get $0 - local.get $1 + local.get $2 i32.load8_u call $~lib/array/Array#__set - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 end local.get $7 i32.const 1 @@ -5474,105 +5514,110 @@ br $for-loop|0 end end + local.get $6 local.get $3 - local.get $0 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity + local.get $6 local.get $3 - local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|4 - local.get $3 + local.get $6 i32.load offset=12 - local.get $4 + local.get $1 i32.gt_s if - local.get $3 - local.get $4 - call $~lib/array/Array#__get - local.tee $6 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.set $0 - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $0 - i32.const 16 - i32.shr_u local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find10 + local.set $3 + local.get $6 + local.get $1 + call $~lib/array/Array#__get + local.set $4 + block $__inlined_func$~lib/set/Set#find10 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $4 + local.tee $5 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|011 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $7 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u - local.get $6 + local.get $5 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $7 + drop + local.get $4 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $0 end - local.get $0 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5582,22 +5627,22 @@ call $~lib/builtins/abort unreachable end + local.get $2 + local.get $6 local.get $1 - local.get $3 - local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|4 end end - local.get $1 - i32.load offset=20 local.get $2 i32.load offset=20 + local.get $0 + i32.load offset=20 i32.ne if i32.const 0 @@ -5608,67 +5653,73 @@ unreachable end i32.const 0 - local.set $4 + local.set $1 loop $for-loop|6 - local.get $4 + local.get $1 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find13 + local.set $3 + local.get $1 + local.set $2 + block $__inlined_func$~lib/set/Set#find13 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|014 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u local.get $4 i32.const 255 @@ -5676,17 +5727,18 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $3 + drop + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $0 end - local.get $0 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5696,62 +5748,68 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $0 + local.get $1 call $~lib/set/Set#delete - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find16 + local.set $3 + local.get $1 + local.set $2 + block $__inlined_func$~lib/set/Set#find16 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|017 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u local.get $4 i32.const 255 @@ -5759,17 +5817,16 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $3 + drop + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $0 end - local.get $0 if i32.const 0 i32.const 1568 @@ -5778,14 +5835,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|6 end end - local.get $2 + local.get $0 i32.load offset=20 i32.const 50 i32.ne @@ -5798,67 +5855,73 @@ unreachable end i32.const 0 - local.set $4 + local.set $1 loop $for-loop|8 - local.get $4 + local.get $1 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find19 + local.set $3 + local.get $1 + local.set $2 + block $__inlined_func$~lib/set/Set#find19 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|020 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u local.get $4 i32.const 255 @@ -5866,17 +5929,16 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $3 + drop + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $0 end - local.get $0 if i32.const 0 i32.const 1568 @@ -5885,62 +5947,68 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 - call $~lib/set/Set#add - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u + local.get $1 + call $~lib/set/Set#add local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find22 + local.set $3 + local.get $1 + local.set $2 + block $__inlined_func$~lib/set/Set#find22 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|023 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u local.get $4 i32.const 255 @@ -5948,17 +6016,18 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $3 + drop + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $0 end - local.get $0 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -5968,62 +6037,68 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 - call $~lib/set/Set#delete - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u + local.get $1 + call $~lib/set/Set#delete local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find25 + local.set $3 + local.get $1 + local.set $2 + block $__inlined_func$~lib/set/Set#find25 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|026 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load8_u local.get $4 i32.const 255 @@ -6031,17 +6106,16 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $3 + drop + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $0 end - local.get $0 if i32.const 0 i32.const 1568 @@ -6050,14 +6124,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|8 end end - local.get $2 + local.get $0 i32.load offset=20 i32.const 50 i32.ne @@ -6069,9 +6143,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 call $~lib/set/Set#clear - local.get $2 + local.get $0 i32.load offset=20 if i32.const 0 @@ -6118,60 +6192,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $3 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 - local.get $3 + local.set $8 + local.get $4 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $3 + local.get $8 i32.ne if - local.get $7 + local.get $3 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load16_s - local.tee $8 + local.tee $3 i32.store16 local.get $2 - local.get $8 + local.get $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -6181,24 +6256,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor local.get $1 i32.and @@ -6206,10 +6281,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $3 i32.load i32.store offset=4 - local.get $8 + local.get $3 local.get $2 i32.store local.get $2 @@ -6217,10 +6292,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 8 i32.add - local.set $7 + local.set $3 br $while-continue|0 end end @@ -6234,13 +6309,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -6255,77 +6330,79 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 - i32.load - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + (local $5 i32) + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|0 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $3 + drop + local.get $5 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz if local.get $0 @@ -6359,18 +6436,18 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $3 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add local.tee $2 local.get $1 @@ -6462,50 +6539,51 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -6522,6 +6600,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -6530,9 +6609,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -6607,27 +6685,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 call $~lib/set/Set#constructor - local.tee $2 + local.tee $11 i32.store loop $for-loop|1 - local.get $0 + local.get $1 i32.extend16_s i32.const 100 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -6637,62 +6715,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -6701,14 +6779,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -6718,62 +6796,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|02 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -6783,14 +6861,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -6803,18 +6881,18 @@ unreachable end i32.const 50 - local.set $0 + local.set $1 loop $for-loop|3 - local.get $0 + local.get $1 i32.extend16_s i32.const 100 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -6824,62 +6902,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|05 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -6889,14 +6967,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -6906,62 +6984,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $3 i32.load16_u - local.get $0 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|08 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -6971,14 +7049,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|3 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -6988,13 +7066,11 @@ i32.const 18 i32.const 3 call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - local.set $0 - local.get $1 + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7006,13 +7082,13 @@ local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $11 i32.load offset=8 - local.set $10 - local.get $2 + local.set $6 + local.get $11 i32.load offset=16 - local.tee $11 - local.set $5 + local.tee $10 + local.set $8 local.get $1 i32.const 8 i32.sub @@ -7046,7 +7122,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $5 + local.get $8 i32.const 536870910 i32.gt_u if @@ -7058,36 +7134,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.const 8 - local.get $5 + local.get $8 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $8 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $6 - local.get $8 + local.get $7 + local.get $9 call $~lib/memory/memory.fill local.get $3 - local.get $6 + local.get $7 i32.store local.get $3 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $3 - local.get $6 + local.get $7 i32.store offset=4 local.get $3 - local.get $8 + local.get $9 i32.store offset=8 local.get $3 - local.get $5 + local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7097,14 +7173,14 @@ local.get $3 i32.store loop $for-loop|0 - local.get $7 - local.get $11 + local.get $5 + local.get $10 i32.lt_s if - local.get $7 + local.get $5 i32.const 3 i32.shl - local.get $10 + local.get $6 i32.add local.tee $1 i32.load offset=4 @@ -7122,10 +7198,10 @@ i32.add local.set $0 end - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|0 end end @@ -7142,19 +7218,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $9 i32.store offset=8 loop $for-loop|4 - local.get $3 + local.get $1 i32.load offset=12 - local.get $4 + local.get $2 i32.gt_s if - local.get $3 - local.get $4 + local.get $1 + local.get $2 call $~lib/array/Array#__get local.tee $6 i32.extend16_s @@ -7166,49 +7243,49 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.set $0 - local.get $2 + local.set $3 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $7 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u local.get $6 i32.const 65535 @@ -7216,17 +7293,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $7 + local.get $10 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -7236,21 +7313,21 @@ call $~lib/builtins/abort unreachable end + local.get $9 local.get $1 - local.get $3 - local.get $4 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|4 end end - local.get $1 + local.get $9 i32.load offset=20 - local.get $2 + local.get $11 i32.load offset=20 i32.ne if @@ -7262,18 +7339,19 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|6 - local.get $4 + local.get $2 i32.extend16_s i32.const 50 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7283,62 +7361,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u - local.get $4 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -7348,14 +7426,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#delete - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7365,62 +7443,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u - local.get $4 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -7429,14 +7507,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|6 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -7449,18 +7527,19 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|8 - local.get $4 + local.get $2 i32.extend16_s i32.const 50 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 + local.tee $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7470,62 +7549,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u - local.get $4 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -7534,14 +7613,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7551,62 +7630,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u - local.get $4 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -7616,14 +7695,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#delete - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.extend16_s i32.const -1028477379 i32.mul @@ -7633,62 +7712,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u - local.get $4 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -7697,14 +7776,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|8 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -7716,9 +7795,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $11 call $~lib/set/Set#clear - local.get $2 + local.get $11 i32.load offset=20 if i32.const 0 @@ -7765,60 +7844,63 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $3 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 - local.get $3 + local.set $8 + local.get $4 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $3 + local.get $8 i32.ne if - local.get $7 + local.get $3 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load16_u - local.tee $8 + local.tee $3 i32.store16 local.get $2 - local.get $8 + local.get $3 + i32.const 65535 + i32.and i32.const -1028477379 i32.mul i32.const 374761395 @@ -7827,24 +7909,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor local.get $1 i32.and @@ -7852,10 +7934,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $3 i32.load i32.store offset=4 - local.get $8 + local.get $3 local.get $2 i32.store local.get $2 @@ -7863,10 +7945,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 8 i32.add - local.set $7 + local.set $3 br $while-continue|0 end end @@ -7880,13 +7962,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -7901,78 +7983,80 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 - i32.load - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + (local $5 i32) + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|0 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $3 i32.load16_u - local.get $1 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $3 + drop + local.get $5 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz if local.get $0 @@ -8006,18 +8090,18 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $3 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add local.tee $2 local.get $1 @@ -8070,51 +8154,52 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -8131,6 +8216,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -8139,9 +8225,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -8216,94 +8301,99 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $6 i64.const 0 i64.store - local.get $1 + local.get $6 i32.const 0 i32.store offset=8 - local.get $1 + local.get $6 call $~lib/set/Set#constructor - local.tee $2 + local.tee $0 i32.store loop $for-loop|1 - local.get $0 + local.get $2 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $2 - i32.load - local.get $2 - i32.load offset=4 local.get $0 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find + local.set $5 + local.get $2 + local.set $4 + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $6 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|0 - local.get $1 + local.get $5 if - local.get $1 + local.get $5 + local.get $5 i32.load offset=4 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $5 i32.load16_u - local.get $0 + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $5 + drop + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $5 br $while-continue|0 end end i32.const 0 - local.set $1 end - local.get $1 if i32.const 0 i32.const 1568 @@ -8312,80 +8402,87 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $0 - call $~lib/set/Set#add - local.get $2 - i32.load local.get $2 - i32.load offset=4 + call $~lib/set/Set#add local.get $0 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find1 + local.set $5 + local.get $2 + local.set $4 + block $__inlined_func$~lib/set/Set#find1 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $6 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|02 - local.get $1 + local.get $5 if - local.get $1 + local.get $5 + local.get $5 i32.load offset=4 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $5 i32.load16_u - local.get $0 + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $5 + drop + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $5 br $while-continue|02 end end i32.const 0 - local.set $1 end - local.get $1 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -8395,14 +8492,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|1 end end - local.get $2 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -8415,85 +8512,92 @@ unreachable end i32.const 50 - local.set $0 + local.set $2 loop $for-loop|3 - local.get $0 + local.get $2 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $2 - i32.load - local.get $2 - i32.load offset=4 local.get $0 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find4 + local.set $5 + local.get $2 + local.set $4 + block $__inlined_func$~lib/set/Set#find4 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $6 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|05 - local.get $1 + local.get $5 if - local.get $1 + local.get $5 + local.get $5 i32.load offset=4 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $5 i32.load16_u - local.get $0 + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $5 + drop + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $5 br $while-continue|05 end end i32.const 0 - local.set $1 end - local.get $1 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -8503,80 +8607,87 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $0 - call $~lib/set/Set#add - local.get $2 - i32.load local.get $2 - i32.load offset=4 + call $~lib/set/Set#add local.get $0 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find7 + local.set $5 + local.get $2 + local.set $4 + block $__inlined_func$~lib/set/Set#find7 (result i32) + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + local.tee $6 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $5 + i32.const 15 + i32.shr_u + local.get $5 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $5 + i32.const 13 + i32.shr_u + local.get $5 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $5 + i32.const 16 + i32.shr_u + local.get $5 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 loop $while-continue|08 - local.get $1 + local.get $5 if - local.get $1 + local.get $5 + local.get $5 i32.load offset=4 - local.tee $5 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $5 i32.load16_u - local.get $0 + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $5 + drop + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $5 br $while-continue|08 end end i32.const 0 - local.set $1 end - local.get $1 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -8586,14 +8697,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $0 i32.load offset=20 i32.const 100 i32.ne @@ -8606,10 +8717,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - local.set $0 - local.get $1 + local.tee $6 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8618,17 +8727,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $2 + local.get $0 i32.load offset=8 local.set $10 - local.get $2 + local.get $0 i32.load offset=16 local.tee $11 - local.set $5 - local.get $1 + local.set $4 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8637,31 +8746,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $6 i64.const 0 i64.store - local.get $3 + local.get $6 i32.const 16 i32.const 10 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $6 i32.store - local.get $3 + local.get $6 i32.const 0 i32.store - local.get $3 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link - local.get $3 + local.get $6 i32.const 0 i32.store offset=4 - local.get $3 + local.get $6 i32.const 0 i32.store offset=8 - local.get $3 + local.get $6 i32.const 0 i32.store offset=12 - local.get $5 + local.get $4 i32.const 536870910 i32.gt_u if @@ -8673,9 +8782,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 8 - local.get $5 + local.get $4 i32.const 8 i32.gt_u select @@ -8684,32 +8793,32 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $5 i32.store offset=4 - local.get $6 + local.get $5 local.get $8 call $~lib/memory/memory.fill - local.get $3 local.get $6 + local.get $5 i32.store - local.get $3 local.get $6 + local.get $5 call $~lib/rt/itcms/__link - local.get $3 local.get $6 + local.get $5 i32.store offset=4 - local.get $3 + local.get $6 local.get $8 i32.store offset=8 - local.get $3 - local.get $5 + local.get $6 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $3 + local.get $2 + local.get $6 i32.store loop $for-loop|0 local.get $7 @@ -8721,21 +8830,21 @@ i32.shl local.get $10 i32.add - local.tee $1 + local.tee $2 i32.load offset=4 i32.const 1 i32.and i32.eqz if + local.get $6 local.get $3 - local.get $0 - local.get $1 + local.get $2 i32.load16_u call $~lib/array/Array#__set - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 end local.get $7 i32.const 1 @@ -8744,105 +8853,110 @@ br $for-loop|0 end end + local.get $6 local.get $3 - local.get $0 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity + local.get $6 local.get $3 - local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $2 i32.store offset=8 loop $for-loop|4 - local.get $3 + local.get $6 i32.load offset=12 - local.get $4 + local.get $1 i32.gt_s if - local.get $3 - local.get $4 - call $~lib/array/Array#__get - local.tee $6 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.set $0 - local.get $2 - i32.load - local.get $2 - i32.load offset=4 local.get $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find10 + local.set $3 + local.get $6 + local.get $1 + call $~lib/array/Array#__get + local.set $4 + block $__inlined_func$~lib/set/Set#find10 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $4 + local.tee $5 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|011 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $7 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u - local.get $6 + local.get $5 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $7 + drop + local.get $4 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $0 end - local.get $0 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -8852,22 +8966,22 @@ call $~lib/builtins/abort unreachable end + local.get $2 + local.get $6 local.get $1 - local.get $3 - local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|4 end end - local.get $1 - i32.load offset=20 local.get $2 i32.load offset=20 + local.get $0 + i32.load offset=20 i32.ne if i32.const 0 @@ -8878,67 +8992,73 @@ unreachable end i32.const 0 - local.set $4 + local.set $1 loop $for-loop|6 - local.get $4 + local.get $1 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find13 + local.set $3 + local.get $1 + local.set $2 + block $__inlined_func$~lib/set/Set#find13 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|014 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u local.get $4 i32.const 65535 @@ -8946,17 +9066,18 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $3 + drop + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $0 end - local.get $0 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -8966,62 +9087,68 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 - call $~lib/set/Set#delete - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u + local.get $1 + call $~lib/set/Set#delete local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find16 + local.set $3 + local.get $1 + local.set $2 + block $__inlined_func$~lib/set/Set#find16 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|017 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u local.get $4 i32.const 65535 @@ -9029,17 +9156,16 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $3 + drop + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $0 end - local.get $0 if i32.const 0 i32.const 1568 @@ -9048,14 +9174,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|6 end end - local.get $2 + local.get $0 i32.load offset=20 i32.const 50 i32.ne @@ -9068,67 +9194,73 @@ unreachable end i32.const 0 - local.set $4 + local.set $1 loop $for-loop|8 - local.get $4 - i32.const 65535 - i32.and - i32.const 50 - i32.lt_u - if - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u + local.get $1 + i32.const 65535 + i32.and + i32.const 50 + i32.lt_u + if local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find19 + local.set $3 + local.get $1 + local.set $2 + block $__inlined_func$~lib/set/Set#find19 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|020 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u local.get $4 i32.const 65535 @@ -9136,17 +9268,16 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $3 + drop + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $0 end - local.get $0 if i32.const 0 i32.const 1568 @@ -9155,62 +9286,68 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 - call $~lib/set/Set#add - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u + local.get $1 + call $~lib/set/Set#add local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find22 + local.set $3 + local.get $1 + local.set $2 + block $__inlined_func$~lib/set/Set#find22 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|023 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u local.get $4 i32.const 65535 @@ -9218,17 +9355,18 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $3 + drop + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $0 end - local.get $0 + i32.const 0 + i32.ne i32.eqz if i32.const 0 @@ -9238,62 +9376,68 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 - call $~lib/set/Set#delete - local.get $2 - i32.load - local.get $2 - i32.load offset=4 - local.get $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u + local.get $1 + call $~lib/set/Set#delete local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find25 + local.set $3 + local.get $1 + local.set $2 + block $__inlined_func$~lib/set/Set#find25 (result i32) + local.get $3 + i32.load + local.get $3 + i32.load offset=4 + local.get $2 + local.tee $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|026 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $3 i32.load16_u local.get $4 i32.const 65535 @@ -9301,17 +9445,16 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $3 + drop + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $0 end - local.get $0 if i32.const 0 i32.const 1568 @@ -9320,14 +9463,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $1 br $for-loop|8 end end - local.get $2 + local.get $0 i32.load offset=20 i32.const 50 i32.ne @@ -9339,9 +9482,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 call $~lib/set/Set#clear - local.get $2 + local.get $0 i32.load offset=20 if i32.const 0 @@ -9388,60 +9531,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $3 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 - local.get $3 + local.set $8 + local.get $4 local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 + loop $while-continue|0 + local.get $3 + local.get $8 i32.ne if - local.get $7 + local.get $3 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load - local.tee $8 + local.tee $3 i32.store local.get $2 - local.get $8 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -9450,24 +9594,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor local.get $1 i32.and @@ -9475,10 +9619,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $3 i32.load i32.store offset=4 - local.get $8 + local.get $3 local.get $2 i32.store local.get $2 @@ -9486,10 +9630,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 8 i32.add - local.set $7 + local.set $3 br $while-continue|0 end end @@ -9503,13 +9647,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -9524,74 +9668,76 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 - i32.load - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + (local $5 i32) + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|0 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 local.get $2 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $3 + drop + local.get $5 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz if local.get $0 @@ -9625,18 +9771,18 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $3 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add local.tee $2 local.get $1 @@ -9728,49 +9874,50 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -9785,6 +9932,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -9793,9 +9941,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -9870,26 +10017,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 call $~lib/set/Set#constructor - local.tee $2 + local.tee $11 i32.store loop $for-loop|0 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -9898,60 +10045,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -9960,14 +10107,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -9976,60 +10123,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|02 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -10039,14 +10186,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -10059,17 +10206,17 @@ unreachable end i32.const 50 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 100 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10078,60 +10225,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|05 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -10141,14 +10288,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10157,60 +10304,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|08 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -10220,14 +10367,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -10240,10 +10387,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - local.set $0 - local.get $1 + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10255,13 +10400,13 @@ local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $11 i32.load offset=8 - local.set $10 - local.get $2 + local.set $6 + local.get $11 i32.load offset=16 - local.tee $11 - local.set $5 + local.tee $10 + local.set $8 local.get $1 i32.const 8 i32.sub @@ -10295,7 +10440,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $5 + local.get $8 i32.const 268435455 i32.gt_u if @@ -10307,36 +10452,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.const 8 - local.get $5 + local.get $8 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $8 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $6 - local.get $8 + local.get $7 + local.get $9 call $~lib/memory/memory.fill local.get $3 - local.get $6 + local.get $7 i32.store local.get $3 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $3 - local.get $6 + local.get $7 i32.store offset=4 local.get $3 - local.get $8 + local.get $9 i32.store offset=8 local.get $3 - local.get $5 + local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -10346,14 +10491,14 @@ local.get $3 i32.store loop $for-loop|01 - local.get $7 - local.get $11 + local.get $5 + local.get $10 i32.lt_s if - local.get $7 + local.get $5 i32.const 3 i32.shl - local.get $10 + local.get $6 i32.add local.tee $1 i32.load offset=4 @@ -10371,10 +10516,10 @@ i32.add local.set $0 end - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|01 end end @@ -10391,19 +10536,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $9 i32.store offset=8 loop $for-loop|2 - local.get $3 + local.get $1 i32.load offset=12 - local.get $4 + local.get $2 i32.gt_s if - local.get $3 - local.get $4 + local.get $1 + local.get $2 call $~lib/array/Array#__get local.tee $6 i32.const -1028477379 @@ -10414,65 +10560,65 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.set $0 - local.get $2 + local.set $3 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $7 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $6 - local.get $0 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $7 + local.get $10 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -10482,21 +10628,21 @@ call $~lib/builtins/abort unreachable end + local.get $9 local.get $1 - local.get $3 - local.get $4 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|2 end end - local.get $1 + local.get $9 i32.load offset=20 - local.get $2 + local.get $11 i32.load offset=20 i32.ne if @@ -10508,17 +10654,18 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|3 - local.get $4 + local.get $2 i32.const 50 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10527,60 +10674,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -10590,14 +10737,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#delete - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10606,60 +10753,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -10668,14 +10815,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -10688,17 +10835,18 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|4 - local.get $4 + local.get $2 i32.const 50 i32.lt_s if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10707,60 +10855,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -10769,14 +10917,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10785,60 +10933,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -10848,14 +10996,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#delete - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10864,60 +11012,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -10926,14 +11074,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -10945,9 +11093,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $11 call $~lib/set/Set#clear - local.get $2 + local.get $11 i32.load offset=20 if i32.const 0 @@ -10994,60 +11142,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $7 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $7 + local.tee $3 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $4 - local.get $3 + local.set $8 + local.get $4 local.set $2 loop $while-continue|0 - local.get $4 - local.get $7 + local.get $3 + local.get $8 i32.ne if - local.get $7 + local.get $3 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $7 + local.get $5 i32.load - local.tee $8 + local.tee $3 i32.store local.get $2 - local.get $8 + local.get $3 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11056,24 +11205,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $8 - local.get $8 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor local.get $1 i32.and @@ -11081,10 +11230,10 @@ i32.shl local.get $6 i32.add - local.tee $8 + local.tee $3 i32.load i32.store offset=4 - local.get $8 + local.get $3 local.get $2 i32.store local.get $2 @@ -11092,10 +11241,10 @@ i32.add local.set $2 end - local.get $7 + local.get $5 i32.const 8 i32.add - local.set $7 + local.set $3 br $while-continue|0 end end @@ -11109,13 +11258,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $7 i32.store offset=12 local.get $0 local.get $0 @@ -11130,74 +11279,76 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 - i32.load - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + (local $5 i32) + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 loop $while-continue|0 - local.get $2 + local.get $3 if - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 local.get $2 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $3 + drop + local.get $5 i32.const -2 i32.and - local.set $2 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz if local.get $0 @@ -11231,18 +11382,18 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $3 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add local.tee $2 local.get $1 @@ -11295,49 +11446,50 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - local.get $1 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - local.get $1 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - local.get $1 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 loop $while-continue|0 local.get $1 if + local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -11352,6 +11504,7 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -11360,9 +11513,8 @@ end end i32.const 0 - local.set $1 end - local.get $1 + local.tee $1 i32.eqz if return @@ -11437,26 +11589,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $3 i64.const 0 i64.store - local.get $1 + local.get $3 i32.const 0 i32.store offset=8 - local.get $1 + local.get $3 call $~lib/set/Set#constructor - local.tee $2 + local.tee $11 i32.store loop $for-loop|0 - local.get $0 + local.get $1 i32.const 100 i32.lt_u if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11465,60 +11617,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -11527,14 +11679,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11543,60 +11695,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|02 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -11606,14 +11758,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -11626,17 +11778,17 @@ unreachable end i32.const 50 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $0 + local.get $1 i32.const 100 i32.lt_u if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11645,60 +11797,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|05 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -11708,14 +11860,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $0 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11724,60 +11876,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $1 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $3 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $1 + local.get $3 if - local.get $1 + local.get $3 i32.load offset=4 - local.tee $5 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $5 + local.get $10 i32.const -2 i32.and - local.set $1 + local.set $3 br $while-continue|08 end end i32.const 0 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.eqz if i32.const 0 @@ -11787,14 +11939,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -11807,10 +11959,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - local.set $0 - local.get $1 + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -11822,13 +11972,13 @@ local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $11 i32.load offset=8 - local.set $10 - local.get $2 + local.set $6 + local.get $11 i32.load offset=16 - local.tee $11 - local.set $5 + local.tee $10 + local.set $8 local.get $1 i32.const 8 i32.sub @@ -11862,7 +12012,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $5 + local.get $8 i32.const 268435455 i32.gt_u if @@ -11874,36 +12024,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $8 i32.const 8 - local.get $5 + local.get $8 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $8 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $6 - local.get $8 + local.get $7 + local.get $9 call $~lib/memory/memory.fill local.get $3 - local.get $6 + local.get $7 i32.store local.get $3 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $3 - local.get $6 + local.get $7 i32.store offset=4 local.get $3 - local.get $8 + local.get $9 i32.store offset=8 local.get $3 - local.get $5 + local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -11913,14 +12063,14 @@ local.get $3 i32.store loop $for-loop|01 - local.get $7 - local.get $11 + local.get $5 + local.get $10 i32.lt_s if - local.get $7 + local.get $5 i32.const 3 i32.shl - local.get $10 + local.get $6 i32.add local.tee $1 i32.load offset=4 @@ -11938,10 +12088,10 @@ i32.add local.set $0 end - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|01 end end @@ -11958,19 +12108,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $9 i32.store offset=8 loop $for-loop|2 - local.get $3 + local.get $1 i32.load offset=12 - local.get $4 + local.get $2 i32.gt_s if - local.get $3 - local.get $4 + local.get $1 + local.get $2 call $~lib/array/Array#__get local.tee $6 i32.const -1028477379 @@ -11981,65 +12132,65 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.set $0 - local.get $2 + local.set $3 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $0 + local.get $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $7 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $6 - local.get $0 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $7 + local.get $10 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|011 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -12049,21 +12200,21 @@ call $~lib/builtins/abort unreachable end + local.get $9 local.get $1 - local.get $3 - local.get $4 + local.get $2 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|2 end end - local.get $1 + local.get $9 i32.load offset=20 - local.get $2 + local.get $11 i32.load offset=20 i32.ne if @@ -12075,17 +12226,18 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|3 - local.get $4 + local.get $2 i32.const 50 i32.lt_u if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12094,60 +12246,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -12157,14 +12309,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#delete - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12173,60 +12325,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|017 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -12235,14 +12387,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|3 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -12255,17 +12407,18 @@ unreachable end i32.const 0 - local.set $4 + local.set $2 loop $for-loop|4 - local.get $4 + local.get $2 i32.const 50 i32.lt_u if - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $2 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12274,60 +12427,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -12336,14 +12489,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#add - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12352,60 +12505,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|023 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -12415,14 +12568,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $4 + local.get $11 + local.get $1 call $~lib/set/Set#delete - local.get $2 + local.get $11 i32.load - local.get $2 + local.get $11 i32.load offset=4 - local.get $4 + local.get $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12431,60 +12584,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $3 + local.get $3 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=4 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 - local.get $0 + local.get $1 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $3 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|026 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -12493,14 +12646,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $1 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|4 end end - local.get $2 + local.get $11 i32.load offset=20 i32.const 50 i32.ne @@ -12512,9 +12665,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $11 call $~lib/set/Set#clear - local.get $2 + local.get $11 i32.load offset=20 if i32.const 0 @@ -12539,60 +12692,61 @@ ) (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 local.tee $2 @@ -12607,6 +12761,7 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $2 i32.const -2 i32.and @@ -12615,9 +12770,7 @@ end end i32.const 0 - local.set $0 end - local.get $0 i32.const 0 i32.ne ) @@ -12626,8 +12779,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i32) + (local $6 i32) + (local $7 i64) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer @@ -12646,61 +12799,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $8 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $8 + local.tee $3 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $4 - local.get $3 + local.set $9 + local.get $4 local.set $2 loop $while-continue|0 - local.get $4 - local.get $8 + local.get $3 + local.get $9 i32.ne if - local.get $8 + local.get $3 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $5 i64.load - local.tee $6 + local.tee $7 i64.store local.get $2 - local.get $1 - local.get $6 + local.get $7 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -12710,7 +12863,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 + local.get $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -12721,34 +12874,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor + local.get $1 i32.and i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add - local.tee $9 + local.tee $3 i32.load i32.store offset=8 - local.get $9 + local.get $3 local.get $2 i32.store local.get $2 @@ -12756,30 +12910,30 @@ i32.add local.set $2 end - local.get $8 + local.get $5 i32.const 16 i32.add - local.set $8 + local.set $3 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $6 i32.store local.get $0 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $8 i32.store offset=12 local.get $0 local.get $0 @@ -12794,61 +12948,62 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -12863,6 +13018,7 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -12871,9 +13027,7 @@ end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz if local.get $0 @@ -12907,18 +13061,18 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.shl - local.get $3 + local.get $2 i32.add local.tee $2 local.get $1 @@ -13010,60 +13164,61 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -13078,6 +13233,7 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -13086,9 +13242,8 @@ end end i32.const 0 - local.set $2 end - local.get $2 + local.tee $2 i32.eqz if return @@ -13173,9 +13328,9 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i32) + (local $1 i64) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -13195,23 +13350,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 call $~lib/set/Set#constructor - local.tee $4 + local.tee $3 i32.store loop $for-loop|0 - local.get $3 + local.get $1 i64.const 100 i64.lt_s if - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13221,11 +13376,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#add - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13236,14 +13391,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i64.const 1 i64.add - local.set $3 + local.set $1 br $for-loop|0 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -13256,14 +13411,14 @@ unreachable end i64.const 50 - local.set $3 + local.set $1 loop $for-loop|1 - local.get $3 + local.get $1 i64.const 100 i64.lt_s if - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13274,11 +13429,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#add - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13289,14 +13444,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i64.const 1 i64.add - local.set $3 + local.set $1 br $for-loop|1 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -13309,8 +13464,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13319,18 +13474,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i32.const 0 i32.store - local.get $4 + local.get $3 i32.load offset=8 local.set $11 - local.get $4 + local.get $3 i32.load offset=16 local.tee $12 local.set $5 - local.get $1 - local.tee $2 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13339,28 +13493,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 0 i32.store offset=12 local.get $5 @@ -13391,27 +13545,27 @@ local.get $6 local.get $9 call $~lib/memory/memory.fill - local.get $1 + local.get $2 local.get $6 i32.store - local.get $1 + local.get $2 local.get $6 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 local.get $6 i32.store offset=4 - local.get $1 + local.get $2 local.get $9 i32.store offset=8 - local.get $1 + local.get $2 local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $2 - local.get $1 i32.store loop $for-loop|01 local.get $8 @@ -13423,15 +13577,15 @@ i32.shl local.get $11 i32.add - local.tee $2 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 - local.get $0 local.get $2 + local.get $0 + local.get $4 i64.load call $~lib/array/Array#__set local.get $0 @@ -13446,32 +13600,32 @@ br $for-loop|01 end end - local.get $1 + local.get $2 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $2 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $2 + local.tee $4 i32.store offset=8 loop $for-loop|2 - local.get $1 + local.get $2 i32.load offset=12 local.get $7 i32.gt_s if - local.get $4 - local.get $1 + local.get $3 + local.get $2 local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has @@ -13484,8 +13638,8 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $1 local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -13496,10 +13650,10 @@ br $for-loop|2 end end - local.get $2 - i32.load offset=20 local.get $4 i32.load offset=20 + local.get $3 + i32.load offset=20 i32.ne if i32.const 0 @@ -13510,14 +13664,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $1 loop $for-loop|3 - local.get $3 + local.get $1 i64.const 50 i64.lt_s if - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13528,11 +13682,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#delete - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13542,14 +13696,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i64.const 1 i64.add - local.set $3 + local.set $1 br $for-loop|3 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -13562,14 +13716,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $1 loop $for-loop|4 - local.get $3 + local.get $1 i64.const 50 i64.lt_s if - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13579,11 +13733,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#add - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13594,11 +13748,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#delete - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13608,14 +13762,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i64.const 1 i64.add - local.set $3 + local.set $1 br $for-loop|4 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -13627,9 +13781,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 call $~lib/set/Set#clear - local.get $4 + local.get $3 i32.load offset=20 if i32.const 0 @@ -13642,72 +13796,73 @@ global.get $~lib/memory/__stack_pointer i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 18240 - i32.const 18288 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find + global.set $~lib/memory/__stack_pointer + return + end + i32.const 18240 + i32.const 18288 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 local.tee $2 @@ -13722,6 +13877,7 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $2 i32.const -2 i32.and @@ -13730,9 +13886,7 @@ end end i32.const 0 - local.set $0 end - local.get $0 i32.const 0 i32.ne ) @@ -13741,8 +13895,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i32) + (local $6 i32) + (local $7 i64) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer @@ -13761,61 +13915,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $5 + local.tee $8 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $8 + local.tee $3 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $4 - local.get $3 + local.set $9 + local.get $4 local.set $2 loop $while-continue|0 - local.get $4 - local.get $8 + local.get $3 + local.get $9 i32.ne if - local.get $8 + local.get $3 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $5 i64.load - local.tee $6 + local.tee $7 i64.store local.get $2 - local.get $1 - local.get $6 + local.get $7 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -13825,7 +13979,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $6 + local.get $7 i64.const 32 i64.shr_u i32.wrap_i64 @@ -13836,34 +13990,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor + local.get $1 i32.and i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add - local.tee $9 + local.tee $3 i32.load i32.store offset=8 - local.get $9 + local.get $3 local.get $2 i32.store local.get $2 @@ -13871,30 +14026,30 @@ i32.add local.set $2 end - local.get $8 + local.get $5 i32.const 16 i32.add - local.set $8 + local.set $3 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $6 i32.store local.get $0 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 - local.get $5 + local.get $8 i32.store offset=12 local.get $0 local.get $0 @@ -13909,61 +14064,62 @@ (local $2 i32) (local $3 i32) (local $4 i32) - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -13978,6 +14134,7 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -13986,9 +14143,7 @@ end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz if local.get $0 @@ -14022,18 +14177,18 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.shl - local.get $3 + local.get $2 i32.add local.tee $2 local.get $1 @@ -14086,60 +14241,61 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -14154,6 +14310,7 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -14162,9 +14319,8 @@ end end i32.const 0 - local.set $2 end - local.get $2 + local.tee $2 i32.eqz if return @@ -14218,9 +14374,9 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i32) + (local $1 i64) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -14240,23 +14396,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 call $~lib/set/Set#constructor - local.tee $4 + local.tee $3 i32.store loop $for-loop|0 - local.get $3 + local.get $1 i64.const 100 i64.lt_u if - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14266,11 +14422,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#add - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14281,14 +14437,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i64.const 1 i64.add - local.set $3 + local.set $1 br $for-loop|0 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -14301,14 +14457,14 @@ unreachable end i64.const 50 - local.set $3 + local.set $1 loop $for-loop|1 - local.get $3 + local.get $1 i64.const 100 i64.lt_u if - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14319,11 +14475,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#add - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14334,14 +14490,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i64.const 1 i64.add - local.set $3 + local.set $1 br $for-loop|1 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -14354,8 +14510,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14364,18 +14520,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i32.const 0 i32.store - local.get $4 + local.get $3 i32.load offset=8 local.set $11 - local.get $4 + local.get $3 i32.load offset=16 local.tee $12 local.set $5 - local.get $1 - local.tee $2 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14384,28 +14539,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 0 i32.store offset=12 local.get $5 @@ -14436,27 +14591,27 @@ local.get $6 local.get $9 call $~lib/memory/memory.fill - local.get $1 + local.get $2 local.get $6 i32.store - local.get $1 + local.get $2 local.get $6 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 local.get $6 i32.store offset=4 - local.get $1 + local.get $2 local.get $9 i32.store offset=8 - local.get $1 + local.get $2 local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $2 - local.get $1 i32.store loop $for-loop|01 local.get $8 @@ -14468,15 +14623,15 @@ i32.shl local.get $11 i32.add - local.tee $2 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $1 - local.get $0 local.get $2 + local.get $0 + local.get $4 i64.load call $~lib/array/Array#__set local.get $0 @@ -14491,32 +14646,32 @@ br $for-loop|01 end end - local.get $1 + local.get $2 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $2 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $2 + local.tee $4 i32.store offset=8 loop $for-loop|2 - local.get $1 + local.get $2 i32.load offset=12 local.get $7 i32.gt_s if - local.get $4 - local.get $1 + local.get $3 + local.get $2 local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has @@ -14529,8 +14684,8 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $2 - local.get $1 local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -14541,10 +14696,10 @@ br $for-loop|2 end end - local.get $2 - i32.load offset=20 local.get $4 i32.load offset=20 + local.get $3 + i32.load offset=20 i32.ne if i32.const 0 @@ -14555,14 +14710,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $1 loop $for-loop|3 - local.get $3 + local.get $1 i64.const 50 i64.lt_u if - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14573,11 +14728,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#delete - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14587,14 +14742,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i64.const 1 i64.add - local.set $3 + local.set $1 br $for-loop|3 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -14607,14 +14762,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $1 loop $for-loop|4 - local.get $3 + local.get $1 i64.const 50 i64.lt_u if - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14624,11 +14779,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#add - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14639,11 +14794,11 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#delete - local.get $4 local.get $3 + local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14653,14 +14808,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $1 i64.const 1 i64.add - local.set $3 + local.set $1 br $for-loop|4 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -14672,9 +14827,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 call $~lib/set/Set#clear - local.get $4 + local.get $3 i32.load offset=20 if i32.const 0 @@ -14700,12 +14855,12 @@ (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 f32) + (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 f32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14722,60 +14877,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $6 + local.tee $7 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $8 + local.tee $3 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $5 - local.get $3 + local.set $8 + local.get $4 local.set $2 loop $while-continue|0 - local.get $5 + local.get $3 local.get $8 i32.ne if - local.get $8 + local.get $3 + local.tee $5 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $8 + local.get $5 f32.load - local.tee $4 + local.tee $9 f32.store local.get $2 - local.get $4 + local.get $9 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -14785,35 +14941,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $9 - local.get $9 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $9 - local.get $9 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $9 - local.get $9 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor local.get $1 i32.and i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add - local.tee $9 + local.tee $3 i32.load i32.store offset=4 - local.get $9 + local.get $3 local.get $2 i32.store local.get $2 @@ -14821,88 +14977,89 @@ i32.add local.set $2 end - local.get $8 + local.get $5 i32.const 8 i32.add - local.set $8 + local.set $3 br $while-continue|0 end end local.get $0 - local.get $7 + local.get $6 i32.store local.get $0 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 - local.get $6 + local.get $7 i32.store offset=12 local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 f32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $0 - i32.load - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -14917,6 +15074,7 @@ f32.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -14925,9 +15083,7 @@ end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz if local.get $0 @@ -14961,18 +15117,18 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $3 i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add local.tee $2 local.get $1 @@ -15025,49 +15181,50 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -15082,6 +15239,7 @@ f32.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -15090,9 +15248,8 @@ end end i32.const 0 - local.set $2 end - local.get $2 + local.tee $2 i32.eqz if return @@ -15147,8 +15304,8 @@ (func $std/set/testNumeric (local $0 i32) (local $1 i32) - (local $2 f32) - (local $3 i32) + (local $2 i32) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -15168,26 +15325,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store loop $for-loop|0 - local.get $2 + local.get $3 f32.const 100 f32.lt if - local.get $3 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15197,60 +15354,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $5 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -15259,14 +15416,14 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $2 call $~lib/set/Set#add - local.get $3 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15276,60 +15433,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $5 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -15339,14 +15496,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 f32.const 1 f32.add - local.set $2 + local.set $3 br $for-loop|0 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -15359,17 +15516,17 @@ unreachable end f32.const 50 - local.set $2 + local.set $3 loop $for-loop|1 - local.get $2 + local.get $3 f32.const 100 f32.lt if - local.get $3 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15379,60 +15536,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $5 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -15442,14 +15599,14 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $2 call $~lib/set/Set#add - local.get $3 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15459,60 +15616,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $5 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $5 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -15522,14 +15679,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 f32.const 1 f32.add - local.set $2 + local.set $3 br $for-loop|1 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -15542,8 +15699,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -15552,17 +15709,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $4 i32.load offset=8 - local.set $11 - local.get $3 + local.set $12 + local.get $4 i32.load offset=16 - local.tee $12 - local.set $5 - local.get $0 + local.tee $6 + local.set $7 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -15571,31 +15728,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i32.const 16 i32.const 20 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 0 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.store offset=8 - local.get $4 + local.get $2 i32.const 0 i32.store offset=12 - local.get $5 + local.get $7 i32.const 268435455 i32.gt_u if @@ -15607,53 +15764,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $7 i32.const 8 - local.get $5 + local.get $7 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $9 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store offset=4 - local.get $6 - local.get $9 + local.get $8 + local.get $5 call $~lib/memory/memory.fill - local.get $4 - local.get $6 + local.get $2 + local.get $8 i32.store - local.get $4 - local.get $6 + local.get $2 + local.get $8 call $~lib/rt/itcms/__link - local.get $4 - local.get $6 + local.get $2 + local.get $8 i32.store offset=4 - local.get $4 - local.get $9 - i32.store offset=8 - local.get $4 + local.get $2 local.get $5 + i32.store offset=8 + local.get $2 + local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $4 + local.get $1 + local.get $2 i32.store loop $for-loop|01 - local.get $8 - local.get $12 - i32.lt_s + local.get $6 + local.get $10 + i32.gt_s if - local.get $8 + local.get $10 i32.const 3 i32.shl - local.get $11 + local.get $12 i32.add local.tee $5 i32.load offset=4 @@ -15661,20 +15818,20 @@ i32.and i32.eqz if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $1 + local.set $0 local.get $5 f32.load - local.set $2 - local.get $4 + local.set $3 + local.get $2 i32.load offset=12 - local.get $0 + local.get $1 i32.le_u if - local.get $0 + local.get $1 i32.const 0 i32.lt_s if @@ -15685,62 +15842,63 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $0 + local.get $2 + local.get $1 i32.const 1 i32.add local.tee $5 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity - local.get $4 + local.get $2 local.get $5 i32.store offset=12 end - local.get $4 + local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $2 + local.get $3 f32.store end - local.get $8 + local.get $10 i32.const 1 i32.add - local.set $8 + local.set $10 br $for-loop|01 end end - local.get $4 - local.get $1 + local.get $2 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $4 - local.get $1 + local.get $2 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $2 + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $1 + local.tee $6 i32.store offset=8 loop $for-loop|2 - local.get $4 + local.get $0 i32.load offset=12 - local.get $7 + local.get $9 i32.gt_s if - local.get $4 - local.get $7 + local.get $0 + local.get $9 call $~lib/array/Array#__get - local.tee $2 + local.tee $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15750,65 +15908,65 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.set $0 - local.get $3 + local.set $1 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $6 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $6 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|011 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -15818,21 +15976,21 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $4 - local.get $7 + local.get $6 + local.get $0 + local.get $9 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $7 + local.get $9 i32.const 1 i32.add - local.set $7 + local.set $9 br $for-loop|2 end end - local.get $1 + local.get $6 i32.load offset=20 - local.get $3 + local.get $4 i32.load offset=20 i32.ne if @@ -15844,17 +16002,17 @@ unreachable end f32.const 0 - local.set $2 + local.set $3 loop $for-loop|3 - local.get $2 + local.get $3 f32.const 50 f32.lt if - local.get $3 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15864,60 +16022,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|014 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -15927,14 +16085,14 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $2 call $~lib/set/Set#delete - local.get $3 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15944,60 +16102,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|017 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -16006,14 +16164,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 f32.const 1 f32.add - local.set $2 + local.set $3 br $for-loop|3 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -16026,17 +16184,17 @@ unreachable end f32.const 0 - local.set $2 + local.set $3 loop $for-loop|4 - local.get $2 + local.get $3 f32.const 50 f32.lt if - local.get $3 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -16046,60 +16204,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|020 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -16108,14 +16266,14 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $2 call $~lib/set/Set#add - local.get $3 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -16125,60 +16283,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|023 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.eqz if i32.const 0 @@ -16188,14 +16346,14 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $2 call $~lib/set/Set#delete - local.get $3 + local.get $4 i32.load - local.get $3 + local.get $4 i32.load offset=4 - local.get $2 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -16205,60 +16363,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $1 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $0 + local.get $1 if - local.get $0 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 - local.get $0 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $4 + local.get $0 i32.const -2 i32.and - local.set $0 + local.set $1 br $while-continue|026 end end i32.const 0 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -16267,14 +16425,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 f32.const 1 f32.add - local.set $2 + local.set $3 br $for-loop|4 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -16286,9 +16444,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 call $~lib/set/Set#clear - local.get $3 + local.get $4 i32.load offset=20 if i32.const 0 @@ -16314,62 +16472,63 @@ (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 local.tee $3 @@ -16384,6 +16543,7 @@ f64.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -16392,22 +16552,20 @@ end end i32.const 0 - local.set $0 end - local.get $0 i32.const 0 i32.ne ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) + (local $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - (local $10 i32) + (local $9 f64) + (local $10 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16424,21 +16582,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $5 i64.const 0 i64.store - local.get $2 + local.get $5 local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $4 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 3 i32.shl i32.const 3 @@ -16447,40 +16605,40 @@ i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $4 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $9 + local.tee $3 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $6 - local.get $3 + local.set $8 + local.get $4 local.set $2 loop $while-continue|0 - local.get $6 - local.get $9 + local.get $3 + local.get $8 i32.ne if - local.get $9 + local.get $3 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $9 + local.get $5 f64.load - local.tee $5 + local.tee $9 f64.store local.get $2 - local.get $1 - local.get $5 + local.get $9 i64.reinterpret_f64 - local.tee $4 + local.tee $10 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16490,7 +16648,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $4 + local.get $10 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16501,34 +16659,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $10 - local.get $10 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $10 - local.get $10 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $10 - local.get $10 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor + local.get $1 i32.and i32.const 2 i32.shl - local.get $8 + local.get $6 i32.add - local.tee $10 + local.tee $3 i32.load i32.store offset=8 - local.get $10 + local.get $3 local.get $2 i32.store local.get $2 @@ -16536,27 +16695,27 @@ i32.add local.set $2 end - local.get $9 + local.get $5 i32.const 16 i32.add - local.set $9 + local.set $3 br $while-continue|0 end end local.get $0 - local.get $8 + local.get $6 i32.store local.get $0 - local.get $8 + local.get $6 call $~lib/rt/itcms/__link local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $3 + local.get $4 i32.store offset=8 local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 local.get $7 @@ -16575,63 +16734,64 @@ (local $3 i32) (local $4 i64) (local $5 i32) - local.get $0 - i32.load - local.get $1 - i64.reinterpret_f64 - local.tee $4 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $1 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -16646,6 +16806,7 @@ f64.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -16654,9 +16815,7 @@ end end i32.const 0 - local.set $2 end - local.get $2 i32.eqz if local.get $0 @@ -16690,18 +16849,18 @@ end local.get $0 i32.load offset=8 - local.set $3 + local.set $2 local.get $0 local.get $0 i32.load offset=16 - local.tee $2 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.shl - local.get $3 + local.get $2 i32.add local.tee $2 local.get $1 @@ -16755,62 +16914,63 @@ (local $2 i32) (local $3 i32) (local $4 i64) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $4 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 - block $__inlined_func$~lib/set/Set#find + block $__inlined_func$~lib/set/Set#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 loop $while-continue|0 local.get $2 if + local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -16825,6 +16985,7 @@ f64.eq end br_if $__inlined_func$~lib/set/Set#find + drop local.get $3 i32.const -2 i32.and @@ -16833,9 +16994,8 @@ end end i32.const 0 - local.set $2 end - local.get $2 + local.tee $2 i32.eqz if return @@ -16911,13 +17071,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 call $~lib/set/Set#constructor local.tee $4 i32.store @@ -17025,8 +17185,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17035,7 +17195,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store local.get $4 @@ -17044,9 +17204,8 @@ local.get $4 i32.load offset=16 local.tee $12 - local.set $5 - local.get $1 - local.tee $0 + local.set $6 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17079,7 +17238,7 @@ local.get $1 i32.const 0 i32.store offset=12 - local.get $5 + local.get $6 i32.const 134217727 i32.gt_u if @@ -17091,36 +17250,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 8 - local.get $5 + local.get $6 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $9 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $7 i32.store offset=4 - local.get $6 - local.get $9 + local.get $7 + local.get $5 call $~lib/memory/memory.fill local.get $1 - local.get $6 + local.get $7 i32.store local.get $1 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $1 - local.get $6 + local.get $7 i32.store offset=4 local.get $1 - local.get $9 + local.get $5 i32.store offset=8 local.get $1 - local.get $5 + local.get $6 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17130,11 +17289,11 @@ local.get $1 i32.store loop $for-loop|01 - local.get $8 + local.get $9 local.get $12 i32.lt_s if - local.get $8 + local.get $9 i32.const 4 i32.shl local.get $11 @@ -17190,10 +17349,10 @@ local.get $3 f64.store end - local.get $8 + local.get $9 i32.const 1 i32.add - local.set $8 + local.set $9 br $for-loop|01 end end @@ -17210,20 +17369,21 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store offset=8 loop $for-loop|2 - local.get $1 + local.get $0 i32.load offset=12 - local.get $7 + local.get $8 i32.gt_s if local.get $4 - local.get $1 - local.get $7 + local.get $0 + local.get $8 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -17235,19 +17395,19 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $0 - local.get $1 - local.get $7 + local.get $8 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $7 + local.get $8 i32.const 1 i32.add - local.set $7 + local.set $8 br $for-loop|2 end end - local.get $0 + local.get $2 i32.load offset=20 local.get $4 i32.load offset=20 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 668d2cd2fe..8310c1c8eb 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -161,6 +161,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -168,10 +169,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18396 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -185,7 +186,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -210,19 +211,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 1952 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1472 i32.const 1824 @@ -231,7 +234,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1956 @@ -246,28 +249,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -2469,8 +2472,8 @@ i32.load offset=8 local.set $4 local.get $1 - global.get $~lib/rt/itcms/white local.get $2 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 @@ -2512,9 +2515,9 @@ select local.set $5 block $~lib/util/memory/memmove|inlined.0 + local.get $0 local.get $4 local.tee $1 - local.get $0 i32.eq br_if $~lib/util/memory/memmove|inlined.0 local.get $0 diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index 807cc52cd7..e4fd0397f5 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -251,6 +251,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -258,10 +259,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 19572 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -275,7 +276,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -300,19 +301,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 3088 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1088 i32.const 1536 @@ -321,7 +324,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 3092 @@ -336,28 +339,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1620,7 +1623,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1648,11 +1651,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1671,9 +1674,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1689,7 +1692,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1704,18 +1707,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1726,7 +1729,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1740,13 +1743,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1759,89 +1765,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1849,7 +1855,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2937,25 +2943,25 @@ (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3188 - i32.lt_s - if - i32.const 19600 - i32.const 19648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf + block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3188 + i32.lt_s + if + i32.const 19600 + i32.const 19648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $2 local.get $0 i32.const 20 @@ -2974,7 +2980,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $2 br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf end local.get $2 @@ -3014,6 +3019,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf end local.get $2 @@ -3028,9 +3034,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $2 end - local.get $2 i32.const 0 i32.ge_s ) @@ -3041,37 +3045,37 @@ (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $7 - local.get $0 - i32.load offset=12 - local.set $5 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3188 - i32.lt_s - if - i32.const 19600 - i32.const 19648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i32.const 0 - i32.store offset=8 - block $__inlined_func$~lib/util/string/joinStringArray + block $__inlined_func$~lib/util/string/joinStringArray (result i32) + local.get $0 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=12 + local.set $5 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3188 + i32.lt_s + if + i32.const 19600 + i32.const 19648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + i32.const 0 + i32.store offset=8 local.get $5 i32.const 1 i32.sub @@ -3084,7 +3088,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 2720 - local.set $0 br $__inlined_func$~lib/util/string/joinStringArray end local.get $6 @@ -3096,24 +3099,23 @@ i32.load local.tee $0 i32.store - local.get $0 - i32.const 2720 - local.get $0 - select - local.set $0 local.get $1 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 + i32.const 2720 + local.get $0 + select br $__inlined_func$~lib/util/string/joinStringArray end loop $for-loop|0 - local.get $3 + local.get $0 local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 2 i32.shl local.get $7 @@ -3129,14 +3131,14 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.get $0 + local.get $3 i32.add - local.set $0 + local.set $3 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|0 end end @@ -3150,50 +3152,50 @@ i32.shr_u local.tee $5 i32.mul - local.get $0 + local.get $3 i32.add i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $4 i32.store offset=8 i32.const 0 - local.set $3 + local.set $0 loop $for-loop|1 - local.get $3 + local.get $0 local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.const 2 i32.shl local.get $7 i32.add i32.load - local.tee $4 + local.tee $3 i32.store offset=4 - local.get $4 + local.get $3 if local.get $2 i32.const 1 i32.shl - local.get $0 - i32.add - local.get $4 local.get $4 + i32.add + local.get $3 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $4 + local.get $3 i32.add local.set $2 end @@ -3202,7 +3204,7 @@ local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $4 i32.add local.get $1 local.get $5 @@ -3214,10 +3216,10 @@ i32.add local.set $2 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|1 end end @@ -3228,17 +3230,17 @@ local.get $7 i32.add i32.load - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 if local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $4 i32.add - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3252,8 +3254,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 end - local.get $0 ) (func $~lib/staticarray/StaticArray~visit (param $0 i32) (local $1 i32) @@ -3390,9 +3392,9 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 f32) + (local $3 i32) (local $4 f64) - (local $5 i32) + (local $5 f32) (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 28 @@ -3404,19 +3406,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $0 i64.const 0 i64.store - local.get $6 + local.get $0 i64.const 0 i64.store offset=8 - local.get $6 + local.get $0 i64.const 0 i64.store offset=16 - local.get $6 + local.get $0 i32.const 0 i32.store offset=24 - local.get $6 + local.get $0 i32.const 1056 i32.store i32.const 1056 @@ -3573,17 +3575,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.const 1312 i32.const 12 call $~lib/memory/memory.copy - local.get $6 + local.get $0 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $6 + local.tee $0 i32.store - local.get $6 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -3598,9 +3600,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $6 + local.tee $0 i32.store - local.get $6 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -3615,9 +3617,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $6 + local.tee $0 i32.store - local.get $6 + local.get $0 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -3632,9 +3634,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $6 + local.tee $0 i32.store - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3652,16 +3654,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $6 + local.tee $0 i32.store - local.get $6 + local.get $0 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $6 + local.tee $0 i32.store - local.get $6 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -3677,17 +3679,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.const 1312 i32.const 12 call $~lib/memory/memory.copy - local.get $6 + local.get $0 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $6 + local.tee $0 i32.store - local.get $6 + local.get $0 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -3704,33 +3706,33 @@ i32.const 8 i32.const 5 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.store offset=4 - local.get $6 + local.get $0 call $std/staticarray/Ref#constructor - local.tee $0 + local.tee $1 i32.store - local.get $6 local.get $0 + local.get $1 i32.const 1 call $~lib/rt/itcms/__link - local.get $6 + local.get $0 call $std/staticarray/Ref#constructor - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $6 local.get $0 + local.get $1 i32.const 1 call $~lib/rt/itcms/__link - local.get $6 + local.get $0 global.set $std/staticarray/arr4 i32.const 0 global.set $std/staticarray/arr3 i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $6 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3739,25 +3741,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $0 i32.const 0 i32.store - local.get $6 + local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.store - local.get $6 + local.get $0 i32.const 12 call $~lib/memory/memory.fill global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3774,17 +3776,17 @@ unreachable end loop $for-loop|0 - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $1 + local.get $2 i32.gt_s if - local.get $6 - local.get $1 + local.get $0 + local.get $2 call $~lib/staticarray/StaticArray#__get if i32.const 0 @@ -3794,10 +3796,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|0 end end @@ -3806,16 +3808,16 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.tee $6 + local.tee $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 call $~lib/staticarray/StaticArray.fromArray - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $6 + local.get $2 i32.load offset=12 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3831,20 +3833,20 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|1 - local.get $6 + local.get $2 i32.load offset=12 - local.get $1 + local.get $0 i32.gt_s if - local.get $0 local.get $1 + local.get $0 call $~lib/staticarray/StaticArray#__get - local.set $2 - local.get $6 + local.set $6 + local.get $2 i32.load offset=12 - local.get $1 + local.get $0 i32.le_u if i32.const 1088 @@ -3854,14 +3856,14 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.get $2 + local.get $6 i32.ne if i32.const 0 @@ -3871,10 +3873,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end @@ -3883,15 +3885,15 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $6 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store - local.get $6 + local.get $0 call $~lib/staticarray/StaticArray.fromArray - local.tee $6 + local.tee $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3909,29 +3911,29 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.const 1856 i32.const 8 call $~lib/memory/memory.copy - local.get $6 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 1888 i32.const 4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 - local.get $6 - local.get $1 + local.get $0 + local.get $2 call $~lib/staticarray/StaticArray.concat - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -3951,25 +3953,25 @@ i32.const 0 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.const 1920 i32.const 0 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 - local.get $6 - local.get $1 + local.get $0 + local.get $2 call $~lib/staticarray/StaticArray.concat - local.tee $1 + local.tee $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3988,26 +3990,26 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.const 2128 i32.const 20 call $~lib/memory/memory.copy - local.get $6 + local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4023,33 +4025,33 @@ unreachable end i32.const 0 - local.set $1 + local.set $2 loop $for-loop|2 - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $1 + local.get $2 i32.gt_s if - local.get $6 - local.get $1 + local.get $0 + local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $2 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store - local.get $0 local.get $1 + local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $5 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.store offset=12 - local.get $2 - local.get $5 + local.get $6 + local.get $3 call $~lib/string/String.__eq i32.eqz if @@ -4060,21 +4062,21 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4090,18 +4092,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + local.tee $6 + local.get $1 i32.store - local.get $2 + local.get $6 i32.const 1984 i32.store offset=12 - local.get $0 + local.get $1 i32.const 1984 call $~lib/string/String.__eq i32.eqz @@ -4113,18 +4115,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $1 + local.get $2 i32.store - local.get $0 + local.get $1 i32.const 2016 i32.store offset=12 - local.get $1 + local.get $2 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4137,13 +4139,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.const 1 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4151,7 +4153,7 @@ i32.shr_u i32.const 1 i32.sub - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4167,19 +4169,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4195,13 +4197,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.const 100 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4216,13 +4218,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.const -1 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4238,18 +4240,18 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $1 + local.get $2 i32.store - local.get $0 + local.get $1 i32.const 2080 i32.store offset=12 - local.get $1 + local.get $2 i32.const 2080 call $~lib/string/String.__eq i32.eqz @@ -4262,13 +4264,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 @@ -4283,13 +4285,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $6 + local.tee $0 i32.store offset=4 - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4305,18 +4307,18 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $0 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $6 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 + local.tee $2 + local.get $0 i32.store - local.get $1 + local.get $2 i32.const 2016 i32.store offset=12 - local.get $6 + local.get $0 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4332,29 +4334,29 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.const 2304 i32.const 20 call $~lib/memory/memory.copy - local.get $6 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 9 i32.const 2352 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 - local.get $6 - local.get $1 + local.get $0 + local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $1 + local.tee $2 i32.store offset=16 - local.get $1 + local.get $2 i32.load offset=12 - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4374,18 +4376,18 @@ i32.const 9 i32.const 2416 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=12 - local.get $6 - local.get $1 + local.get $0 + local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $1 + local.tee $2 i32.store offset=16 - local.get $1 + local.get $2 i32.load offset=12 - local.get $6 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4406,16 +4408,16 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $0 i32.const 2448 i32.const 20 call $~lib/memory/memory.copy - local.get $6 + local.get $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 1984 i32.store offset=12 - local.get $6 + local.get $0 i32.const 1984 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4432,7 +4434,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2384 i32.store offset=12 - local.get $6 + local.get $0 i32.const 2384 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4447,7 +4449,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $6 + local.get $0 i32.const 2080 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4462,7 +4464,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $6 + local.get $0 i32.const 2080 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4479,41 +4481,41 @@ i32.const 8 i32.const 10 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $2 i32.const 2496 i32.const 8 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store block $__inlined_func$~lib/staticarray/StaticArray#includes (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $6 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 3 i32.shr_u - local.tee $2 + local.tee $6 i32.const 0 - local.get $2 + local.get $6 select i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|0 - local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.lt_s if i32.const 1 i32.const 1 - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $6 + local.get $2 i32.add f64.load local.tee $4 @@ -4525,10 +4527,10 @@ select br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end @@ -4546,57 +4548,57 @@ i32.const 4 i32.const 11 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $2 i32.const 2528 i32.const 4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store block $__inlined_func$~lib/staticarray/StaticArray#includes (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $6 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $2 + local.tee $6 i32.const 0 - local.get $2 + local.get $6 select i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - loop $while-continue|07 - local.get $1 - local.get $2 + loop $while-continue|08 + local.get $0 + local.get $6 i32.lt_s if i32.const 1 i32.const 1 - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $6 + local.get $2 i32.add f32.load - local.tee $3 - local.get $3 + local.tee $5 + local.get $5 f32.ne - local.get $3 + local.get $5 f32.const nan:0x400000 f32.eq select br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|08 end end i32.const 0 @@ -4614,40 +4616,39 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $2 i32.const 2560 i32.const 12 call $~lib/memory/memory.copy - local.get $6 + local.get $2 i32.store offset=16 i32.const 0 + local.set $0 + i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $6 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $6 i32.const 0 - local.get $0 + local.get $6 select i32.eqz - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/staticarray/StaticArray#indexOf - end - loop $while-continue|013 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf + loop $while-continue|025 local.get $0 - local.get $1 - i32.gt_s + local.get $6 + i32.lt_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $6 + local.get $2 i32.add i32.load i32.const 2 @@ -4656,8 +4657,8 @@ local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|013 + local.set $0 + br $while-continue|025 end end i32.const -1 @@ -4673,43 +4674,42 @@ unreachable end i32.const 0 + local.set $0 + i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf14 - local.get $6 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf26 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $6 i32.const 0 - local.get $0 + local.get $6 select i32.eqz - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/staticarray/StaticArray#indexOf14 - end - loop $while-continue|015 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf26 + loop $while-continue|029 local.get $0 - local.get $1 - i32.gt_s + local.get $6 + i32.lt_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $6 + local.get $2 i32.add i32.load i32.const 7 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf14 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf26 local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|029 end end i32.const -1 @@ -4727,44 +4727,43 @@ unreachable end i32.const 2 + local.set $0 + i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf16 - local.get $6 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf30 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $6 i32.const 2 i32.le_u i32.const 1 - local.get $0 + local.get $6 select - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/staticarray/StaticArray#indexOf16 - end - loop $while-continue|017 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf30 + loop $while-continue|032 local.get $0 - local.get $1 - i32.gt_s + local.get $6 + i32.lt_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $6 + local.get $2 i32.add i32.load i32.const 9 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf16 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf30 local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|017 + local.set $0 + br $while-continue|032 end end i32.const -1 @@ -4781,59 +4780,57 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/staticarray/StaticArray#indexOf18 - local.get $6 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf33 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.const -1 i32.le_s i32.const 1 - local.get $0 + local.get $1 select - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/staticarray/StaticArray#indexOf18 - end - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf33 + local.get $1 i32.const 1 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 - loop $while-continue|019 + local.set $0 + loop $while-continue|035 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $6 + local.get $2 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf18 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf33 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|035 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -4844,59 +4841,57 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/staticarray/StaticArray#indexOf20 - local.get $6 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf36 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.const -3 i32.le_s i32.const 1 - local.get $0 + local.get $1 select - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/staticarray/StaticArray#indexOf20 - end - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf36 + local.get $1 i32.const 3 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 - loop $while-continue|021 + local.set $0 + loop $while-continue|038 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $6 + local.get $2 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf20 - local.get $1 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf36 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|021 + local.set $0 + br $while-continue|038 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1216 @@ -4910,22 +4905,22 @@ i32.const 9 i32.const 2688 call $~lib/rt/__newArray - local.tee $6 + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 2752 i32.store offset=20 - local.get $6 + local.get $0 i32.const 2752 call $~lib/array/Array<~lib/string/String>#join - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 2784 i32.store offset=12 - local.get $1 + local.get $2 i32.const 2784 call $~lib/string/String.__eq i32.eqz @@ -4940,17 +4935,17 @@ global.get $~lib/memory/__stack_pointer i32.const 2720 i32.store offset=20 - local.get $6 + local.get $0 i32.const 2720 call $~lib/array/Array<~lib/string/String>#join - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 2832 i32.store offset=12 - local.get $1 + local.get $2 i32.const 2832 call $~lib/string/String.__eq i32.eqz @@ -4965,17 +4960,17 @@ global.get $~lib/memory/__stack_pointer i32.const 2880 i32.store offset=20 - local.get $6 + local.get $0 i32.const 2880 call $~lib/array/Array<~lib/string/String>#join - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 2912 i32.store offset=12 - local.get $1 + local.get $2 i32.const 2912 call $~lib/string/String.__eq i32.eqz @@ -4990,17 +4985,17 @@ global.get $~lib/memory/__stack_pointer i32.const 2960 i32.store offset=20 - local.get $6 + local.get $0 i32.const 2960 call $~lib/array/Array<~lib/string/String>#join - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 2992 i32.store offset=12 - local.get $1 + local.get $2 i32.const 2992 call $~lib/string/String.__eq i32.eqz @@ -5015,12 +5010,12 @@ global.get $~lib/memory/__stack_pointer i32.const 2752 i32.store offset=20 - local.get $6 + local.get $0 i32.const 2752 call $~lib/array/Array<~lib/string/String>#join - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5031,25 +5026,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 2752 i32.store - local.get $6 + local.get $0 i32.const 2752 call $~lib/array/Array<~lib/string/String>#join - local.set $6 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=12 - local.get $1 - local.get $6 + local.get $2 + local.get $0 call $~lib/string/String.__eq i32.eqz if @@ -5065,63 +5060,63 @@ i32.const 6 i32.const 3056 call $~lib/rt/__newArray - local.tee $6 + local.tee $0 i32.store offset=24 - local.get $6 + local.get $0 i32.load offset=12 - local.tee $2 - local.set $1 + local.tee $6 + local.set $2 i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf - local.get $2 + local.get $6 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 local.get $2 + local.get $6 i32.add - local.get $2 + local.get $6 i32.const 1 i32.sub - local.get $1 - local.get $1 local.get $2 + local.get $2 + local.get $6 i32.ge_s select - local.get $1 + local.get $2 i32.const 0 i32.lt_s select - local.set $1 - local.get $6 - i32.load offset=4 local.set $2 - loop $while-continue|00 - local.get $1 + local.get $0 + i32.load offset=4 + local.set $6 + loop $while-continue|011 + local.get $2 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $2 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|00 + local.set $2 + br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -5132,61 +5127,63 @@ call $~lib/builtins/abort unreachable end - local.get $6 - i32.load offset=12 + local.get $0 local.tee $2 - local.set $1 - i32.const -1 + i32.load offset=12 local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf5 + i32.const -1 + local.set $1 + block $__inlined_func$~lib/array/Array#lastIndexOf16 local.get $2 + i32.load offset=12 + local.tee $6 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $1 - local.get $2 + br_if $__inlined_func$~lib/array/Array#lastIndexOf16 + local.get $0 + local.get $6 i32.add - local.get $2 + local.get $6 i32.const 1 i32.sub - local.get $1 - local.get $1 - local.get $2 + local.get $0 + local.get $0 + local.get $6 i32.ge_s select - local.get $1 + local.get $0 i32.const 0 i32.lt_s select - local.set $1 - local.get $6 + local.set $0 + local.get $2 i32.load offset=4 - local.set $2 - loop $while-continue|06 - local.get $1 + local.set $6 + loop $while-continue|017 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 7 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf5 - local.get $0 + br_if $__inlined_func$~lib/array/Array#lastIndexOf16 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|06 + local.set $0 + br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -5197,16 +5194,14 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf7 - local.get $6 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf18 + local.get $2 i32.load offset=12 local.tee $1 i32.eqz - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/array/Array#lastIndexOf7 - end + br_if $__inlined_func$~lib/array/Array#lastIndexOf18 local.get $1 i32.const 1 i32.sub @@ -5215,35 +5210,35 @@ i32.const 3 i32.le_s select - local.set $1 - local.get $6 - i32.load offset=4 local.set $0 - loop $while-continue|023 - local.get $1 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|040 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf7 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf18 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|023 + local.set $0 + br $while-continue|040 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -5254,16 +5249,14 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf24 - local.get $6 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf28 + local.get $2 i32.load offset=12 local.tee $1 i32.eqz - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/array/Array#lastIndexOf24 - end + br_if $__inlined_func$~lib/array/Array#lastIndexOf28 local.get $1 i32.const 1 i32.sub @@ -5272,35 +5265,35 @@ i32.const 2 i32.le_s select - local.set $1 - local.get $6 - i32.load offset=4 local.set $0 - loop $while-continue|025 - local.get $1 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|02941 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf24 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf28 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|025 + local.set $0 + br $while-continue|02941 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1216 @@ -5309,48 +5302,46 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf26 - local.get $6 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf30 + local.get $2 i32.load offset=12 local.tee $1 i32.eqz - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/array/Array#lastIndexOf26 - end + br_if $__inlined_func$~lib/array/Array#lastIndexOf30 local.get $1 i32.const 2 i32.sub - local.set $1 - local.get $6 - i32.load offset=4 local.set $0 - loop $while-continue|027 - local.get $1 + local.get $2 + i32.load offset=4 + local.set $1 + loop $while-continue|031 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf26 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf30 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|027 + local.set $0 + br $while-continue|031 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1216 @@ -5359,48 +5350,46 @@ call $~lib/builtins/abort unreachable end - block $__inlined_func$~lib/array/Array#lastIndexOf28 - local.get $6 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf32 + local.get $2 i32.load offset=12 local.tee $1 i32.eqz - if - i32.const -1 - local.set $1 - br $__inlined_func$~lib/array/Array#lastIndexOf28 - end + br_if $__inlined_func$~lib/array/Array#lastIndexOf32 local.get $1 i32.const 1 i32.sub - local.set $1 - local.get $6 + local.set $0 + local.get $2 i32.load offset=4 - local.set $6 - loop $while-continue|029 - local.get $1 + local.set $2 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $6 + local.get $2 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf28 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf32 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $while-continue|029 + local.set $0 + br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -5417,12 +5406,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|08 + loop $while-continue|034 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|08 + br $while-continue|034 end end end @@ -5625,22 +5614,22 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - i32.const 0 - local.get $1 - select local.tee $3 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u + i32.const 0 + local.get $1 + select local.tee $4 i32.add local.tee $2 @@ -5664,16 +5653,16 @@ i32.store local.get $2 local.get $0 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.tee $0 + local.tee $3 call $~lib/memory/memory.copy - local.get $0 local.get $2 + local.get $3 i32.add local.get $1 - local.get $3 + local.get $4 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -5775,7 +5764,7 @@ i32.shl local.get $0 i32.add - local.set $1 + local.set $4 i32.const 0 local.set $0 loop $while-continue|0 @@ -5787,13 +5776,13 @@ local.get $2 i32.add local.get $0 - local.get $1 + local.get $4 i32.add i32.load - local.tee $4 + local.tee $1 i32.store local.get $2 - local.get $4 + local.get $1 i32.const 1 call $~lib/rt/itcms/__link local.get $0 @@ -5906,7 +5895,7 @@ i32.const 0 local.get $1 select - local.tee $6 + local.tee $5 i32.add local.tee $3 i32.const 268435455 @@ -5928,7 +5917,7 @@ i32.store local.get $3 i32.load offset=4 - local.set $5 + local.set $6 local.get $2 i32.const 2 i32.shl @@ -5939,7 +5928,7 @@ i32.gt_u if local.get $4 - local.get $5 + local.get $6 i32.add local.get $0 local.get $4 @@ -5959,13 +5948,13 @@ end end local.get $2 - local.get $5 + local.get $6 i32.add local.set $4 local.get $1 i32.load offset=4 - local.set $1 - local.get $6 + local.set $2 + local.get $5 i32.const 2 i32.shl local.set $5 @@ -5980,13 +5969,13 @@ local.get $4 i32.add local.get $0 - local.get $1 + local.get $2 i32.add i32.load - local.tee $2 + local.tee $1 i32.store local.get $3 - local.get $2 + local.get $1 i32.const 1 call $~lib/rt/itcms/__link local.get $0 diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index 2733967504..e9b8c283a6 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -573,6 +573,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -580,10 +581,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 37476 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -597,7 +598,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -622,8 +623,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -631,10 +633,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 21056 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1280 i32.const 1344 @@ -643,7 +646,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 21060 @@ -658,16 +661,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -675,11 +678,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1949,8 +1952,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -3484,25 +3487,25 @@ (local $3 i32) (local $4 i32) (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 21092 - i32.lt_s - if - i32.const 37504 - i32.const 37552 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa64 + block $__inlined_func$~lib/util/number/itoa64 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21092 + i32.lt_s + if + i32.const 37504 + i32.const 37552 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i64.eqz if @@ -3511,7 +3514,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 19200 - local.set $1 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 @@ -3531,48 +3533,48 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $3 local.tee $1 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $3 i32.const 100000000 i32.ge_u i32.add @@ -3580,16 +3582,16 @@ end local.get $4 i32.add - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store + local.get $2 local.get $1 local.get $3 - local.get $2 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -3645,25 +3647,25 @@ end local.get $4 i32.add - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $while-continue|0 local.get $0 i64.const 100000000 i64.ge_u if - local.get $2 + local.get $3 i32.const 4 i32.sub - local.tee $2 + local.tee $3 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add local.get $0 local.get $0 @@ -3674,7 +3676,7 @@ i64.mul i64.sub i32.wrap_i64 - local.tee $3 + local.tee $1 i32.const 10000 i32.rem_u local.tee $5 @@ -3697,18 +3699,18 @@ i64.shl i64.or i64.store - local.get $2 + local.get $3 i32.const 4 i32.sub - local.tee $2 + local.tee $3 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $3 + local.get $1 i32.const 10000 i32.div_u - local.tee $3 + local.tee $1 i32.const 100 i32.div_u i32.const 2 @@ -3716,7 +3718,7 @@ i32.const 19212 i32.add i64.load32_u - local.get $3 + local.get $1 i32.const 100 i32.rem_u i32.const 2 @@ -3731,15 +3733,15 @@ br $while-continue|0 end end - local.get $1 + local.get $2 local.get $0 i32.wrap_i64 - local.get $2 + local.get $3 call $~lib/util/number/utoa32_dec_lut end local.get $4 if - local.get $1 + local.get $2 i32.const 45 i32.store16 end @@ -3747,32 +3749,32 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $1 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 21092 - i32.lt_s - if - i32.const 37504 - i32.const 37552 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/string/String#concat + block $__inlined_func$~lib/string/String#concat (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21092 + i32.lt_s + if + i32.const 37504 + i32.const 37552 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.const 20 i32.sub @@ -3800,7 +3802,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1056 - local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer @@ -3823,8 +3824,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -4082,22 +4083,22 @@ i32.shl i32.const 1488 i32.add - local.tee $2 + local.tee $1 i32.load16_u offset=6 - local.set $1 + local.set $2 local.get $5 i32.const 1 i32.shl local.get $6 i32.add local.tee $4 - local.get $2 + local.get $1 i32.load offset=2 i32.store local.get $4 - local.get $1 + local.get $2 i32.store16 offset=4 - local.get $1 + local.get $2 i32.const 0 i32.ne i32.const 1 @@ -4111,7 +4112,7 @@ call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.tee $1 + local.tee $2 i32.const 65536 i32.lt_u if @@ -4120,7 +4121,7 @@ i32.shl local.get $6 i32.add - local.get $1 + local.get $2 i32.store16 else local.get $5 @@ -4128,15 +4129,15 @@ i32.shl local.get $6 i32.add - local.get $1 + local.get $2 i32.const 65536 i32.sub - local.tee $1 + local.tee $2 i32.const 10 i32.shr_u i32.const 55296 i32.or - local.get $1 + local.get $2 i32.const 1023 i32.and i32.const 56320 @@ -4187,14 +4188,14 @@ global.set $~lib/memory/__stack_pointer ) (func $start:std/string-casemapping - (local $0 i64) + (local $0 i32) (local $1 i64) (local $2 i64) (local $3 i64) - (local $4 i32) + (local $4 i64) (local $5 i32) - (local $6 i64) - (local $7 i32) + (local $6 i32) + (local $7 i64) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer @@ -4213,16 +4214,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $9 + local.tee $0 i64.const 0 i64.store - local.get $9 + local.get $0 i64.const 0 i64.store offset=8 - local.get $9 + local.get $0 i64.const 0 i64.store offset=16 - local.get $9 + local.get $0 i32.const 0 i32.store offset=24 memory.size @@ -4257,19 +4258,19 @@ i32.store i32.const 1376 global.set $~lib/rt/itcms/fromSpace - local.get $9 + local.get $0 i32.const 1056 i32.store offset=8 i32.const 1056 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - local.get $9 + local.get $0 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -4286,14 +4287,14 @@ i32.store offset=8 i32.const 1056 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - local.get $9 + local.get $0 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -4310,14 +4311,14 @@ i32.store offset=8 i32.const 11808 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $9 + local.get $0 i32.const 11856 call $~lib/string/String.__eq i32.eqz @@ -4334,14 +4335,14 @@ i32.store offset=8 i32.const 11904 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 11952 i32.store offset=4 - local.get $9 + local.get $0 i32.const 11952 call $~lib/string/String.__eq i32.eqz @@ -4358,14 +4359,14 @@ i32.store offset=8 i32.const 12000 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 12096 i32.store offset=4 - local.get $9 + local.get $0 i32.const 12096 call $~lib/string/String.__eq i32.eqz @@ -4382,14 +4383,14 @@ i32.store offset=8 i32.const 12096 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 12192 i32.store offset=4 - local.get $9 + local.get $0 i32.const 12192 call $~lib/string/String.__eq i32.eqz @@ -4406,14 +4407,14 @@ i32.store offset=8 i32.const 12288 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 12352 i32.store offset=4 - local.get $9 + local.get $0 i32.const 12352 call $~lib/string/String.__eq i32.eqz @@ -4430,14 +4431,14 @@ i32.store offset=8 i32.const 12352 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 12416 i32.store offset=4 - local.get $9 + local.get $0 i32.const 12416 call $~lib/string/String.__eq i32.eqz @@ -4454,14 +4455,14 @@ i32.store offset=8 i32.const 12480 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 12576 i32.store offset=4 - local.get $9 + local.get $0 i32.const 12576 call $~lib/string/String.__eq i32.eqz @@ -4478,14 +4479,14 @@ i32.store offset=8 i32.const 12576 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 12672 i32.store offset=4 - local.get $9 + local.get $0 i32.const 12672 call $~lib/string/String.__eq i32.eqz @@ -4502,14 +4503,14 @@ i32.store offset=8 i32.const 12768 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 12864 i32.store offset=4 - local.get $9 + local.get $0 i32.const 12864 call $~lib/string/String.__eq i32.eqz @@ -4526,14 +4527,14 @@ i32.store offset=8 i32.const 12864 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 12960 i32.store offset=4 - local.get $9 + local.get $0 i32.const 12960 call $~lib/string/String.__eq i32.eqz @@ -4550,14 +4551,14 @@ i32.store offset=8 i32.const 13056 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 13136 i32.store offset=4 - local.get $9 + local.get $0 i32.const 13136 call $~lib/string/String.__eq i32.eqz @@ -4574,14 +4575,14 @@ i32.store offset=8 i32.const 13216 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 13296 i32.store offset=4 - local.get $9 + local.get $0 i32.const 13296 call $~lib/string/String.__eq i32.eqz @@ -4598,14 +4599,14 @@ i32.store offset=8 i32.const 13376 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 13440 i32.store offset=4 - local.get $9 + local.get $0 i32.const 13440 call $~lib/string/String.__eq i32.eqz @@ -4622,14 +4623,14 @@ i32.store offset=8 i32.const 13504 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 13584 i32.store offset=4 - local.get $9 + local.get $0 i32.const 13584 call $~lib/string/String.__eq i32.eqz @@ -4646,14 +4647,14 @@ i32.store offset=8 i32.const 13664 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 13744 i32.store offset=4 - local.get $9 + local.get $0 i32.const 13744 call $~lib/string/String.__eq i32.eqz @@ -4670,14 +4671,14 @@ i32.store offset=8 i32.const 13824 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 13888 i32.store offset=4 - local.get $9 + local.get $0 i32.const 13888 call $~lib/string/String.__eq i32.eqz @@ -4694,14 +4695,14 @@ i32.store offset=8 i32.const 13952 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 14032 i32.store offset=4 - local.get $9 + local.get $0 i32.const 14032 call $~lib/string/String.__eq i32.eqz @@ -4718,14 +4719,14 @@ i32.store offset=8 i32.const 14112 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 14192 i32.store offset=4 - local.get $9 + local.get $0 i32.const 14192 call $~lib/string/String.__eq i32.eqz @@ -4742,14 +4743,14 @@ i32.store offset=8 i32.const 14272 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 14432 i32.store offset=4 - local.get $9 + local.get $0 i32.const 14432 call $~lib/string/String.__eq i32.eqz @@ -4766,14 +4767,14 @@ i32.store offset=8 i32.const 14272 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 14592 i32.store offset=4 - local.get $9 + local.get $0 i32.const 14592 call $~lib/string/String.__eq i32.eqz @@ -4790,14 +4791,14 @@ i32.store offset=8 i32.const 14752 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 14784 i32.store offset=4 - local.get $9 + local.get $0 i32.const 14784 call $~lib/string/String.__eq i32.eqz @@ -4814,14 +4815,14 @@ i32.store offset=8 i32.const 14816 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 14848 i32.store offset=4 - local.get $9 + local.get $0 i32.const 14848 call $~lib/string/String.__eq i32.eqz @@ -4838,14 +4839,14 @@ i32.store offset=8 i32.const 14880 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15088 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15088 call $~lib/string/String.__eq i32.eqz @@ -4862,20 +4863,20 @@ i32.store offset=12 i32.const 14752 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store offset=8 - local.get $9 + local.get $0 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15296 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15296 call $~lib/string/String.__eq i32.eqz @@ -4892,20 +4893,20 @@ i32.store offset=12 i32.const 15328 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store offset=8 - local.get $9 + local.get $0 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15360 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15360 call $~lib/string/String.__eq i32.eqz @@ -4922,20 +4923,20 @@ i32.store offset=12 i32.const 15392 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store offset=8 - local.get $9 + local.get $0 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15392 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15392 call $~lib/string/String.__eq i32.eqz @@ -4949,20 +4950,20 @@ end i32.const 65536 call $~lib/string/String.fromCodePoint - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store offset=8 - local.get $9 + local.get $0 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15648 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15648 call $~lib/string/String.__eq i32.eqz @@ -4976,20 +4977,20 @@ end i32.const 65536 call $~lib/string/String.fromCodePoint - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store offset=8 - local.get $9 + local.get $0 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15648 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15648 call $~lib/string/String.__eq i32.eqz @@ -5006,14 +5007,14 @@ i32.store offset=8 i32.const 15680 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15712 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15712 call $~lib/string/String.__eq i32.eqz @@ -5030,14 +5031,14 @@ i32.store offset=8 i32.const 15744 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15776 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15776 call $~lib/string/String.__eq i32.eqz @@ -5054,14 +5055,14 @@ i32.store offset=8 i32.const 15808 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15840 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15840 call $~lib/string/String.__eq i32.eqz @@ -5078,14 +5079,14 @@ i32.store offset=8 i32.const 15872 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15904 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15904 call $~lib/string/String.__eq i32.eqz @@ -5102,14 +5103,14 @@ i32.store offset=8 i32.const 15936 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 15968 i32.store offset=4 - local.get $9 + local.get $0 i32.const 15968 call $~lib/string/String.__eq i32.eqz @@ -5126,14 +5127,14 @@ i32.store offset=8 i32.const 16000 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16032 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16032 call $~lib/string/String.__eq i32.eqz @@ -5150,14 +5151,14 @@ i32.store offset=8 i32.const 16064 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16096 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16096 call $~lib/string/String.__eq i32.eqz @@ -5174,14 +5175,14 @@ i32.store offset=8 i32.const 16128 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16160 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16160 call $~lib/string/String.__eq i32.eqz @@ -5198,14 +5199,14 @@ i32.store offset=8 i32.const 16192 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16224 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16224 call $~lib/string/String.__eq i32.eqz @@ -5222,14 +5223,14 @@ i32.store offset=8 i32.const 16256 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16288 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16288 call $~lib/string/String.__eq i32.eqz @@ -5246,14 +5247,14 @@ i32.store offset=8 i32.const 16320 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16352 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16352 call $~lib/string/String.__eq i32.eqz @@ -5270,14 +5271,14 @@ i32.store offset=8 i32.const 16384 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16416 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16416 call $~lib/string/String.__eq i32.eqz @@ -5294,14 +5295,14 @@ i32.store offset=8 i32.const 16448 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16480 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16480 call $~lib/string/String.__eq i32.eqz @@ -5318,14 +5319,14 @@ i32.store offset=8 i32.const 16512 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16544 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16544 call $~lib/string/String.__eq i32.eqz @@ -5342,14 +5343,14 @@ i32.store offset=8 i32.const 16576 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16608 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16608 call $~lib/string/String.__eq i32.eqz @@ -5366,14 +5367,14 @@ i32.store offset=8 i32.const 16640 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16672 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16672 call $~lib/string/String.__eq i32.eqz @@ -5390,14 +5391,14 @@ i32.store offset=8 i32.const 16704 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16736 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16736 call $~lib/string/String.__eq i32.eqz @@ -5414,14 +5415,14 @@ i32.store offset=8 i32.const 16768 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16800 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16800 call $~lib/string/String.__eq i32.eqz @@ -5438,14 +5439,14 @@ i32.store offset=8 i32.const 16832 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16864 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16864 call $~lib/string/String.__eq i32.eqz @@ -5462,14 +5463,14 @@ i32.store offset=8 i32.const 16896 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16928 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16928 call $~lib/string/String.__eq i32.eqz @@ -5486,14 +5487,14 @@ i32.store offset=8 i32.const 16960 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16992 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16992 call $~lib/string/String.__eq i32.eqz @@ -5510,14 +5511,14 @@ i32.store offset=8 i32.const 17024 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17056 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17056 call $~lib/string/String.__eq i32.eqz @@ -5534,14 +5535,14 @@ i32.store offset=8 i32.const 17088 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17120 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17120 call $~lib/string/String.__eq i32.eqz @@ -5558,14 +5559,14 @@ i32.store offset=8 i32.const 17152 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17184 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17184 call $~lib/string/String.__eq i32.eqz @@ -5582,14 +5583,14 @@ i32.store offset=8 i32.const 17216 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17248 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17248 call $~lib/string/String.__eq i32.eqz @@ -5606,14 +5607,14 @@ i32.store offset=8 i32.const 17280 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 16352 i32.store offset=4 - local.get $9 + local.get $0 i32.const 16352 call $~lib/string/String.__eq i32.eqz @@ -5630,14 +5631,14 @@ i32.store offset=8 i32.const 17312 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17344 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17344 call $~lib/string/String.__eq i32.eqz @@ -5654,14 +5655,14 @@ i32.store offset=8 i32.const 17376 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17408 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17408 call $~lib/string/String.__eq i32.eqz @@ -5678,14 +5679,14 @@ i32.store offset=8 i32.const 17440 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17472 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17472 call $~lib/string/String.__eq i32.eqz @@ -5702,14 +5703,14 @@ i32.store offset=8 i32.const 17504 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17536 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17536 call $~lib/string/String.__eq i32.eqz @@ -5726,14 +5727,14 @@ i32.store offset=8 i32.const 17568 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17600 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17600 call $~lib/string/String.__eq i32.eqz @@ -5750,14 +5751,14 @@ i32.store offset=8 i32.const 17632 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17664 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17664 call $~lib/string/String.__eq i32.eqz @@ -5774,14 +5775,14 @@ i32.store offset=8 i32.const 17696 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17728 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17728 call $~lib/string/String.__eq i32.eqz @@ -5798,14 +5799,14 @@ i32.store offset=8 i32.const 17760 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17792 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17792 call $~lib/string/String.__eq i32.eqz @@ -5822,14 +5823,14 @@ i32.store offset=8 i32.const 17824 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17856 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17856 call $~lib/string/String.__eq i32.eqz @@ -5846,14 +5847,14 @@ i32.store offset=8 i32.const 17888 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17920 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17920 call $~lib/string/String.__eq i32.eqz @@ -5870,14 +5871,14 @@ i32.store offset=8 i32.const 17952 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 17984 i32.store offset=4 - local.get $9 + local.get $0 i32.const 17984 call $~lib/string/String.__eq i32.eqz @@ -5894,14 +5895,14 @@ i32.store offset=8 i32.const 18016 call $~lib/string/String#toLowerCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18048 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18048 call $~lib/string/String.__eq i32.eqz @@ -5918,14 +5919,14 @@ i32.store offset=8 i32.const 18080 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18112 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18112 call $~lib/string/String.__eq i32.eqz @@ -5942,14 +5943,14 @@ i32.store offset=8 i32.const 15328 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18144 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18144 call $~lib/string/String.__eq i32.eqz @@ -5966,14 +5967,14 @@ i32.store offset=8 i32.const 18176 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18208 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18208 call $~lib/string/String.__eq i32.eqz @@ -5990,14 +5991,14 @@ i32.store offset=8 i32.const 18240 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18272 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18272 call $~lib/string/String.__eq i32.eqz @@ -6014,14 +6015,14 @@ i32.store offset=8 i32.const 18304 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18336 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18336 call $~lib/string/String.__eq i32.eqz @@ -6038,14 +6039,14 @@ i32.store offset=8 i32.const 18368 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18400 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18400 call $~lib/string/String.__eq i32.eqz @@ -6062,14 +6063,14 @@ i32.store offset=8 i32.const 18432 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18400 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18400 call $~lib/string/String.__eq i32.eqz @@ -6086,14 +6087,14 @@ i32.store offset=8 i32.const 18464 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18496 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18496 call $~lib/string/String.__eq i32.eqz @@ -6110,14 +6111,14 @@ i32.store offset=8 i32.const 18528 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18560 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18560 call $~lib/string/String.__eq i32.eqz @@ -6134,14 +6135,14 @@ i32.store offset=8 i32.const 18592 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18624 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18624 call $~lib/string/String.__eq i32.eqz @@ -6158,14 +6159,14 @@ i32.store offset=8 i32.const 18656 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18688 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18688 call $~lib/string/String.__eq i32.eqz @@ -6182,14 +6183,14 @@ i32.store offset=8 i32.const 18720 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18752 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18752 call $~lib/string/String.__eq i32.eqz @@ -6206,14 +6207,14 @@ i32.store offset=8 i32.const 18784 call $~lib/string/String#toUpperCase - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 18816 i32.store offset=4 - local.get $9 + local.get $0 i32.const 18816 call $~lib/string/String.__eq i32.eqz @@ -6233,20 +6234,23 @@ global.get $~lib/memory/__stack_pointer local.get $8 call $~lib/string/String.fromCodePoint - local.tee $9 + local.tee $5 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 call $~lib/string/String#toLowerCase - local.tee $5 + local.tee $0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $5 call $~lib/string/String#toUpperCase - local.tee $4 + local.tee $5 i32.store offset=24 - block $__inlined_func$~lib/string/String#codePointAt - local.get $5 + block $__inlined_func$~lib/string/String#codePointAt (result i32) + local.get $0 + local.set $6 + i32.const -1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -6254,16 +6258,13 @@ i32.shr_u local.tee $9 i32.eqz - if - i32.const -1 - local.set $9 - br $__inlined_func$~lib/string/String#codePointAt - end + br_if $__inlined_func$~lib/string/String#codePointAt + drop i32.const 1 local.get $9 i32.const 1 i32.eq - local.get $5 + local.get $6 i32.load16_u local.tee $9 i32.const 64512 @@ -6271,29 +6272,35 @@ i32.const 55296 i32.ne select - br_if $__inlined_func$~lib/string/String#codePointAt - local.get $5 + if + local.get $9 + br $__inlined_func$~lib/string/String#codePointAt + end + local.get $9 + local.get $6 i32.load16_u offset=2 - local.tee $7 + local.tee $6 i32.const 64512 i32.and i32.const 56320 i32.ne br_if $__inlined_func$~lib/string/String#codePointAt - local.get $7 + drop + local.get $6 local.get $9 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub - local.set $9 end - local.get $9 i64.extend_i32_s - local.set $0 - block $__inlined_func$~lib/string/String#codePointAt0 - local.get $5 + local.set $1 + block $__inlined_func$~lib/string/String#codePointAt6 (result i32) + local.get $0 + local.set $6 + i32.const -1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -6302,16 +6309,13 @@ local.tee $9 i32.const 1 i32.le_u - if - i32.const -1 - local.set $9 - br $__inlined_func$~lib/string/String#codePointAt0 - end + br_if $__inlined_func$~lib/string/String#codePointAt6 + drop i32.const 1 local.get $9 i32.const 2 i32.eq - local.get $5 + local.get $6 i32.load16_u offset=2 local.tee $9 i32.const 64512 @@ -6319,39 +6323,44 @@ i32.const 55296 i32.ne select - br_if $__inlined_func$~lib/string/String#codePointAt0 - local.get $5 + if + local.get $9 + br $__inlined_func$~lib/string/String#codePointAt6 + end + local.get $9 + local.get $6 i32.load16_u offset=4 - local.tee $7 + local.tee $6 i32.const 64512 i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt0 - local.get $7 + br_if $__inlined_func$~lib/string/String#codePointAt6 + drop + local.get $6 local.get $9 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub - local.set $9 end - local.get $9 i64.extend_i32_s - local.tee $3 + local.tee $4 i64.const 0 i64.ge_s if - local.get $3 + local.get $4 i64.const 16 i64.shl - local.get $0 + local.get $1 i64.add - local.set $0 + local.set $1 end - block $__inlined_func$~lib/string/String#codePointAt1 - local.get $5 + block $__inlined_func$~lib/string/String#codePointAt8 (result i32) + i32.const -1 + local.get $0 + local.tee $6 i32.const 20 i32.sub i32.load offset=16 @@ -6360,57 +6369,58 @@ local.tee $9 i32.const 2 i32.le_u - if - i32.const -1 - local.set $9 - br $__inlined_func$~lib/string/String#codePointAt1 - end + br_if $__inlined_func$~lib/string/String#codePointAt8 + drop i32.const 1 local.get $9 i32.const 3 i32.eq - local.get $5 + local.get $6 i32.load16_u offset=4 - local.tee $9 + local.tee $0 i32.const 64512 i32.and i32.const 55296 i32.ne select - br_if $__inlined_func$~lib/string/String#codePointAt1 - local.get $5 + if + local.get $0 + br $__inlined_func$~lib/string/String#codePointAt8 + end + local.get $0 + local.get $6 i32.load16_u offset=6 - local.tee $5 + local.tee $6 i32.const 64512 i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt1 - local.get $5 - local.get $9 + br_if $__inlined_func$~lib/string/String#codePointAt8 + drop + local.get $6 + local.get $0 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub - local.set $9 end - local.get $9 i64.extend_i32_s - local.tee $3 + local.tee $4 i64.const 0 i64.ge_s if - local.get $3 + local.get $4 i64.const 32 i64.shl - local.get $0 + local.get $1 i64.add - local.set $0 + local.set $1 end - block $__inlined_func$~lib/string/String#codePointAt2 - local.get $4 - local.tee $5 + block $__inlined_func$~lib/string/String#codePointAt10 (result i32) + i32.const -1 + local.get $5 + local.tee $0 i32.const 20 i32.sub i32.load offset=16 @@ -6418,46 +6428,48 @@ i32.shr_u local.tee $9 i32.eqz - if - i32.const -1 - local.set $9 - br $__inlined_func$~lib/string/String#codePointAt2 - end + br_if $__inlined_func$~lib/string/String#codePointAt10 + drop i32.const 1 local.get $9 i32.const 1 i32.eq - local.get $5 + local.get $0 i32.load16_u - local.tee $9 + local.tee $6 i32.const 64512 i32.and i32.const 55296 i32.ne select - br_if $__inlined_func$~lib/string/String#codePointAt2 - local.get $5 + if + local.get $6 + br $__inlined_func$~lib/string/String#codePointAt10 + end + local.get $6 + local.get $0 i32.load16_u offset=2 - local.tee $4 + local.tee $0 i32.const 64512 i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt2 - local.get $4 - local.get $9 + br_if $__inlined_func$~lib/string/String#codePointAt10 + drop + local.get $0 + local.get $6 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub - local.set $9 end - local.get $9 i64.extend_i32_s - local.set $3 - block $__inlined_func$~lib/string/String#codePointAt3 + local.set $4 + block $__inlined_func$~lib/string/String#codePointAt12 (result i32) + i32.const -1 local.get $5 + local.tee $0 i32.const 20 i32.sub i32.load offset=16 @@ -6466,184 +6478,186 @@ local.tee $9 i32.const 1 i32.le_u - if - i32.const -1 - local.set $9 - br $__inlined_func$~lib/string/String#codePointAt3 - end + br_if $__inlined_func$~lib/string/String#codePointAt12 + drop i32.const 1 local.get $9 i32.const 2 i32.eq - local.get $5 + local.get $0 i32.load16_u offset=2 - local.tee $9 + local.tee $6 i32.const 64512 i32.and i32.const 55296 i32.ne select - br_if $__inlined_func$~lib/string/String#codePointAt3 - local.get $5 + if + local.get $6 + br $__inlined_func$~lib/string/String#codePointAt12 + end + local.get $6 + local.get $0 i32.load16_u offset=4 - local.tee $4 + local.tee $0 i32.const 64512 i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt3 - local.get $4 - local.get $9 + br_if $__inlined_func$~lib/string/String#codePointAt12 + drop + local.get $0 + local.get $6 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub - local.set $9 end - local.get $9 i64.extend_i32_s - local.tee $2 + local.tee $3 i64.const 0 i64.ge_s if - local.get $2 + local.get $3 i64.const 16 i64.shl - local.get $3 + local.get $4 i64.add - local.set $3 + local.set $4 end - block $__inlined_func$~lib/string/String#codePointAt4 + block $__inlined_func$~lib/string/String#codePointAt14 (result i32) + i32.const -1 local.get $5 + local.tee $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $9 + local.tee $6 i32.const 2 i32.le_u - if - i32.const -1 - local.set $9 - br $__inlined_func$~lib/string/String#codePointAt4 - end + br_if $__inlined_func$~lib/string/String#codePointAt14 + drop i32.const 1 - local.get $9 + local.get $6 i32.const 3 i32.eq - local.get $5 + local.get $0 i32.load16_u offset=4 - local.tee $9 + local.tee $5 i32.const 64512 i32.and i32.const 55296 i32.ne select - br_if $__inlined_func$~lib/string/String#codePointAt4 + if + local.get $5 + br $__inlined_func$~lib/string/String#codePointAt14 + end local.get $5 + local.get $0 i32.load16_u offset=6 - local.tee $5 + local.tee $0 i32.const 64512 i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt4 + br_if $__inlined_func$~lib/string/String#codePointAt14 + drop + local.get $0 local.get $5 - local.get $9 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub - local.set $9 end - local.get $9 i64.extend_i32_s - local.tee $2 + local.tee $3 i64.const 0 i64.ge_s if - local.get $2 + local.get $3 i64.const 32 i64.shl - local.get $3 + local.get $4 i64.add - local.set $3 + local.set $4 end local.get $8 i32.const 0 call $std/string-casemapping/toLowerCaseFromIndex i64.extend_i32_s - local.set $2 + local.set $3 local.get $8 i32.const 1 call $std/string-casemapping/toLowerCaseFromIndex i64.extend_i32_s - local.tee $1 + local.tee $2 i64.const 0 i64.ge_s if - local.get $1 + local.get $2 i64.const 16 i64.shl - local.get $2 + local.get $3 i64.add - local.set $2 + local.set $3 end local.get $8 i32.const 2 call $std/string-casemapping/toLowerCaseFromIndex i64.extend_i32_s - local.tee $1 + local.tee $2 i64.const 0 i64.ge_s if - local.get $1 + local.get $2 i64.const 32 i64.shl - local.get $2 + local.get $3 i64.add - local.set $2 + local.set $3 end local.get $8 i32.const 0 call $std/string-casemapping/toUpperCaseFromIndex i64.extend_i32_s - local.set $1 + local.set $2 local.get $8 i32.const 1 call $std/string-casemapping/toUpperCaseFromIndex i64.extend_i32_s - local.tee $6 + local.tee $7 i64.const 0 i64.ge_s if - local.get $6 + local.get $7 i64.const 16 i64.shl - local.get $1 + local.get $2 i64.add - local.set $1 + local.set $2 end local.get $8 i32.const 2 call $std/string-casemapping/toUpperCaseFromIndex i64.extend_i32_s - local.tee $6 + local.tee $7 i64.const 0 i64.ge_s if - local.get $6 + local.get $7 i64.const 32 i64.shl - local.get $1 + local.get $2 i64.add - local.set $1 + local.set $2 end - local.get $0 - local.get $2 + local.get $1 + local.get $3 i64.ne if global.get $~lib/memory/__stack_pointer @@ -6661,20 +6675,20 @@ global.get $~lib/memory/__stack_pointer i32.const 18944 i32.store offset=4 - local.get $0 + local.get $1 call $~lib/number/I64#toString - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store offset=8 i32.const 18944 - local.get $9 + local.get $0 call $~lib/string/String.__concat - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store - local.get $9 + local.get $0 i32.const 0 f64.const 0 f64.const 0 @@ -6685,20 +6699,20 @@ global.get $~lib/memory/__stack_pointer i32.const 20784 i32.store offset=4 - local.get $2 + local.get $3 call $~lib/number/I64#toString - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store offset=8 i32.const 20784 - local.get $9 + local.get $0 call $~lib/string/String.__concat - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store - local.get $9 + local.get $0 i32.const 0 f64.const 0 f64.const 0 @@ -6707,8 +6721,8 @@ f64.const 0 call $~lib/builtins/trace end - local.get $1 - local.get $3 + local.get $2 + local.get $4 i64.ne if global.get $~lib/memory/__stack_pointer @@ -6726,20 +6740,20 @@ global.get $~lib/memory/__stack_pointer i32.const 20944 i32.store offset=4 - local.get $3 + local.get $4 call $~lib/number/I64#toString - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store offset=8 i32.const 20944 - local.get $9 + local.get $0 call $~lib/string/String.__concat - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store - local.get $9 + local.get $0 i32.const 0 f64.const 0 f64.const 0 @@ -6750,20 +6764,20 @@ global.get $~lib/memory/__stack_pointer i32.const 21008 i32.store offset=4 - local.get $1 + local.get $2 call $~lib/number/I64#toString - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store offset=8 i32.const 21008 - local.get $9 + local.get $0 call $~lib/string/String.__concat - local.set $9 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $0 i32.store - local.get $9 + local.get $0 i32.const 0 f64.const 0 f64.const 0 @@ -6795,6 +6809,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6819,7 +6834,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $8 + local.tee $9 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -6830,16 +6845,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.const 2 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $8 i32.store loop $for-loop|0 local.get $4 - local.get $8 + local.get $9 i32.lt_u if local.get $4 @@ -6848,18 +6863,18 @@ local.get $0 i32.add i32.load16_u - local.tee $3 + local.tee $2 i32.const 7 i32.shr_u if block $for-continue|0 - local.get $8 + local.get $9 i32.const 1 i32.sub local.get $4 i32.gt_u i32.const 0 - local.get $3 + local.get $2 i32.const 55295 i32.sub i32.const 1025 @@ -6872,7 +6887,7 @@ local.get $0 i32.add i32.load16_u offset=2 - local.tee $7 + local.tee $6 i32.const 56319 i32.sub i32.const 1025 @@ -6882,10 +6897,10 @@ i32.const 1 i32.add local.set $4 - local.get $7 + local.get $6 i32.const 1023 i32.and - local.get $3 + local.get $2 local.tee $1 i32.const 1023 i32.and @@ -6894,66 +6909,67 @@ i32.or i32.const 65536 i32.add - local.tee $3 + local.tee $2 i32.const 131072 i32.ge_u if - local.get $5 + local.get $7 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add - local.get $7 + local.get $6 i32.const 16 i32.shl local.get $1 i32.or i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-continue|0 end end end - local.get $3 + local.get $2 i32.const 304 i32.eq if - local.get $5 + local.get $7 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add i32.const 50790505 i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 else - local.get $3 + local.get $2 i32.const 931 i32.eq if - local.get $5 + local.get $7 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add i32.const 962 i32.const 963 - local.get $8 + local.get $9 i32.const 1 i32.gt_u if (result i32) block $~lib/util/string/isFinalSigma|inlined.0 (result i32) i32.const 0 - local.set $2 + local.set $3 + local.get $4 i32.const 0 local.get $4 - local.tee $3 + local.tee $2 i32.const 30 i32.sub local.tee $1 @@ -6961,20 +6977,21 @@ i32.const 0 i32.lt_s select - local.set $9 + local.set $10 loop $while-continue|1 - local.get $3 - local.get $9 + local.get $2 + local.get $10 i32.gt_s if i32.const -1 local.set $1 block $~lib/util/string/codePointBefore|inlined.0 - local.get $3 + local.get $2 + local.tee $5 i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $3 + local.get $5 i32.const 1 i32.sub i32.const 1 @@ -6982,22 +6999,22 @@ local.get $0 i32.add i32.load16_u - local.tee $7 + local.tee $2 i32.const 64512 i32.and i32.const 56320 i32.eq - local.get $3 + local.get $5 i32.const 2 i32.sub i32.const 0 i32.ge_s i32.and if - local.get $7 + local.get $2 i32.const 1023 i32.and - local.get $3 + local.get $5 i32.const 2 i32.sub i32.const 1 @@ -7005,7 +7022,7 @@ local.get $0 i32.add i32.load16_u - local.tee $10 + local.tee $11 i32.const 1023 i32.and i32.const 10 @@ -7014,7 +7031,7 @@ i32.const 65536 i32.add local.set $1 - local.get $10 + local.get $11 i32.const 64512 i32.and i32.const 55296 @@ -7022,8 +7039,8 @@ br_if $~lib/util/string/codePointBefore|inlined.0 end i32.const 65533 - local.get $7 - local.get $7 + local.get $2 + local.get $2 i32.const 63488 i32.and i32.const 55296 @@ -7032,10 +7049,11 @@ local.set $1 end local.get $1 + local.tee $2 i32.const 918000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 8 i32.shr_u i32.const 7212 @@ -7045,14 +7063,14 @@ i32.shl i32.const 7212 i32.add - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $1 + local.get $2 i32.const 7 i32.and i32.shr_u @@ -7063,12 +7081,11 @@ end i32.eqz if - i32.const 0 - local.get $1 + local.get $2 i32.const 127370 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 8 i32.shr_u i32.const 10220 @@ -7078,14 +7095,14 @@ i32.shl i32.const 10220 i32.add - local.get $1 + local.get $2 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $1 + local.get $2 i32.const 7 i32.and i32.shr_u @@ -7094,47 +7111,48 @@ else i32.const 0 end - i32.eqz - br_if $~lib/util/string/isFinalSigma|inlined.0 - drop - i32.const 1 - local.set $2 + if (result i32) + i32.const 1 + else + i32.const 0 + br $~lib/util/string/isFinalSigma|inlined.0 + end + local.set $3 end - local.get $3 - local.get $1 + local.get $5 + local.get $2 i32.const 65536 i32.ge_s i32.const 1 i32.add i32.sub - local.set $3 + local.set $2 br $while-continue|1 end end i32.const 0 - local.get $2 + local.get $3 i32.eqz br_if $~lib/util/string/isFinalSigma|inlined.0 drop - local.get $4 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 30 i32.add local.tee $1 - local.get $8 + local.get $9 local.get $1 - local.get $8 + local.get $9 i32.lt_s select - local.set $2 + local.set $6 loop $while-continue|2 local.get $2 - local.get $3 - i32.gt_s + local.get $6 + i32.lt_s if - local.get $3 + local.get $2 i32.const 1 i32.shl local.get $0 @@ -7145,26 +7163,26 @@ i32.and i32.const 55296 i32.eq - local.get $8 - local.get $3 + local.get $9 + local.get $2 i32.const 1 i32.add i32.ne i32.and if - local.get $3 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.load16_u offset=2 - local.tee $7 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $7 + local.get $5 local.get $1 i32.const 10 i32.shl @@ -7244,9 +7262,9 @@ i32.ge_u i32.const 1 i32.add - local.get $3 + local.get $2 i32.add - local.set $3 + local.set $2 br $while-continue|2 end end @@ -7258,53 +7276,53 @@ select i32.store16 else - local.get $3 + local.get $2 i32.const 9398 i32.sub i32.const 25 i32.le_u if - local.get $5 + local.get $7 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add - local.get $3 + local.get $2 i32.const 26 i32.add i32.store16 else - local.get $3 + local.get $2 i32.const 0 call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.tee $3 + local.tee $2 i32.const 65536 i32.lt_u if - local.get $5 + local.get $7 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add - local.get $3 + local.get $2 i32.store16 else - local.get $5 + local.get $7 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add - local.get $3 + local.get $2 i32.const 65536 i32.sub - local.tee $3 + local.tee $2 i32.const 10 i32.shr_u i32.const 55296 i32.or - local.get $3 + local.get $2 i32.const 1023 i32.and i32.const 56320 @@ -7313,22 +7331,22 @@ i32.shl i32.or i32.store - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 end end end end end else - local.get $5 + local.get $7 i32.const 1 i32.shl - local.get $6 + local.get $8 i32.add - local.get $3 + local.get $2 i32.const 7084 i32.add i32.load8_u @@ -7338,15 +7356,15 @@ i32.const 1 i32.add local.set $4 - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|0 end end - local.get $6 - local.get $5 + local.get $8 + local.get $7 i32.const 1 i32.shl call $~lib/rt/itcms/__renew diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index dcb7a1ad25..796f4c1fd2 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -158,6 +158,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -165,10 +166,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 38924 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -182,7 +183,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -207,8 +208,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -216,10 +218,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 22512 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1344 i32.const 1408 @@ -228,7 +231,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 22516 @@ -243,16 +246,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -260,11 +263,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1534,8 +1537,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -2897,16 +2900,15 @@ (func $~start (local $0 i32) (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2918,7 +2920,7 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2981,20 +2983,20 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 1056 i32.store - local.get $0 + local.get $1 i32.const 1056 call $~lib/string/String.UTF16.encode - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3008,7 +3010,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u i32.const 1 i32.ne @@ -3020,7 +3022,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=1 i32.const 216 i32.ne @@ -3032,7 +3034,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=2 i32.const 55 i32.ne @@ -3044,7 +3046,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=3 i32.const 220 i32.ne @@ -3056,7 +3058,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=4 i32.const 104 i32.ne @@ -3068,7 +3070,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=5 if i32.const 0 @@ -3078,7 +3080,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=6 i32.const 105 i32.ne @@ -3090,7 +3092,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=7 if i32.const 0 @@ -3100,7 +3102,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=8 i32.const 82 i32.ne @@ -3112,7 +3114,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=9 i32.const 216 i32.ne @@ -3124,7 +3126,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=10 i32.const 98 i32.ne @@ -3136,7 +3138,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=11 i32.const 223 i32.ne @@ -3159,7 +3161,7 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3183,10 +3185,9 @@ call $~lib/string/String.UTF16.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 local.get $0 @@ -3205,365 +3206,165 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF16DecodeUnsafe global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 - i64.const 0 - i64.store - local.get $0 i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1056 i32.store local.get $0 i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 i32.store - i32.const 1052 - i32.load - local.set $2 - local.get $0 + i32.const 1056 i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store offset=8 - local.get $1 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz + call $~lib/string/String.UTF8.byteLength + i32.const 10 + i32.ne if i32.const 0 i32.const 1088 - i32.const 42 + i32.const 55 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 i32.const 1056 - i32.store offset=8 - local.get $1 + i32.store i32.const 1056 - call $~lib/string/String.__eq - i32.eqz + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 11 + i32.ne if i32.const 0 i32.const 1088 - i32.const 43 + i32.const 56 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $2 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store local.get $1 + i32.const 1056 i32.store - local.get $2 - i32.const 1584 - i32.store offset=8 + i32.const 1 + global.set $~argumentsLength local.get $1 - i32.const 1584 - call $~lib/string/String.__eq - i32.eqz + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 10 + i32.ne if i32.const 0 i32.const 1088 - i32.const 44 + i32.const 63 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 4 - i32.add - i32.const 2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $1 - i32.store - local.get $2 - i32.const 1616 - i32.store offset=8 local.get $1 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u + i32.const 240 + i32.ne if i32.const 0 i32.const 1088 - i32.const 45 + i32.const 64 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 4 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 - i32.store - local.get $2 - i32.const 1648 - i32.store offset=8 + i32.load8_u offset=1 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=2 + i32.const 144 + i32.ne if i32.const 0 i32.const 1088 - i32.const 46 + i32.const 66 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 8 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $1 - global.get $~lib/memory/__stack_pointer - local.tee $2 local.get $1 - i32.store - local.get $2 - i32.const 1680 - i32.store offset=8 + i32.load8_u offset=3 + i32.const 183 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end local.get $1 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=4 + i32.const 104 + i32.ne if i32.const 0 i32.const 1088 - i32.const 47 + i32.const 68 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $0 - i32.const 12 - i32.add - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store local.get $1 - i32.const 1552 - i32.store offset=8 - local.get $0 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz + i32.load8_u offset=5 + i32.const 105 + i32.ne if i32.const 0 i32.const 1088 - i32.const 48 + i32.const 69 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22540 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 1056 - i32.store - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 55 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 11 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22540 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 - i32.store - i32.const 1 - global.set $~argumentsLength - local.get $0 - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 65 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 183 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 + local.get $1 i32.load8_u offset=6 i32.const 240 i32.ne @@ -3575,7 +3376,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=7 i32.const 164 i32.ne @@ -3587,7 +3388,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=8 i32.const 173 i32.ne @@ -3599,7 +3400,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=9 i32.const 162 i32.ne @@ -3622,23 +3423,23 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 1056 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + local.get $1 i32.const 1056 i32.const 1 call $~lib/string/String.UTF8.encode@varargs - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3652,7 +3453,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u i32.const 240 i32.ne @@ -3664,7 +3465,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=1 i32.const 144 i32.ne @@ -3676,7 +3477,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=2 i32.const 144 i32.ne @@ -3688,7 +3489,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=3 i32.const 183 i32.ne @@ -3700,7 +3501,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=4 i32.const 104 i32.ne @@ -3712,7 +3513,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=5 i32.const 105 i32.ne @@ -3724,7 +3525,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=6 i32.const 240 i32.ne @@ -3736,7 +3537,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=7 i32.const 164 i32.ne @@ -3748,7 +3549,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=8 i32.const 173 i32.ne @@ -3760,7 +3561,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=9 i32.const 162 i32.ne @@ -3772,7 +3573,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load8_u offset=10 if i32.const 0 @@ -3793,7 +3594,7 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3802,19 +3603,20 @@ i32.const 0 i32.store offset=8 local.get $0 + local.tee $1 i32.const 1824 i32.store offset=4 i32.const 1824 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store local.get $0 + i32.store local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3959,7 +3761,7 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3987,10 +3789,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 local.get $0 @@ -4016,7 +3817,7 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -4050,10 +3851,9 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=8 local.get $0 @@ -4193,49 +3993,262 @@ call $std/string-encoding/testLarge global.get $~lib/rt/itcms/state i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 - end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end - end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 38944 + i32.const 38992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $std/string-encoding/testUTF16DecodeUnsafe + (local $0 i32) + (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + if + i32.const 38944 + i32.const 38992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 1056 + i32.store + local.get $0 + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1052 + i32.load + local.set $1 + local.get $2 + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1552 + i32.store offset=8 + local.get $0 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $1 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 1584 + i32.store offset=8 + local.get $0 + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 4 + i32.add + i32.const 2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 1616 + i32.store offset=8 + local.get $0 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 4 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 1648 + i32.store offset=8 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable end - i32.const 38944 - i32.const 38992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + local.get $2 + i32.const 8 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 1680 + i32.store offset=8 + local.get $0 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 12 + i32.add + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $2 + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $2 + i32.store + local.get $0 + i32.const 1552 + i32.store offset=8 + local.get $2 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) (func $std/string-encoding/testUTF8DecodeUnsafe (local $0 i32) @@ -4257,22 +4270,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1056 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 1056 i32.const 1 call $~lib/string/String.UTF8.encode@varargs - local.tee $1 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1056 @@ -4280,8 +4293,8 @@ i32.const 1056 i32.const 0 call $~lib/string/String.UTF8.byteLength - local.set $2 - local.get $1 + local.set $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.decodeUnsafe @@ -4304,16 +4317,16 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $2 + local.get $1 i32.const 0 call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1056 i32.store offset=8 local.get $0 @@ -4328,16 +4341,16 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 4 i32.const 0 call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1584 i32.store offset=8 local.get $0 @@ -4352,7 +4365,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 4 i32.add i32.const 2 @@ -4360,10 +4373,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1648 i32.store offset=8 local.get $0 @@ -4378,7 +4391,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 6 i32.add i32.const 4 @@ -4386,10 +4399,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1680 i32.store offset=8 local.get $0 @@ -4404,7 +4417,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 10 i32.add i32.const 0 @@ -4412,10 +4425,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1552 i32.store offset=8 local.get $0 @@ -4430,7 +4443,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 4 i32.add i32.const 100 @@ -4438,10 +4451,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 2000 i32.store offset=8 local.get $0 @@ -4456,7 +4469,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 6 i32.add i32.const 100 @@ -4464,10 +4477,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 1680 i32.store offset=8 local.get $0 @@ -4482,21 +4495,21 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 10 i32.add i32.const 100 i32.const 1 call $~lib/string/String.UTF8.decodeUnsafe - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $1 + local.get $2 i32.store local.get $0 i32.const 1552 i32.store offset=8 - local.get $1 + local.get $2 i32.const 1552 call $~lib/string/String.__eq i32.eqz @@ -4709,10 +4722,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store - local.get $3 + local.get $4 local.get $0 local.get $1 call $~lib/string/String.UTF8.byteLength @@ -4720,11 +4733,9 @@ call $~lib/rt/itcms/__new local.tee $5 i32.store - local.get $0 - local.set $4 local.get $5 - local.set $0 - local.get $4 + local.set $4 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -4732,24 +4743,24 @@ i32.shr_u i32.const 1 i32.shl - local.get $4 + local.get $0 i32.add local.set $6 loop $while-continue|0 - local.get $4 + local.get $0 local.get $6 i32.lt_u if - local.get $4 + local.get $0 i32.load16_u local.tee $3 i32.const 128 i32.lt_u if (result i32) - local.get $0 + local.get $4 local.get $3 i32.store8 - local.get $0 + local.get $4 i32.const 1 i32.add else @@ -4757,7 +4768,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $0 + local.get $4 local.get $3 i32.const 6 i32.shr_u @@ -4772,7 +4783,7 @@ i32.shl i32.or i32.store16 - local.get $0 + local.get $4 i32.const 2 i32.add else @@ -4783,7 +4794,7 @@ i32.eq if local.get $6 - local.get $4 + local.get $0 i32.const 2 i32.add i32.gt_u @@ -4793,7 +4804,7 @@ i32.lt_u select if - local.get $4 + local.get $0 i32.load16_u offset=2 local.tee $7 i32.const 64512 @@ -4801,7 +4812,7 @@ i32.const 56320 i32.eq if - local.get $0 + local.get $4 local.get $3 i32.const 1023 i32.and @@ -4847,14 +4858,14 @@ i32.or i32.or i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 local.get $4 i32.const 4 i32.add local.set $4 + local.get $0 + i32.const 4 + i32.add + local.set $0 br $while-continue|0 end end @@ -4877,7 +4888,7 @@ end local.set $3 end - local.get $0 + local.get $4 local.get $3 i32.const 12 i32.shr_u @@ -4894,29 +4905,29 @@ i32.shl i32.or i32.store16 - local.get $0 + local.get $4 local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $0 + local.get $4 i32.const 3 i32.add end end - local.set $0 - local.get $4 + local.set $4 + local.get $0 i32.const 2 i32.add - local.set $4 + local.set $0 br $while-continue|0 end end local.get $1 if - local.get $0 + local.get $4 i32.const 0 i32.store8 end @@ -4950,13 +4961,12 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 local.get $0 local.tee $3 - i32.add - local.set $5 + local.get $1 local.get $3 - local.get $5 + i32.add + local.tee $5 i32.gt_u if i32.const 0 @@ -5132,15 +5142,16 @@ end end end - block $__inlined_func$~lib/rt/itcms/__renew + block $__inlined_func$~lib/rt/itcms/__renew (result i32) local.get $1 local.get $0 - i32.sub local.tee $2 + i32.sub + local.tee $1 local.get $0 i32.const 20 i32.sub - local.tee $3 + local.tee $0 i32.load i32.const -4 i32.and @@ -5148,33 +5159,32 @@ i32.sub i32.le_u if - local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.store offset=16 + local.get $2 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $2 - local.get $3 + local.get $1 + local.get $0 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $1 - local.get $0 + local.tee $3 local.get $2 - local.get $3 + local.get $1 + local.get $0 i32.load offset=16 local.tee $0 local.get $0 - local.get $2 + local.get $1 i32.gt_u select call $~lib/memory/memory.copy - local.get $1 - local.set $0 + local.get $3 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index bc8051ae8a..a988e65437 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1149,6 +1149,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -1156,10 +1157,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 42268 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -1173,7 +1174,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -1198,19 +1199,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 25840 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1264 i32.const 1568 @@ -1219,7 +1222,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 25844 @@ -1234,28 +1237,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -2518,7 +2521,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -2546,11 +2549,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -2569,9 +2572,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -2587,7 +2590,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -2602,18 +2605,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -2624,7 +2627,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -2638,13 +2641,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -2657,89 +2663,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -2747,7 +2753,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -4004,28 +4010,29 @@ return end local.get $0 + local.tee $2 i32.load16_u - local.set $2 + local.set $0 loop $while-continue|0 block $__inlined_func$~lib/util/string/isSpace (result i32) - local.get $2 + local.get $0 i32.const 128 i32.or i32.const 160 i32.eq - local.get $2 + local.get $0 i32.const 9 i32.sub i32.const 4 i32.le_u i32.or - local.get $2 + local.get $0 i32.const 5760 i32.lt_u br_if $__inlined_func$~lib/util/string/isSpace drop i32.const 1 - local.get $2 + local.get $0 i32.const -8192 i32.add i32.const 10 @@ -4034,31 +4041,31 @@ drop block $break|0 block $case6|0 - local.get $2 + local.get $0 i32.const 5760 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 8232 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 8233 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 8239 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 8287 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 12288 i32.eq br_if $case6|0 - local.get $2 + local.get $0 i32.const 65279 i32.eq br_if $case6|0 @@ -4070,12 +4077,12 @@ i32.const 0 end if - local.get $0 + local.get $2 i32.const 2 i32.add - local.tee $0 + local.tee $2 i32.load16_u - local.set $2 + local.set $0 local.get $3 i32.const 1 i32.sub @@ -4086,10 +4093,10 @@ f64.const 1 local.set $4 i32.const 1 - local.get $2 + local.get $0 i32.const 43 i32.eq - local.get $2 + local.get $0 i32.const 45 i32.eq select @@ -4105,17 +4112,17 @@ end f64.const -1 f64.const 1 - local.get $2 + local.get $0 i32.const 45 i32.eq select local.set $4 - local.get $0 + local.get $2 i32.const 2 i32.add - local.tee $0 + local.tee $2 i32.load16_u - local.set $2 + local.set $0 end local.get $1 if @@ -4135,7 +4142,7 @@ i32.const 16 i32.eq if - local.get $2 + local.get $0 i32.const 48 i32.eq i32.const 0 @@ -4144,7 +4151,7 @@ i32.gt_s select if (result i32) - local.get $0 + local.get $2 i32.load16_u offset=2 i32.const 32 i32.or @@ -4158,10 +4165,10 @@ i32.const 2 i32.sub local.set $3 - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 + local.set $2 end end else @@ -4169,7 +4176,7 @@ i32.const 2 i32.gt_s i32.const 0 - local.get $2 + local.get $0 i32.const 48 i32.eq select @@ -4177,28 +4184,28 @@ block $break|1 block $case2|1 block $case1|1 - local.get $0 + local.get $2 i32.load16_u offset=2 i32.const 32 i32.or - local.tee $2 + local.tee $0 i32.const 98 i32.ne if - local.get $2 + local.get $0 i32.const 111 i32.eq br_if $case1|1 - local.get $2 + local.get $0 i32.const 120 i32.eq br_if $case2|1 br $break|1 end - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 + local.set $2 local.get $3 i32.const 2 i32.sub @@ -4207,10 +4214,10 @@ local.set $1 br $break|1 end - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 + local.set $2 local.get $3 i32.const 2 i32.sub @@ -4219,10 +4226,10 @@ local.set $1 br $break|1 end - local.get $0 + local.get $2 i32.const 4 i32.add - local.set $0 + local.set $2 local.get $3 i32.const 2 i32.sub @@ -4240,40 +4247,40 @@ loop $while-continue|2 block $while-break|2 local.get $3 - local.tee $2 + local.tee $0 i32.const 1 i32.sub local.set $3 - local.get $2 + local.get $0 if local.get $1 - local.get $0 + local.get $2 i32.load16_u - local.tee $2 + local.tee $0 i32.const 48 i32.sub i32.const 10 i32.lt_u if (result i32) - local.get $2 + local.get $0 i32.const 48 i32.sub else - local.get $2 + local.get $0 i32.const 65 i32.sub i32.const 25 i32.le_u if (result i32) - local.get $2 + local.get $0 i32.const 55 i32.sub else - local.get $2 + local.get $0 i32.const 87 i32.sub - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.const 97 i32.sub i32.const 25 @@ -4281,7 +4288,7 @@ select end end - local.tee $2 + local.tee $0 i32.le_u if local.get $5 @@ -4302,14 +4309,14 @@ local.get $1 f64.convert_i32_s f64.mul - local.get $2 + local.get $0 f64.convert_i32_u f64.add local.set $5 - local.get $0 + local.get $2 i32.const 2 i32.add - local.set $0 + local.set $2 br $while-continue|2 end end @@ -4336,7 +4343,7 @@ return end i32.const 4240 - local.set $5 + local.set $3 i32.const 4240 i32.load16_u local.set $0 @@ -4404,10 +4411,10 @@ i32.const 0 end if - local.get $5 + local.get $3 i32.const 2 i32.add - local.tee $5 + local.tee $3 i32.load16_u local.set $0 local.get $1 @@ -4444,10 +4451,10 @@ i32.eq select local.set $2 - local.get $5 + local.get $3 i32.const 2 i32.add - local.tee $5 + local.tee $3 i32.load16_u local.set $0 end @@ -4463,7 +4470,7 @@ block $break|1 block $case2|1 block $case1|1 - local.get $5 + local.get $3 i32.load16_u offset=2 i32.const 32 i32.or @@ -4481,10 +4488,10 @@ br_if $case2|1 br $break|1 end - local.get $5 + local.get $3 i32.const 4 i32.add - local.set $5 + local.set $3 local.get $1 i32.const 2 i32.sub @@ -4493,10 +4500,10 @@ local.set $4 br $break|1 end - local.get $5 + local.get $3 i32.const 4 i32.add - local.set $5 + local.set $3 local.get $1 i32.const 2 i32.sub @@ -4505,10 +4512,10 @@ local.set $4 br $break|1 end - local.get $5 + local.get $3 i32.const 4 i32.add - local.set $5 + local.set $3 local.get $1 i32.const 2 i32.sub @@ -4531,7 +4538,7 @@ local.set $1 local.get $0 if - local.get $5 + local.get $3 i32.load16_u local.tee $0 i32.const 48 @@ -4569,7 +4576,7 @@ local.get $4 i32.ge_u if - local.get $3 + local.get $5 i32.eqz if i32.const 0 @@ -4578,30 +4585,30 @@ br $while-break|2 end local.get $0 - local.get $3 local.get $4 + local.get $5 i32.mul i32.add - local.set $3 - local.get $5 + local.set $5 + local.get $3 i32.const 2 i32.add - local.set $5 + local.set $3 br $while-continue|2 end end end local.get $2 - local.get $3 + local.get $5 i32.mul ) (func $~lib/util/string/strtol (result i64) (local $0 i32) (local $1 i32) - (local $2 i64) - (local $3 i64) - (local $4 i32) - (local $5 i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) i32.const 4284 i32.load i32.const 1 @@ -4613,7 +4620,7 @@ return end i32.const 4288 - local.set $5 + local.set $2 i32.const 4288 i32.load16_u local.set $0 @@ -4681,10 +4688,10 @@ i32.const 0 end if - local.get $5 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u local.set $0 local.get $1 @@ -4695,7 +4702,7 @@ end end i64.const 1 - local.set $2 + local.set $5 i32.const 1 local.get $0 i32.const 43 @@ -4720,11 +4727,11 @@ i32.const 45 i32.eq select - local.set $2 - local.get $5 + local.set $5 + local.get $2 i32.const 2 i32.add - local.tee $5 + local.tee $2 i32.load16_u local.set $0 end @@ -4740,7 +4747,7 @@ block $break|1 block $case2|1 block $case1|1 - local.get $5 + local.get $2 i32.load16_u offset=2 i32.const 32 i32.or @@ -4758,47 +4765,47 @@ br_if $case2|1 br $break|1 end - local.get $5 + local.get $2 i32.const 4 i32.add - local.set $5 + local.set $2 local.get $1 i32.const 2 i32.sub local.set $1 i32.const 2 - local.set $4 + local.set $3 br $break|1 end - local.get $5 + local.get $2 i32.const 4 i32.add - local.set $5 + local.set $2 local.get $1 i32.const 2 i32.sub local.set $1 i32.const 8 - local.set $4 + local.set $3 br $break|1 end - local.get $5 + local.get $2 i32.const 4 i32.add - local.set $5 + local.set $2 local.get $1 i32.const 2 i32.sub local.set $1 i32.const 16 - local.set $4 + local.set $3 end end - local.get $4 + local.get $3 i32.const 10 - local.get $4 + local.get $3 select - local.set $4 + local.set $3 loop $while-continue|2 block $while-break|2 local.get $1 @@ -4808,7 +4815,7 @@ local.set $1 local.get $0 if - local.get $5 + local.get $2 i32.load16_u local.tee $0 i32.const 48 @@ -4843,10 +4850,10 @@ end end local.tee $0 - local.get $4 + local.get $3 i32.ge_u if - local.get $3 + local.get $4 i64.eqz if i64.const 0 @@ -4856,22 +4863,22 @@ end local.get $0 i64.extend_i32_u - local.get $4 - i64.extend_i32_s local.get $3 + i64.extend_i32_s + local.get $4 i64.mul i64.add - local.set $3 - local.get $5 + local.set $4 + local.get $2 i32.const 2 i32.add - local.set $5 + local.set $2 br $while-continue|2 end end end - local.get $2 - local.get $3 + local.get $4 + local.get $5 i64.mul ) (func $~lib/math/ipow32 (param $0 i32) (result i32) @@ -5116,9 +5123,9 @@ (local $8 i64) (local $9 i64) (local $10 i64) - (local $11 f64) + (local $11 i32) (local $12 f64) - (local $13 i32) + (local $13 f64) (local $14 i64) block $folding-inner0 local.get $0 @@ -5134,7 +5141,7 @@ i32.load16_u local.set $5 f64.const 1 - local.set $12 + local.set $13 loop $while-continue|0 local.get $7 if (result i32) @@ -5231,7 +5238,7 @@ i32.eqz br_if $folding-inner0 f64.const -1 - local.set $12 + local.set $13 local.get $0 i32.const 2 i32.add @@ -5279,7 +5286,7 @@ i32.const 0 end if - local.get $12 + local.get $13 f64.const inf f64.mul return @@ -5298,7 +5305,7 @@ select br_if $folding-inner0 local.get $0 - local.set $2 + local.set $3 loop $while-continue|1 local.get $5 i32.const 48 @@ -5329,15 +5336,15 @@ i32.eq if local.get $0 - local.get $2 + local.get $3 i32.eq - local.set $2 + local.set $3 local.get $0 i32.const 2 i32.add local.set $0 i32.const 0 - local.get $2 + local.get $3 local.get $7 i32.const 1 i32.sub @@ -5345,7 +5352,7 @@ select br_if $folding-inner0 i32.const 1 - local.set $13 + local.set $11 loop $for-loop|2 local.get $0 i32.load16_u @@ -5357,10 +5364,10 @@ i32.const 1 i32.sub local.set $7 - local.get $3 + local.get $1 i32.const 1 i32.sub - local.set $3 + local.set $1 local.get $0 i32.const 2 i32.add @@ -5382,8 +5389,8 @@ i32.ge_u i32.const 0 i32.const 0 - local.get $2 local.get $3 + local.get $1 select select br_if $folding-inner0 @@ -5391,38 +5398,38 @@ local.get $5 i32.const 48 i32.sub - local.set $2 + local.set $3 loop $for-loop|3 i32.const 0 - local.get $13 + local.get $11 i32.const 1 local.get $5 i32.const 46 i32.eq select - local.get $2 + local.get $3 i32.const 10 i32.lt_u select i32.eqz if block $for-break3 - local.get $2 + local.get $3 i32.const 10 i32.lt_u if - local.get $1 + local.get $2 i32.const 19 i32.lt_s if (result i64) - local.get $2 + local.get $3 i64.extend_i32_u local.get $6 i64.const 10 i64.mul i64.add else - local.get $2 + local.get $3 i32.eqz i32.eqz i64.extend_i32_u @@ -5430,15 +5437,15 @@ i64.or end local.set $6 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 else - local.get $1 - local.set $3 + local.get $2 + local.set $1 i32.const 1 - local.set $13 + local.set $11 end local.get $7 i32.const 1 @@ -5454,30 +5461,32 @@ local.tee $5 i32.const 48 i32.sub - local.set $2 + local.set $3 br $for-loop|3 end end end block $~lib/util/string/scientific|inlined.0 (result f64) - f64.const 0 - i32.const 1 - local.get $3 local.get $1 - local.get $13 + local.get $2 + local.get $11 select i32.const 19 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 19 i32.gt_s select i32.sub + local.set $11 + f64.const 0 + i32.const 1 block $~lib/util/string/parseExp|inlined.0 (result i32) i32.const 1 - local.set $1 + local.set $2 i32.const 0 local.get $0 + local.tee $1 i32.load16_u i32.const 32 i32.or @@ -5489,44 +5498,44 @@ local.get $7 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop - local.get $0 + local.get $1 i32.const 2 i32.add local.tee $0 i32.load16_u - local.tee $3 + local.tee $1 i32.const 45 i32.eq if (result i32) i32.const 0 - local.get $2 + local.get $3 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop i32.const -1 - local.set $1 + local.set $2 local.get $0 i32.const 2 i32.add local.tee $0 i32.load16_u else - local.get $3 + local.get $1 i32.const 43 i32.eq if (result i32) i32.const 0 - local.get $2 + local.get $3 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop @@ -5536,20 +5545,20 @@ local.tee $0 i32.load16_u else - local.get $3 + local.get $1 end end - local.set $3 + local.set $1 loop $while-continue|4 - local.get $3 + local.get $1 i32.const 48 i32.eq if i32.const 0 - local.get $2 + local.get $3 i32.const 1 i32.sub - local.tee $2 + local.tee $3 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop @@ -5558,23 +5567,23 @@ i32.add local.tee $0 i32.load16_u - local.set $3 + local.set $1 br $while-continue|4 end end - local.get $3 + local.get $1 i32.const 48 i32.sub - local.set $3 + local.set $1 loop $for-loop|5 - local.get $3 + local.get $1 i32.const 10 i32.lt_u i32.const 0 - local.get $2 + local.get $3 select if - local.get $1 + local.get $2 i32.const 3200 i32.mul local.get $4 @@ -5582,16 +5591,16 @@ i32.ge_s br_if $~lib/util/string/parseExp|inlined.0 drop - local.get $3 + local.get $1 local.get $4 i32.const 10 i32.mul i32.add local.set $4 - local.get $2 + local.get $3 i32.const 1 i32.sub - local.set $2 + local.set $3 local.get $0 i32.const 2 i32.add @@ -5599,14 +5608,15 @@ i32.load16_u i32.const 48 i32.sub - local.set $3 + local.set $1 br $for-loop|5 end end - local.get $1 + local.get $2 local.get $4 i32.mul end + local.get $11 i32.add local.tee $0 i32.const -342 @@ -5624,7 +5634,7 @@ drop local.get $6 f64.convert_i64_u - local.tee $11 + local.tee $12 local.get $0 i32.eqz br_if $~lib/util/string/scientific|inlined.0 @@ -5638,7 +5648,7 @@ i32.gt_s select if - local.get $11 + local.get $12 local.get $0 i32.const 3 i32.shl @@ -5646,7 +5656,7 @@ i32.add f64.load f64.mul - local.set $11 + local.set $12 i32.const 22 local.set $0 end @@ -5654,13 +5664,13 @@ i64.const 9007199254740991 i64.le_u if (result i32) - local.get $0 local.get $0 i32.const 31 i32.shr_s - local.tee $5 + local.tee $2 + local.get $0 + local.get $2 i32.add - local.get $5 i32.xor i32.const 22 i32.le_s @@ -5672,7 +5682,7 @@ i32.const 0 i32.gt_s if - local.get $11 + local.get $12 local.get $0 i32.const 3 i32.shl @@ -5682,7 +5692,7 @@ f64.mul br $~lib/util/string/scientific|inlined.0 end - local.get $11 + local.get $12 i32.const 0 local.get $0 i32.sub @@ -5704,13 +5714,13 @@ i64.shl local.set $6 local.get $0 - local.tee $1 + local.tee $2 i64.extend_i32_s local.get $8 i64.sub local.set $8 loop $for-loop|6 - local.get $1 + local.get $2 i32.const -14 i32.le_s if @@ -5720,7 +5730,7 @@ local.get $6 i64.const 6103515625 i64.div_u - local.tee $6 + local.tee $10 i64.clz local.tee $9 i64.const 18 @@ -5731,7 +5741,7 @@ f64.mul f64.nearest i64.trunc_f64_u - local.get $6 + local.get $10 local.get $9 i64.shl i64.add @@ -5740,45 +5750,45 @@ local.get $9 i64.sub local.set $8 - local.get $1 + local.get $2 i32.const 14 i32.add - local.set $1 + local.set $2 br $for-loop|6 end end local.get $6 i32.const 0 - local.get $1 + local.get $2 i32.sub call $~lib/math/ipow32 i64.extend_i32_s - local.tee $10 + local.tee $9 i64.div_u local.tee $14 i64.clz - local.set $9 + local.set $10 local.get $6 - local.get $10 + local.get $9 i64.rem_u f64.convert_i64_u i64.reinterpret_f64 - local.get $9 + local.get $10 i64.const 52 i64.shl i64.add f64.reinterpret_i64 - local.get $10 + local.get $9 f64.convert_i64_u f64.div i64.trunc_f64_u local.get $14 - local.get $9 + local.get $10 i64.shl i64.add f64.convert_i64_u local.get $8 - local.get $9 + local.get $10 i64.sub i32.wrap_i64 call $~lib/math/NativeMath.scalbn @@ -5811,7 +5821,7 @@ i64.and i64.const 1220703125 i64.mul - local.tee $6 + local.tee $8 i64.const 32 i64.shr_u i64.add @@ -5821,23 +5831,23 @@ i32.wrap_i64 i32.clz i64.extend_i32_u - local.tee $8 + local.tee $6 i64.sub local.tee $10 global.get $~lib/util/string/__fixmulShift i64.add global.set $~lib/util/string/__fixmulShift - local.get $6 local.get $8 + local.get $6 i64.shl i64.const 31 i64.shr_u i64.const 1 i64.and local.get $9 - local.get $8 - i64.shl local.get $6 + i64.shl + local.get $8 i64.const 4294967295 i64.and local.get $10 @@ -5907,7 +5917,7 @@ end end end - local.get $12 + local.get $13 f64.copysign return end @@ -6465,8 +6475,7 @@ i64.shr_u i32.wrap_i64 local.tee $2 - local.set $5 - local.get $2 + local.tee $5 i32.const 100000 i32.lt_u if (result i32) @@ -6689,7 +6698,7 @@ i32.shl i32.const 22862 i32.add - local.tee $8 + local.tee $7 i32.load16_u local.set $5 loop $while-continue|3 @@ -6734,7 +6743,7 @@ br $while-continue|3 end end - local.get $8 + local.get $7 local.get $5 i32.store16 local.get $4 @@ -6814,7 +6823,7 @@ i32.shl i32.const 22862 i32.add - local.tee $8 + local.tee $7 i32.load16_u local.set $5 loop $while-continue|6 @@ -6859,7 +6868,7 @@ br $while-continue|6 end end - local.get $8 + local.get $7 local.get $5 i32.store16 local.get $4 @@ -6867,8 +6876,6 @@ (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) local.get $2 i32.eqz if @@ -6969,7 +6976,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $5 + local.tee $2 i32.const 1 i32.shl local.get $0 @@ -6983,28 +6990,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $2 + local.set $4 loop $for-loop|1 local.get $2 - local.get $5 - i32.lt_s + local.get $4 + i32.gt_s if - local.get $2 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|1 end end local.get $1 - local.get $5 + local.get $2 i32.add else local.get $1 @@ -7032,6 +7039,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -7078,12 +7086,9 @@ i32.add end end - local.set $1 - local.get $0 - local.get $1 i32.const 1 i32.add - local.tee $0 + local.tee $1 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -7091,7 +7096,7 @@ local.get $2 select i32.store16 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.add else @@ -7127,7 +7132,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -7135,6 +7140,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -7181,21 +7187,18 @@ i32.add end end - local.set $2 - local.get $0 - local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $2 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select i32.store16 offset=4 - local.get $0 local.get $1 + local.get $2 i32.add i32.const 2 i32.add @@ -7570,7 +7573,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) - block $folding-inner4 + block $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -7587,16 +7590,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i64.const 0 i64.store - local.get $3 + local.get $4 i64.const 0 i64.store offset=8 - local.get $3 + local.get $4 i64.const 0 i64.store offset=16 - block $folding-inner3 + block $folding-inner2 block $folding-inner1 block $folding-inner0 local.get $2 @@ -7632,14 +7635,14 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $3 + local.set $4 i32.const 2147483647 local.get $2 local.get $2 i32.const 0 i32.lt_s select - local.set $7 + local.set $2 local.get $1 i32.const 20 i32.sub @@ -7648,7 +7651,7 @@ i32.shr_u local.tee $8 if - local.get $3 + local.get $4 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -7665,17 +7668,17 @@ br $folding-inner1 end else - local.get $3 + local.get $4 i32.eqz br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $7 - local.get $3 - local.get $7 - i32.lt_s + local.get $4 + local.get $2 + local.get $2 + local.get $4 + i32.gt_s select - local.tee $4 + local.tee $5 i32.const 4 i32.const 0 call $~lib/rt/__newArray @@ -7683,11 +7686,11 @@ i32.store local.get $1 i32.load offset=4 - local.set $3 + local.set $4 loop $for-loop|0 - local.get $4 + local.get $3 local.get $5 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 2 @@ -7696,17 +7699,17 @@ local.tee $2 i32.store offset=8 local.get $2 - local.get $5 + local.get $3 i32.const 1 i32.shl local.get $0 i32.add i32.load16_u i32.store16 - local.get $5 + local.get $3 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add local.get $2 i32.store @@ -7714,10 +7717,10 @@ local.get $2 i32.const 1 call $~lib/rt/itcms/__link - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end @@ -7728,19 +7731,19 @@ i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=12 loop $while-continue|1 local.get $0 local.get $1 - local.get $4 + local.get $5 call $~lib/string/String#indexOf - local.tee $5 + local.tee $7 i32.const -1 i32.xor if + local.get $7 local.get $5 - local.get $4 i32.sub local.tee $6 i32.const 0 @@ -7756,48 +7759,48 @@ local.tee $6 i32.store offset=16 local.get $6 - local.get $4 + local.get $5 i32.const 1 i32.shl local.get $0 i32.add local.get $9 call $~lib/memory/memory.copy - local.get $2 + local.get $3 local.get $6 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=20 - local.get $2 + local.get $3 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end + local.get $2 local.get $10 i32.const 1 i32.add local.tee $10 - local.get $7 i32.eq - br_if $folding-inner4 - local.get $5 + br_if $folding-inner2 + local.get $7 local.get $8 i32.add - local.set $4 + local.set $5 br $while-continue|1 end end - local.get $4 + local.get $5 i32.eqz if - local.get $2 + local.get $3 local.get $0 call $~lib/array/Array<~lib/string/String>#push - br $folding-inner4 + br $folding-inner2 end - local.get $3 local.get $4 + local.get $5 i32.sub local.tee $1 i32.const 0 @@ -7807,31 +7810,36 @@ local.get $1 i32.const 1 i32.shl - local.tee $3 + local.tee $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 - local.get $4 + local.get $2 + local.get $5 i32.const 1 i32.shl local.get $0 i32.add - local.get $3 + local.get $1 call $~lib/memory/memory.copy + local.get $3 local.get $2 - local.get $1 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=20 - local.get $2 + local.get $3 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end - br $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + return end i32.const 0 i32.const 4 @@ -7850,22 +7858,22 @@ i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 return end global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 ) (func $start:std/string (local $0 i32) (local $1 i32) - (local $2 f64) - (local $3 i32) - (local $4 i32) - (local $5 f32) + (local $2 i32) + (local $3 f64) + (local $4 f32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 44 i32.sub @@ -7993,13 +8001,14 @@ local.tee $0 i32.store local.get $0 + local.tee $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u if (result i32) - local.get $0 + local.get $1 i32.load16_u else i32.const -1 @@ -8016,23 +8025,24 @@ end global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $1 + local.tee $0 i32.store - i32.const -1 - local.set $0 - block $__inlined_func$~lib/string/String#codePointAt - local.get $1 + block $__inlined_func$~lib/string/String#codePointAt (result i32) + i32.const -1 + local.get $0 + local.tee $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.const 1 i32.le_u br_if $__inlined_func$~lib/string/String#codePointAt + drop i32.const 1 - local.get $3 + local.get $0 i32.const 2 i32.eq local.get $1 @@ -8043,7 +8053,11 @@ i32.const 55296 i32.ne select - br_if $__inlined_func$~lib/string/String#codePointAt + if + local.get $0 + br $__inlined_func$~lib/string/String#codePointAt + end + local.get $0 local.get $1 i32.load16_u offset=4 local.tee $1 @@ -8052,6 +8066,7 @@ i32.const 56320 i32.ne br_if $__inlined_func$~lib/string/String#codePointAt + drop local.get $1 local.get $0 i32.const 10 @@ -8059,9 +8074,7 @@ i32.add i32.const 56613888 i32.sub - local.set $0 end - local.get $0 i32.const 105 i32.ne if @@ -8115,19 +8128,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 15 call $~lib/string/String#charAt - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $0 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8149,16 +8162,17 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $1 + local.tee $0 i32.store offset=8 + local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $3 + local.tee $0 i32.store offset=12 - local.get $1 - local.get $3 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -8167,12 +8181,11 @@ i32.const 1 i32.sub call $~lib/string/String#charAt - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $0 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8547,34 +8560,40 @@ local.get $1 i32.const 2176 i32.store offset=4 - i32.const 0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - local.get $3 - select - local.tee $4 - i32.const 2172 - i32.load - i32.const 1 - i32.shr_u - local.tee $1 - i32.add - local.get $3 - i32.gt_s - if (result i32) + block $__inlined_func$~lib/string/String#startsWith (result i32) + i32.const 0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - else + i32.shr_u + local.tee $1 + local.get $1 + i32.const 0 + i32.gt_s + select + local.set $2 + i32.const 0 + local.get $1 + local.get $2 + i32.const 2172 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.add + i32.lt_s + br_if $__inlined_func$~lib/string/String#startsWith + drop local.get $0 - local.get $4 + local.get $2 i32.const 2176 local.get $1 call $~lib/util/string/compareImpl + i32.eqz end + i32.eqz if i32.const 0 i32.const 1120 @@ -8601,7 +8620,7 @@ local.tee $1 local.get $1 i32.const 536870910 - i32.gt_u + i32.gt_s select i32.const 2204 i32.load @@ -8609,14 +8628,14 @@ i32.shr_u local.tee $1 i32.sub - local.tee $3 + local.tee $2 i32.const 0 i32.lt_s if (result i32) i32.const 1 else local.get $0 - local.get $3 + local.get $2 i32.const 2208 local.get $1 call $~lib/util/string/compareImpl @@ -8630,14 +8649,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2240 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2240 i32.const 0 call $~lib/string/String#indexOf @@ -8652,14 +8671,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2272 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 2272 call $~lib/string/String#padStart @@ -8667,12 +8686,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $1 + local.tee $0 i32.store offset=4 local.get $0 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8684,14 +8703,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2272 i32.store offset=16 - local.get $1 + local.get $0 i32.const 15 i32.const 2272 call $~lib/string/String#padStart @@ -8699,12 +8718,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $1 + local.tee $0 i32.store offset=4 local.get $0 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8896,14 +8915,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2272 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 2272 call $~lib/string/String#padEnd @@ -8911,12 +8930,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $1 + local.tee $0 i32.store offset=4 local.get $0 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8928,14 +8947,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2272 i32.store offset=16 - local.get $1 + local.get $0 i32.const 15 i32.const 2272 call $~lib/string/String#padEnd @@ -8943,12 +8962,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $1 + local.tee $0 i32.store offset=4 local.get $0 - local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -9219,14 +9238,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1712 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1712 i32.const 0 call $~lib/string/String#indexOf @@ -9239,14 +9258,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2624 i32.const 0 call $~lib/string/String#indexOf @@ -9261,14 +9280,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2656 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2656 i32.const 0 call $~lib/string/String#indexOf @@ -9283,14 +9302,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2624 i32.const 2 call $~lib/string/String#indexOf @@ -9305,14 +9324,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2624 i32.const 3 call $~lib/string/String#indexOf @@ -9327,14 +9346,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2688 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2688 i32.const -1 call $~lib/string/String#indexOf @@ -9389,29 +9408,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1712 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1712 i32.const 2147483647 call $~lib/string/String#lastIndexOf - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.get $0 + local.get $1 i32.ne if i32.const 0 @@ -9422,14 +9441,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2624 i32.const 2147483647 call $~lib/string/String#lastIndexOf @@ -9444,14 +9463,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2656 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2656 i32.const 2147483647 call $~lib/string/String#lastIndexOf @@ -9466,14 +9485,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2720 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2720 i32.const 2147483647 call $~lib/string/String#lastIndexOf @@ -9488,14 +9507,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2624 i32.const 2 call $~lib/string/String#lastIndexOf @@ -9510,14 +9529,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2624 i32.const 3 call $~lib/string/String#lastIndexOf @@ -9532,14 +9551,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2688 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2688 i32.const -1 call $~lib/string/String#lastIndexOf @@ -9554,14 +9573,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2752 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2752 i32.const 0 call $~lib/string/String#lastIndexOf @@ -9576,14 +9595,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/string/str local.tee $1 + global.get $std/string/str + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 2176 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2176 i32.const 0 call $~lib/string/String#lastIndexOf @@ -10335,14 +10354,14 @@ i32.const 3664 i32.const 0 call $~lib/util/string/strtol - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 3712 i32.store i32.const 3712 i32.const 16 call $~lib/util/string/strtol - local.get $2 + local.get $3 f64.ne if i32.const 0 @@ -10486,8 +10505,8 @@ i32.const 1712 i32.const 0 call $~lib/util/string/strtol - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -10503,8 +10522,8 @@ i32.const 4112 i32.const 0 call $~lib/util/string/strtol - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -10520,8 +10539,8 @@ i32.const 4144 i32.const 0 call $~lib/util/string/strtol - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -10537,8 +10556,8 @@ i32.const 2400 i32.const 37 call $~lib/util/string/strtol - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -10554,8 +10573,8 @@ i32.const 4176 i32.const 0 call $~lib/util/string/strtol - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -10571,8 +10590,8 @@ i32.const 4208 i32.const 0 call $~lib/util/string/strtol - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -10589,8 +10608,8 @@ i32.const 0 call $~lib/util/string/strtol f32.demote_f64 - local.tee $5 - local.get $5 + local.tee $4 + local.get $4 f32.eq if i32.const 0 @@ -10606,8 +10625,8 @@ i32.const 4208 i32.const 0 call $~lib/util/string/strtol - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -10935,8 +10954,8 @@ i32.store i32.const 1712 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11761,8 +11780,8 @@ i32.store i32.const 4144 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11777,8 +11796,8 @@ i32.store i32.const 4112 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11793,8 +11812,8 @@ i32.store i32.const 7056 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11809,8 +11828,8 @@ i32.store i32.const 7088 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11825,8 +11844,8 @@ i32.store i32.const 7120 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11841,8 +11860,8 @@ i32.store i32.const 7152 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11857,8 +11876,8 @@ i32.store i32.const 7184 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11873,8 +11892,8 @@ i32.store i32.const 7216 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11889,8 +11908,8 @@ i32.store i32.const 7248 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11905,8 +11924,8 @@ i32.store i32.const 7280 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11921,8 +11940,8 @@ i32.store i32.const 7312 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11937,8 +11956,8 @@ i32.store i32.const 7344 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11953,8 +11972,8 @@ i32.store i32.const 7376 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11969,8 +11988,8 @@ i32.store i32.const 7408 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -11985,8 +12004,8 @@ i32.store i32.const 7440 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -12001,8 +12020,8 @@ i32.store i32.const 7472 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -12392,8 +12411,8 @@ i32.store i32.const 8688 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -12408,8 +12427,8 @@ i32.store i32.const 8720 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -12424,8 +12443,8 @@ i32.store i32.const 8768 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -12901,8 +12920,8 @@ i32.store i32.const 12880 call $~lib/util/string/strtod - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 f64.eq if i32.const 0 @@ -12928,13 +12947,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 1808 i32.store - local.get $0 + local.get $1 i32.const 12944 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1808 i32.const 12944 call $~lib/string/String#concat @@ -13833,7 +13852,7 @@ global.get $~lib/memory/__stack_pointer i32.const 65377 call $~lib/string/String.fromCodePoint - local.tee $3 + local.tee $1 i32.store offset=36 global.get $~lib/memory/__stack_pointer i32.const 55296 @@ -13842,18 +13861,18 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $0 i32.const 56322 call $~lib/string/String.fromCodePoint - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $0 - local.get $1 call $~lib/string/String#concat local.tee $0 i32.store offset=40 - local.get $3 + local.get $1 local.get $0 call $~lib/string/String.__gt i32.eqz @@ -16100,14 +16119,14 @@ i32.const 0 i32.const 2147483647 call $~lib/string/String#split - local.tee $0 + local.tee $1 i32.store offset=40 - local.get $0 + local.get $1 i32.load offset=12 i32.const 1 i32.eq if (result i32) - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.set $0 @@ -16145,9 +16164,9 @@ i32.const 1712 i32.const 2147483647 call $~lib/string/String#split - local.tee $0 + local.tee $1 i32.store offset=40 - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -16158,13 +16177,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 1712 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1712 i32.const 2624 i32.const 2147483647 @@ -16203,13 +16222,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 15424 i32.store - local.get $0 + local.get $1 i32.const 7184 i32.store offset=4 - local.get $0 + local.get $1 i32.const 15424 i32.const 7184 i32.const 2147483647 @@ -16248,13 +16267,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 15424 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 15424 i32.const 2624 i32.const 2147483647 @@ -16271,10 +16290,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1808 i32.store offset=4 local.get $1 @@ -16289,10 +16308,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 12944 i32.store offset=4 local.get $1 @@ -16329,13 +16348,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 15456 i32.store - local.get $0 + local.get $1 i32.const 15504 i32.store offset=4 - local.get $0 + local.get $1 i32.const 15456 i32.const 15504 i32.const 2147483647 @@ -16352,10 +16371,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1808 i32.store offset=4 local.get $1 @@ -16370,10 +16389,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 12944 i32.store offset=4 local.get $1 @@ -16410,13 +16429,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 15536 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 15536 i32.const 2624 i32.const 2147483647 @@ -16433,10 +16452,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1808 i32.store offset=4 local.get $1 @@ -16451,10 +16470,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 12944 i32.store offset=4 local.get $1 @@ -16469,10 +16488,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1712 i32.store offset=4 local.get $1 @@ -16509,13 +16528,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 15568 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 15568 i32.const 2624 i32.const 2147483647 @@ -16532,10 +16551,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1712 i32.store offset=4 local.get $1 @@ -16550,10 +16569,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1808 i32.store offset=4 local.get $1 @@ -16568,10 +16587,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 12944 i32.store offset=4 local.get $1 @@ -16608,13 +16627,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 15600 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 15600 i32.const 2624 i32.const 2147483647 @@ -16631,10 +16650,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1808 i32.store offset=4 local.get $1 @@ -16649,10 +16668,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 12944 i32.store offset=4 local.get $1 @@ -16667,10 +16686,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 14048 i32.store offset=4 local.get $1 @@ -16707,13 +16726,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2336 i32.store - local.get $0 + local.get $1 i32.const 1712 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2336 i32.const 1712 i32.const 2147483647 @@ -16730,10 +16749,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1808 i32.store offset=4 local.get $1 @@ -16748,10 +16767,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 12944 i32.store offset=4 local.get $1 @@ -16788,13 +16807,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2336 i32.store - local.get $0 + local.get $1 i32.const 1712 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2336 i32.const 1712 i32.const 0 @@ -16812,13 +16831,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2336 i32.store - local.get $0 + local.get $1 i32.const 1712 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2336 i32.const 1712 i32.const 1 @@ -16857,13 +16876,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 15424 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 15424 i32.const 2624 i32.const 1 @@ -16902,13 +16921,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2336 i32.store - local.get $0 + local.get $1 i32.const 1712 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2336 i32.const 1712 i32.const 4 @@ -16925,10 +16944,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1808 i32.store offset=4 local.get $1 @@ -16943,10 +16962,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 12944 i32.store offset=4 local.get $1 @@ -16983,13 +17002,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 2336 i32.store - local.get $0 + local.get $1 i32.const 1712 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2336 i32.const 1712 i32.const -1 @@ -17006,10 +17025,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1808 i32.store offset=4 local.get $1 @@ -17024,10 +17043,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 12944 i32.store offset=4 local.get $1 @@ -17064,13 +17083,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 15424 i32.store - local.get $0 + local.get $1 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 15424 i32.const 2624 i32.const -1 @@ -17087,10 +17106,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 1808 i32.store offset=4 local.get $1 @@ -17105,10 +17124,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $1 i32.store - local.get $3 + local.get $2 i32.const 12944 i32.store offset=4 local.get $1 @@ -21753,7 +21772,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21770,40 +21788,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i32.const 0 i32.store + local.get $3 + local.get $2 + local.set $3 local.get $0 i32.const 2 i32.shl local.tee $4 - local.set $6 - local.get $4 + local.tee $5 i32.const 0 call $~lib/rt/itcms/__new - local.set $3 - local.get $2 + local.set $2 + local.get $3 if - local.get $3 local.get $2 - local.get $6 + local.get $3 + local.get $5 call $~lib/memory/memory.copy end - local.get $5 - local.get $3 + local.get $2 i32.store i32.const 16 local.get $1 call $~lib/rt/itcms/__new local.tee $1 - local.get $3 + local.get $2 i32.store local.get $1 - local.get $3 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link local.get $1 - local.get $3 + local.get $2 i32.store offset=4 local.get $1 local.get $4 @@ -22101,7 +22120,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $5 + local.tee $4 local.get $0 i32.const 20 i32.sub @@ -22114,7 +22133,7 @@ local.get $1 i32.const 1 i32.shl - local.tee $4 + local.tee $5 i32.gt_u select i32.eqz @@ -22127,7 +22146,7 @@ return end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 @@ -22136,36 +22155,36 @@ local.get $0 local.get $3 call $~lib/memory/memory.copy - local.get $5 local.get $4 + local.get $5 local.get $3 i32.sub local.tee $0 i32.lt_u if - local.get $5 + local.get $4 local.get $0 i32.const 2 i32.sub - local.get $5 + local.get $4 i32.div_u - local.tee $6 + local.tee $5 i32.mul - local.set $4 + local.set $6 local.get $1 local.get $3 i32.add local.tee $3 local.get $2 + local.get $4 local.get $5 - local.get $6 call $~lib/memory/memory.repeat local.get $3 - local.get $4 + local.get $6 i32.add local.get $2 local.get $0 - local.get $4 + local.get $6 i32.sub call $~lib/memory/memory.copy else @@ -23054,43 +23073,43 @@ (local $9 i32) (local $10 i32) (local $11 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 25884 - i32.lt_s - if - i32.const 42288 - i32.const 42336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store block $folding-inner0 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 25884 + i32.lt_s + if + i32.const 42288 + i32.const 42336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $7 - local.get $0 + local.tee $4 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 - i32.ge_u + local.tee $10 + i32.le_u if local.get $4 - local.get $7 + local.get $10 i32.ge_u if local.get $2 @@ -23109,15 +23128,15 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $3 - local.get $7 + local.set $5 + local.get $10 i32.eqz if - local.get $3 + local.get $5 i32.eqz br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 local.get $4 i32.const 1 i32.add @@ -23128,27 +23147,27 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store - local.get $5 - local.get $2 local.get $3 + local.get $2 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $5 local.set $1 loop $for-loop|0 local.get $4 - local.get $9 + local.get $6 i32.gt_u if local.get $1 i32.const 1 i32.shl - local.get $5 + local.get $3 i32.add - local.get $9 + local.get $6 i32.const 1 i32.shl local.get $0 @@ -23161,21 +23180,21 @@ local.tee $1 i32.const 1 i32.shl - local.get $5 + local.get $3 i32.add local.get $2 - local.get $3 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $3 + local.get $5 i32.add local.set $1 - local.get $9 + local.get $6 i32.const 1 i32.add - local.set $9 + local.set $6 br $for-loop|0 end end @@ -23183,49 +23202,49 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $3 return end - local.get $3 - local.get $7 + local.get $5 + local.get $10 i32.eq if global.get $~lib/memory/__stack_pointer local.get $4 i32.const 1 i32.shl - local.tee $5 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new local.tee $4 i32.store local.get $4 local.get $0 - local.get $5 + local.get $3 call $~lib/memory/memory.copy loop $while-continue|1 local.get $0 local.get $1 - local.get $10 + local.get $8 call $~lib/string/String#indexOf - local.tee $5 + local.tee $6 i32.const -1 i32.xor if - local.get $5 + local.get $6 i32.const 1 i32.shl local.get $4 i32.add local.get $2 - local.get $3 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $5 - local.get $7 + local.get $6 + local.get $10 i32.add - local.set $10 + local.set $8 br $while-continue|1 end end @@ -23237,19 +23256,19 @@ return end local.get $4 - local.set $5 + local.set $3 loop $while-continue|2 local.get $0 local.get $1 - local.get $10 + local.get $8 call $~lib/string/String#indexOf - local.tee $9 + local.tee $11 i32.const -1 i32.xor if - local.get $11 + local.get $7 if (result i32) - local.get $11 + local.get $7 i32.const 20 i32.sub i32.load offset=16 @@ -23266,14 +23285,14 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $7 i32.store offset=4 end - local.get $5 local.get $3 - local.get $8 + local.get $5 local.get $9 - local.get $10 + local.get $11 + local.get $8 i32.sub local.tee $6 i32.add @@ -23281,23 +23300,23 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $5 + local.get $7 + local.get $3 i32.const 1 i32.shl - local.tee $5 + local.tee $3 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $11 + local.tee $7 i32.store offset=4 end - local.get $8 + local.get $9 i32.const 1 i32.shl - local.get $11 + local.get $7 i32.add - local.get $10 + local.get $8 i32.const 1 i32.shl local.get $0 @@ -23307,90 +23326,90 @@ i32.shl call $~lib/memory/memory.copy local.get $6 - local.get $8 + local.get $9 i32.add - local.tee $10 + local.tee $6 i32.const 1 i32.shl - local.get $11 + local.get $7 i32.add local.get $2 - local.get $3 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $5 + local.get $6 + i32.add + local.set $9 local.get $10 + local.get $11 i32.add local.set $8 - local.get $7 - local.get $9 - i32.add - local.set $10 br $while-continue|2 end end - local.get $11 + local.get $7 if - local.get $5 - local.get $8 + local.get $3 + local.get $9 local.get $4 - local.get $10 + local.get $8 i32.sub - local.tee $1 + local.tee $2 i32.add i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $5 + local.get $7 + local.get $3 i32.const 1 i32.shl - local.tee $5 + local.tee $3 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $11 + local.tee $7 i32.store offset=4 end - local.get $1 + local.get $2 if - local.get $8 + local.get $9 i32.const 1 i32.shl - local.get $11 + local.get $7 i32.add - local.get $10 + local.get $8 i32.const 1 i32.shl local.get $0 i32.add - local.get $1 + local.get $2 i32.const 1 i32.shl call $~lib/memory/memory.copy end - local.get $5 - local.get $1 - local.get $8 + local.get $3 + local.get $2 + local.get $9 i32.add - local.tee $0 + local.tee $1 i32.gt_u if global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $0 + local.get $7 + local.get $1 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $11 + local.tee $7 i32.store offset=4 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $11 + local.get $7 return end global.get $~lib/memory/__stack_pointer @@ -23833,13 +23852,13 @@ i32.shr_u local.tee $5 select - local.set $2 + local.set $0 local.get $1 i32.const 10 i32.eq if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -23888,16 +23907,16 @@ end local.get $5 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store + local.get $2 local.get $0 local.get $1 - local.get $2 call $~lib/util/number/utoa32_dec_lut else local.get $1 @@ -23907,7 +23926,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.const 31 - local.get $2 + local.get $0 i32.clz i32.sub i32.const 2 @@ -23920,23 +23939,25 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $2 + local.get $0 i64.extend_i32_u local.set $3 + local.get $1 + local.set $0 loop $while-continue|0 - local.get $1 + local.get $0 i32.const 2 i32.ge_u if - local.get $1 + local.get $0 i32.const 2 i32.sub - local.tee $1 + local.tee $0 i32.const 1 i32.shl - local.get $0 + local.get $2 i32.add local.get $3 i32.wrap_i64 @@ -23955,11 +23976,11 @@ br $while-continue|0 end end - local.get $1 + local.get $0 i32.const 1 i32.and if - local.get $0 + local.get $2 local.get $3 i32.wrap_i64 i32.const 6 @@ -23972,11 +23993,12 @@ else global.get $~lib/memory/__stack_pointer block $__inlined_func$~lib/util/number/ulog_base (result i32) - local.get $2 + local.get $0 i64.extend_i32_u local.tee $6 local.set $3 local.get $1 + local.tee $0 i32.popcnt i32.const 1 i32.eq @@ -23987,7 +24009,7 @@ i32.wrap_i64 i32.sub i32.const 31 - local.get $1 + local.get $0 i32.clz i32.sub i32.div_u @@ -23995,7 +24017,7 @@ i32.add br $__inlined_func$~lib/util/number/ulog_base end - local.get $1 + local.get $0 i64.extend_i32_s local.tee $7 local.set $4 @@ -24043,23 +24065,23 @@ end local.get $5 i32.add - local.tee $2 + local.tee $0 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 - local.get $6 local.get $2 + local.get $6 + local.get $0 local.get $1 call $~lib/util/number/utoa64_any_core end end local.get $5 if - local.get $0 + local.get $2 i32.const 45 i32.store16 end @@ -24067,11 +24089,11 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) (local $4 i64) (local $5 i64) (local $6 i64) @@ -24171,16 +24193,16 @@ i32.add end end - local.tee $0 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 - local.get $1 + local.get $2 local.get $0 + local.get $1 call $~lib/util/number/utoa32_dec_lut else local.get $1 @@ -24201,11 +24223,11 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store local.get $0 i64.extend_i32_u - local.set $2 + local.set $3 local.get $1 local.set $0 loop $while-continue|0 @@ -24219,9 +24241,9 @@ local.tee $0 i32.const 1 i32.shl - local.get $3 - i32.add local.get $2 + i32.add + local.get $3 i32.wrap_i64 i32.const 255 i32.and @@ -24231,10 +24253,10 @@ i32.add i32.load i32.store - local.get $2 + local.get $3 i64.const 8 i64.shr_u - local.set $2 + local.set $3 br $while-continue|0 end end @@ -24242,8 +24264,8 @@ i32.const 1 i32.and if - local.get $3 local.get $2 + local.get $3 i32.wrap_i64 i32.const 6 i32.shl @@ -24258,19 +24280,21 @@ local.get $0 i64.extend_i32_u local.tee $5 - local.set $2 + local.set $3 + local.get $1 + local.set $0 local.get $1 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $2 + local.get $3 i64.clz i32.wrap_i64 i32.sub i32.const 31 - local.get $1 + local.get $0 i32.clz i32.sub i32.div_u @@ -24278,21 +24302,21 @@ i32.add br $__inlined_func$~lib/util/number/ulog_base end - local.get $1 + local.get $0 i64.extend_i32_s local.tee $6 local.set $4 i32.const 1 local.set $0 loop $while-continue|00 - local.get $2 + local.get $3 local.get $4 i64.ge_u if - local.get $2 + local.get $3 local.get $4 i64.div_u - local.set $2 + local.set $3 local.get $4 local.get $4 i64.mul @@ -24305,14 +24329,14 @@ end end loop $while-continue|1 - local.get $2 + local.get $3 i64.const 1 i64.ge_u if - local.get $2 + local.get $3 local.get $6 i64.div_u - local.set $2 + local.set $3 local.get $0 i32.const 1 i32.add @@ -24329,9 +24353,9 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 local.get $5 local.get $0 local.get $1 @@ -24342,13 +24366,13 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 ) (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) (local $2 i64) (local $3 i32) - (local $4 i64) - (local $5 i32) + (local $4 i32) + (local $5 i64) (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24405,7 +24429,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $5 + local.tee $4 local.tee $1 i32.const 100000 i32.lt_u @@ -24460,56 +24484,57 @@ local.tee $3 i32.store local.get $3 - local.get $5 + local.get $4 local.get $1 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer local.get $0 + local.tee $2 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $0 + local.get $2 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $0 + local.get $2 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $0 + local.get $2 i64.const 10000000000 i64.ge_u i32.add else - local.get $0 + local.get $2 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $0 + local.get $2 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $0 + local.get $2 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $0 + local.get $2 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $0 + local.get $2 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $0 + local.get $2 i64.const 1000000000000000000 i64.ge_u i32.add @@ -24523,7 +24548,7 @@ local.tee $3 i32.store local.get $3 - local.get $0 + local.get $2 local.get $1 call $~lib/util/number/utoa64_dec_lut end @@ -24599,6 +24624,8 @@ local.get $0 local.set $2 local.get $1 + local.set $3 + local.get $1 i32.popcnt i32.const 1 i32.eq @@ -24609,7 +24636,7 @@ i32.wrap_i64 i32.sub i32.const 31 - local.get $1 + local.get $3 i32.clz i32.sub i32.div_u @@ -24617,25 +24644,25 @@ i32.add br $__inlined_func$~lib/util/number/ulog_base end - local.get $1 + local.get $3 i64.extend_i32_s local.tee $6 - local.set $4 + local.set $5 i32.const 1 local.set $3 loop $while-continue|00 local.get $2 - local.get $4 + local.get $5 i64.ge_u if local.get $2 - local.get $4 + local.get $5 i64.div_u local.set $2 - local.get $4 - local.get $4 + local.get $5 + local.get $5 i64.mul - local.set $4 + local.set $5 local.get $3 i32.const 1 i32.shl @@ -24663,7 +24690,7 @@ i32.const 1 i32.sub end - local.tee $5 + local.tee $4 i32.const 1 i32.shl i32.const 1 @@ -24672,7 +24699,7 @@ i32.store local.get $3 local.get $0 - local.get $5 + local.get $4 local.get $1 call $~lib/util/number/utoa64_any_core end @@ -24684,11 +24711,11 @@ local.get $3 ) (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) (local $4 i32) - (local $5 i64) - (local $6 i32) + (local $5 i32) + (local $6 i64) (local $7 i64) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24742,7 +24769,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $5 select local.set $0 local.get $1 @@ -24756,7 +24783,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $2 + local.tee $4 local.tee $1 i32.const 100000 i32.lt_u @@ -24803,83 +24830,84 @@ i32.add end end - local.get $4 + local.get $5 i32.add - local.tee $6 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store + local.get $3 + local.get $4 local.get $1 - local.get $2 - local.get $6 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer local.get $0 + local.tee $2 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $0 + local.get $2 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $0 + local.get $2 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $0 + local.get $2 i64.const 10000000000 i64.ge_u i32.add else - local.get $0 + local.get $2 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $0 + local.get $2 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $0 + local.get $2 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $0 + local.get $2 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $0 + local.get $2 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $0 + local.get $2 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.get $4 + local.get $5 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $1 - local.get $0 + local.get $3 local.get $2 + local.get $1 call $~lib/util/number/utoa64_dec_lut end else @@ -24888,7 +24916,7 @@ i32.eq if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 63 local.get $0 i64.clz @@ -24899,25 +24927,25 @@ i32.const 1 i32.add i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store loop $while-continue|0 - local.get $2 + local.get $1 i32.const 2 i32.ge_u if - local.get $2 + local.get $1 i32.const 2 i32.sub - local.tee $2 + local.tee $1 i32.const 1 i32.shl - local.get $1 + local.get $3 i32.add local.get $0 i32.wrap_i64 @@ -24936,11 +24964,11 @@ br $while-continue|0 end end - local.get $2 + local.get $1 i32.const 1 i32.and if - local.get $1 + local.get $3 local.get $0 i32.wrap_i64 i32.const 6 @@ -24954,20 +24982,21 @@ global.get $~lib/memory/__stack_pointer block $__inlined_func$~lib/util/number/ulog_base (result i32) local.get $0 + local.set $2 + local.get $1 local.set $3 local.get $1 - local.tee $2 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $3 + local.get $2 i64.clz i32.wrap_i64 i32.sub i32.const 31 - local.get $2 + local.get $3 i32.clz i32.sub i32.div_u @@ -24975,71 +25004,71 @@ i32.add br $__inlined_func$~lib/util/number/ulog_base end - local.get $2 + local.get $3 i64.extend_i32_s local.tee $7 - local.set $5 + local.set $6 i32.const 1 - local.set $1 + local.set $3 loop $while-continue|00 - local.get $3 - local.get $5 + local.get $2 + local.get $6 i64.ge_u if - local.get $3 - local.get $5 + local.get $2 + local.get $6 i64.div_u - local.set $3 - local.get $5 - local.get $5 + local.set $2 + local.get $6 + local.get $6 i64.mul - local.set $5 - local.get $1 + local.set $6 + local.get $3 i32.const 1 i32.shl - local.set $1 + local.set $3 br $while-continue|00 end end loop $while-continue|1 - local.get $3 + local.get $2 i64.const 1 i64.ge_u if - local.get $3 + local.get $2 local.get $7 i64.div_u - local.set $3 - local.get $1 + local.set $2 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $while-continue|1 end end - local.get $1 + local.get $3 i32.const 1 i32.sub end - local.get $4 + local.get $5 i32.add - local.tee $6 + local.tee $4 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store - local.get $1 + local.get $3 local.get $0 - local.get $6 - local.get $2 + local.get $4 + local.get $1 call $~lib/util/number/utoa64_any_core end end - local.get $4 + local.get $5 if - local.get $1 + local.get $3 i32.const 45 i32.store16 end @@ -25047,7 +25076,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 ) (func $~lib/util/number/dtoa (param $0 f64) (result i32) (local $1 i32) diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index 455b30883c..c681f66411 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -207,6 +207,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -214,10 +215,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 19084 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -231,7 +232,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -256,19 +257,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 2656 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1328 i32.const 1392 @@ -277,7 +280,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 2660 @@ -292,28 +295,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1576,7 +1579,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $5 + local.tee $6 local.get $2 i32.const 1073741820 i32.gt_u @@ -1604,11 +1607,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if memory.size - local.tee $4 + local.tee $5 local.get $2 i32.const 536870910 i32.lt_u @@ -1627,9 +1630,9 @@ local.get $2 end i32.const 4 - local.get $5 + local.get $6 i32.load offset=1568 - local.get $4 + local.get $5 i32.const 16 i32.shl i32.const 4 @@ -1645,7 +1648,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $4 + local.get $5 i32.lt_s select memory.grow @@ -1660,18 +1663,18 @@ unreachable end end + local.get $6 local.get $5 - local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $5 + local.get $6 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $3 + local.tee $4 i32.eqz if i32.const 0 @@ -1682,7 +1685,7 @@ unreachable end end - local.get $3 + local.get $4 i32.load i32.const -4 i32.and @@ -1696,13 +1699,16 @@ call $~lib/builtins/abort unreachable end - local.get $5 - local.get $3 + local.get $6 + local.get $4 call $~lib/rt/tlsf/removeBlock - local.get $3 - i32.load - local.set $4 local.get $2 + local.set $3 + local.get $4 + local.tee $2 + i32.load + local.set $5 + local.get $3 i32.const 4 i32.add i32.const 15 @@ -1715,89 +1721,89 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $5 i32.const -4 i32.and - local.get $2 + local.get $3 i32.sub - local.tee $6 + local.tee $4 i32.const 16 i32.ge_u if - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 2 i32.and - local.get $2 + local.get $3 i32.or i32.store - local.get $2 local.get $3 + local.get $2 i32.const 4 i32.add i32.add - local.tee $2 - local.get $6 + local.tee $3 + local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $5 - local.get $2 + local.get $6 + local.get $3 call $~lib/rt/tlsf/insertBlock else - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const -2 i32.and i32.store - local.get $3 + local.get $2 i32.const 4 i32.add - local.get $3 + local.get $2 i32.load i32.const -4 i32.and i32.add - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.load i32.const -3 i32.and i32.store end - local.get $3 + local.get $2 local.get $1 i32.store offset=12 - local.get $3 + local.get $2 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $2 - local.get $3 - global.get $~lib/rt/itcms/white + local.set $3 + local.get $2 local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $3 i32.store offset=8 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 local.get $1 - local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.load i32.const -4 i32.and @@ -1805,7 +1811,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $3 + local.get $2 i32.const 20 i32.add local.tee $1 @@ -2184,63 +2190,66 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - block $__inlined_func$~lib/map/Map#find + block $__inlined_func$~lib/map/Map#find (result i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 loop $while-continue|0 local.get $0 if + local.get $0 local.get $0 i32.load offset=8 - local.tee $2 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $2 + drop + local.get $1 i32.const -2 i32.and local.set $0 @@ -2248,9 +2257,8 @@ end end i32.const 0 - local.set $0 end - local.get $0 + local.tee $0 i32.eqz if i32.const 1648 @@ -3168,25 +3176,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2700 - i32.lt_s - if - i32.const 19104 - i32.const 19152 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/string/String#concat + block $__inlined_func$~lib/string/String#concat (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2700 + i32.lt_s + if + i32.const 19104 + i32.const 19152 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.const 20 i32.sub @@ -3214,7 +3222,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1824 - local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer @@ -3237,8 +3244,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -3441,15 +3448,16 @@ (local $8 i32) (local $9 i32) (local $10 i32) + (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -3457,22 +3465,22 @@ if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $2 + local.tee $1 i32.eqz if i32.const 1648 @@ -3482,7 +3490,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.load offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3498,52 +3506,52 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $2 + local.get $1 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 3 i32.store offset=4 - local.get $2 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 4 i32.store offset=12 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 global.set $~lib/symbol/stringToId global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3552,100 +3560,102 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $2 + local.get $1 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 3 i32.store offset=4 - local.get $2 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $2 + local.get $1 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 4 i32.store offset=12 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 global.set $~lib/symbol/idToString end global.get $~lib/symbol/nextId - local.tee $6 + local.tee $5 i32.const 1 i32.add global.set $~lib/symbol/nextId - local.get $6 + local.get $5 i32.eqz if unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 global.get $~lib/symbol/stringToId - local.tee $2 + local.tee $6 i32.store - local.get $0 + local.get $5 + local.set $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 + local.get $6 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> - local.tee $9 + local.tee $10 call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $0 + local.tee $1 if + local.get $1 local.get $0 - local.get $6 i32.store offset=4 else - local.get $2 + local.get $6 i32.load offset=16 - local.get $2 + local.get $6 i32.load offset=12 i32.eq if - local.get $2 + local.get $6 i32.load offset=20 - local.get $2 + local.get $6 i32.load offset=12 i32.const 3 i32.mul @@ -3653,10 +3663,10 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + local.get $6 i32.load offset=4 else - local.get $2 + local.get $6 i32.load offset=4 i32.const 1 i32.shl @@ -3671,50 +3681,50 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 local.get $4 i32.const 1 i32.add - local.tee $0 + local.tee $1 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $10 + local.tee $11 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $2 + local.get $6 i32.load offset=8 local.tee $3 - local.get $2 + local.get $6 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $5 - local.get $1 - local.set $0 + local.set $7 + local.get $2 + local.set $1 loop $while-continue|0 local.get $3 - local.get $5 + local.get $7 i32.ne if local.get $3 @@ -3726,34 +3736,34 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.load - local.tee $8 + local.tee $9 i32.store offset=8 - local.get $0 - local.get $8 + local.get $1 + local.get $9 i32.store - local.get $0 + local.get $1 local.get $3 i32.load offset=4 i32.store offset=4 - local.get $0 - local.get $8 + local.get $1 + local.get $9 call $~lib/util/hash/HASH<~lib/string/String> local.get $4 i32.and i32.const 2 i32.shl - local.get $7 + local.get $8 i32.add - local.tee $8 + local.tee $9 i32.load i32.store offset=8 - local.get $8 - local.get $0 + local.get $9 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 12 i32.add - local.set $0 + local.set $1 end local.get $3 i32.const 12 @@ -3762,28 +3772,28 @@ br $while-continue|0 end end - local.get $2 - local.get $7 + local.get $6 + local.get $8 i32.store - local.get $2 - local.get $7 + local.get $6 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $6 local.get $4 i32.store offset=4 + local.get $6 local.get $2 - local.get $1 i32.store offset=8 + local.get $6 local.get $2 - local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 - local.get $10 + local.get $6 + local.get $11 i32.store offset=12 - local.get $2 - local.get $2 + local.get $6 + local.get $6 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -3792,53 +3802,53 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.load offset=8 - local.tee $0 + local.tee $1 i32.store - local.get $2 - local.get $2 + local.get $6 + local.get $6 i32.load offset=16 - local.tee $4 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $4 + local.get $3 i32.const 12 i32.mul - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $1 i32.const 1056 i32.store - local.get $2 + local.get $6 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link + local.get $1 local.get $0 - local.get $6 i32.store offset=4 - local.get $2 - local.get $2 + local.get $6 + local.get $6 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $0 - local.get $2 + local.get $1 + local.get $6 i32.load - local.get $2 + local.get $6 i32.load offset=4 - local.get $9 + local.get $10 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $3 i32.load i32.store offset=8 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -3846,24 +3856,25 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 global.get $~lib/symbol/idToString - local.tee $2 + local.tee $1 i32.store - local.get $0 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $2 + local.get $1 i32.load - local.get $6 + local.get $0 + local.tee $2 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3873,56 +3884,57 @@ i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor - local.tee $8 - local.get $2 + local.tee $9 + local.get $1 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/map/Map#find - loop $while-continue|00 - local.get $0 + loop $while-continue|022 + local.get $3 if - local.get $0 + local.get $3 + local.tee $0 i32.load offset=8 - local.tee $1 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $6 + local.get $2 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $4 i32.const -2 i32.and - local.set $0 - br $while-continue|00 + local.set $3 + br $while-continue|022 end end i32.const 0 @@ -3933,20 +3945,20 @@ local.get $0 i32.const 1056 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link else - local.get $2 + local.get $1 i32.load offset=16 - local.get $2 + local.get $1 i32.load offset=12 i32.eq if - local.get $2 + local.get $1 i32.load offset=20 - local.get $2 + local.get $1 i32.load offset=12 i32.const 3 i32.mul @@ -3954,17 +3966,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $2 + local.get $1 i32.load offset=4 else - local.get $2 + local.get $1 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3972,20 +3984,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $4 + local.get $3 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -3993,45 +4005,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $9 + local.tee $10 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $4 i32.store offset=4 - local.get $2 + local.get $1 i32.load offset=8 - local.tee $3 - local.get $2 + local.tee $6 + local.get $1 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $10 - local.get $1 + local.set $11 + local.get $4 local.set $0 - loop $while-continue|01 - local.get $3 - local.get $10 + loop $while-continue|00 + local.get $6 + local.get $11 i32.ne if - local.get $3 + local.get $6 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $3 + local.get $6 i32.load - local.tee $5 + local.tee $7 i32.store local.get $0 - local.get $3 + local.get $6 i32.load offset=4 i32.store offset=4 local.get $0 - local.get $5 + local.get $7 i32.const -1028477379 i32.mul i32.const 374761397 @@ -4040,35 +4052,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $7 + local.get $7 i32.const 15 i32.shr_u - local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $7 + local.get $7 i32.const 13 i32.shr_u - local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $7 + local.get $7 i32.const 16 i32.shr_u - local.get $5 i32.xor - local.get $4 + local.get $3 i32.and i32.const 2 i32.shl - local.get $7 + local.get $8 i32.add - local.tee $5 + local.tee $7 i32.load i32.store offset=8 - local.get $5 + local.get $7 local.get $0 i32.store local.get $0 @@ -4076,35 +4088,35 @@ i32.add local.set $0 end - local.get $3 + local.get $6 i32.const 12 i32.add - local.set $3 - br $while-continue|01 + local.set $6 + br $while-continue|00 end end - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.store - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 - local.get $4 + local.get $1 + local.get $3 i32.store offset=4 - local.get $2 local.get $1 + local.get $4 i32.store offset=8 - local.get $2 local.get $1 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 - local.get $9 + local.get $1 + local.get $10 i32.store offset=12 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4113,52 +4125,52 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.load offset=8 local.tee $0 i32.store - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=16 - local.tee $4 + local.tee $3 i32.const 1 i32.add i32.store offset=16 - local.get $4 + local.get $3 i32.const 12 i32.mul local.get $0 i32.add local.tee $0 - local.get $6 + local.get $2 i32.store local.get $0 i32.const 1056 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $2 + local.get $1 i32.load - local.get $2 + local.get $1 i32.load offset=4 - local.get $8 + local.get $9 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=8 - local.get $2 + local.get $1 local.get $0 i32.store end @@ -4170,7 +4182,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $5 return end i32.const 19104 @@ -4221,23 +4233,23 @@ i32.const 668265263 i32.mul local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 @@ -4439,23 +4451,23 @@ i32.const 668265263 i32.mul local.tee $1 + local.get $1 i32.const 15 i32.shr_u - local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 + local.get $1 i32.const 13 i32.shr_u - local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 + local.get $1 i32.const 16 i32.shr_u - local.get $1 i32.xor i32.and i32.const 2 @@ -4497,12 +4509,12 @@ end if global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $~lib/symbol/idToString local.tee $1 + global.get $~lib/symbol/idToString + local.tee $2 i32.store offset=4 - local.get $2 local.get $1 + local.get $2 local.get $0 call $~lib/map/Map#get local.tee $2 @@ -4533,6 +4545,7 @@ (func $start:std/symbol (local $0 i32) (local $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4549,13 +4562,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1056 i32.store global.get $~lib/symbol/nextId @@ -4708,14 +4721,14 @@ local.get $0 global.set $std/symbol/key4 global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/symbol/key3 local.tee $1 + global.get $std/symbol/key3 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1056 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -4728,15 +4741,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 global.get $std/symbol/key3 - local.tee $1 + local.tee $0 i32.store local.get $0 + local.get $2 global.get $std/symbol/key4 local.tee $0 i32.store offset=8 - local.get $1 local.get $0 call $~lib/string/String.__eq i32.eqz diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index a17d2b8ca1..44d4624318 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -767,6 +767,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -774,10 +775,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 33012 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -791,7 +792,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -816,19 +817,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 16000 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1360 i32.const 1424 @@ -837,7 +840,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 16004 @@ -852,28 +855,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1893,19 +1896,12 @@ end end ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - (local $1 i32) + (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $3 local.get $0 + local.get $1 i32.const 1073741820 i32.gt_u if @@ -1916,13 +1912,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $0 + local.get $1 i32.const 19 i32.add i32.const -16 @@ -1930,32 +1926,32 @@ i32.const 4 i32.sub end - local.tee $0 - call $~lib/rt/tlsf/searchBlock local.tee $1 + call $~lib/rt/tlsf/searchBlock + local.tee $2 i32.eqz if memory.size local.tee $2 - local.get $0 + local.get $1 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $0 + local.get $1 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $0 + local.get $1 i32.add else - local.get $0 + local.get $1 end i32.const 4 - local.get $3 + local.get $0 i32.load offset=1568 local.get $2 i32.const 16 @@ -1971,16 +1967,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 - local.get $1 + local.tee $3 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1988,7 +1984,7 @@ unreachable end end - local.get $3 + local.get $0 local.get $2 i32.const 16 i32.shl @@ -1996,10 +1992,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $1 + local.tee $2 i32.eqz if i32.const 0 @@ -2010,11 +2006,11 @@ unreachable end end - local.get $1 + local.get $2 i32.load i32.const -4 i32.and - local.get $0 + local.get $1 i32.lt_u if i32.const 0 @@ -2024,13 +2020,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 - local.get $1 + local.get $0 + local.get $2 call $~lib/rt/tlsf/removeBlock - local.get $1 + local.get $2 + local.tee $3 i32.load local.set $2 - local.get $0 + local.get $1 i32.const 4 i32.add i32.const 15 @@ -2046,44 +2043,44 @@ local.get $2 i32.const -4 i32.and - local.get $0 + local.get $1 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $1 + local.get $3 local.get $2 i32.const 2 i32.and - local.get $0 + local.get $1 i32.or i32.store - local.get $0 local.get $1 + local.get $3 i32.const 4 i32.add i32.add - local.tee $0 + local.tee $1 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $0 + local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $1 + local.get $3 local.get $2 i32.const -2 i32.and i32.store - local.get $1 + local.get $3 i32.const 4 i32.add - local.get $1 + local.get $3 i32.load i32.const -4 i32.and @@ -2095,9 +2092,7 @@ i32.and i32.store end - local.get $1 - i32.const 4 - i32.add + local.get $3 ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2338,13 +2333,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 - local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl + local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2352,9 +2347,15 @@ local.get $0 i32.const 16 i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub + local.set $2 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $2 + call $~lib/rt/tlsf/allocateBlock local.tee $2 local.get $1 i32.store offset=12 @@ -2366,8 +2367,8 @@ i32.load offset=8 local.set $1 local.get $2 - global.get $~lib/rt/itcms/white local.get $3 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -3623,12 +3624,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $12 + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $12 + local.get $5 i32.add local.set $11 i32.const 0 @@ -3655,7 +3666,17 @@ local.get $1 i32.const 3 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $10 local.get $0 i32.const 0 @@ -3665,7 +3686,7 @@ local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -3680,26 +3701,26 @@ i32.const 31 i32.lt_s select - local.tee $5 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 + local.get $6 local.get $13 i32.lt_s if local.get $0 - local.get $5 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $5 local.get $13 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $6 + local.get $5 i32.sub i32.const 1 i32.add @@ -3708,9 +3729,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $5 local.get $13 - local.get $6 + local.get $5 i32.const 31 i32.add local.tee $1 @@ -3724,7 +3745,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $5 i32.add i64.extend_i32_u i64.const 30 @@ -3735,7 +3756,7 @@ i64.extend_i32_u local.tee $9 i64.div_u - local.get $6 + local.get $5 local.get $7 i32.add i32.const 1 @@ -3777,7 +3798,7 @@ i32.load i32.const 1 i32.add - local.get $5 + local.get $6 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns @@ -3807,12 +3828,12 @@ local.get $4 local.get $11 i32.add - local.get $5 - i32.store local.get $6 + i32.store + local.get $5 local.set $3 local.get $7 - local.set $5 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -6429,30 +6450,31 @@ ) (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i64) + (local $6 i32) + (local $7 i32) (local $8 i32) + (local $9 i64) local.get $0 i32.load offset=4 - local.set $5 + local.set $4 local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.gt_u if - local.get $2 + local.get $3 i32.const 1 i32.shr_u local.set $8 - local.get $2 + local.get $3 i32.const 8 i32.sub - local.set $3 + local.set $5 loop $while-continue|0 local.get $8 local.get $1 @@ -6461,47 +6483,60 @@ i32.gt_u if local.get $1 - local.get $5 + local.get $4 i32.add - local.tee $4 - i64.load local.tee $6 + i64.load + local.tee $2 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $6 + local.get $2 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.set $6 + local.tee $2 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $2 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr + local.set $9 + local.get $6 local.get $4 - local.get $3 local.get $5 i32.add local.get $1 i32.sub - local.tee $4 - i64.load local.tee $7 + i64.load + local.tee $2 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $7 + local.get $2 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $7 + local.tee $2 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $7 + local.get $2 i64.const 281470681808895 i64.and i64.const 16 @@ -6510,20 +6545,8 @@ i64.const 32 i64.rotr i64.store - local.get $4 - local.get $6 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $6 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr + local.get $7 + local.get $9 i64.store local.get $1 i32.const 8 @@ -6532,32 +6555,32 @@ br $while-continue|0 end end - local.get $2 + local.get $3 i32.const 1 i32.sub - local.set $2 + local.set $7 loop $while-continue|1 local.get $1 local.get $8 i32.lt_u if local.get $1 - local.get $5 + local.get $4 i32.add local.tee $3 i32.load8_u - local.set $4 + local.set $5 local.get $3 - local.get $2 + local.get $7 local.get $1 i32.sub - local.get $5 + local.get $4 i32.add - local.tee $3 + local.tee $6 i32.load8_u i32.store8 - local.get $3 - local.get $4 + local.get $6 + local.get $5 i32.store8 local.get $1 i32.const 1 @@ -6736,9 +6759,9 @@ end end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 local.get $2 i32.load offset=8 @@ -6753,28 +6776,28 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -6784,9 +6807,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 local.get $2 i32.load offset=8 @@ -6800,30 +6823,30 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|02 - local.get $0 + loop $while-continue|03 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|02 + local.set $1 + br $while-continue|03 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -6835,10 +6858,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 local.get $2 i32.load offset=8 local.tee $3 @@ -6847,34 +6870,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|05 - local.get $0 + loop $while-continue|07 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 255 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|05 + local.set $1 + br $while-continue|07 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -6886,10 +6909,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.09 local.get $2 i32.load offset=8 local.tee $3 @@ -6898,34 +6921,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.09 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|08 - local.get $0 + loop $while-continue|011 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.09 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|08 + local.set $1 + br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -6937,10 +6960,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 local.get $2 i32.load offset=8 local.tee $3 @@ -6949,34 +6972,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $0 + loop $while-continue|015 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + local.set $1 + br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -6988,10 +7011,10 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 local.get $2 i32.load offset=8 local.tee $3 @@ -7000,34 +7023,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|014 - local.get $0 + loop $while-continue|019 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $1 + br $while-continue|019 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -7039,10 +7062,10 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.021 local.get $2 i32.load offset=8 local.tee $3 @@ -7051,34 +7074,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.021 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|017 - local.get $0 + loop $while-continue|023 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.021 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -7090,10 +7113,10 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.025 local.get $2 i32.load offset=8 local.tee $3 @@ -7102,34 +7125,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.025 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|020 - local.get $0 + loop $while-continue|027 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.025 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|020 + local.set $1 + br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -7142,17 +7165,17 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 local.get $2 i32.load offset=8 - local.tee $3 + local.tee $0 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $0 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 + local.get $0 i32.const 100 i32.sub local.tee $1 @@ -7161,28 +7184,27 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|023 + local.set $3 + loop $while-continue|031 local.get $0 - local.get $3 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + local.set $1 + br $while-continue|031 end end i32.const -1 @@ -7202,24 +7224,26 @@ i32.const 1 global.set $~argumentsLength local.get $2 + local.tee $1 i32.load offset=8 - local.tee $4 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $4 + local.get $1 + i32.load offset=8 + local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -7227,22 +7251,22 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -7250,9 +7274,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -7263,25 +7287,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -7289,23 +7313,23 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -7313,9 +7337,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -7328,25 +7352,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -7354,23 +7378,23 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -7378,9 +7402,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -7393,25 +7417,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -7419,23 +7443,23 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -7443,9 +7467,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 3 i32.ne if @@ -7457,49 +7481,50 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $2 + local.get $1 + local.tee $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $1 i32.const 4 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|024 - local.get $0 + local.set $3 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|024 + local.set $1 + br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -7511,49 +7536,49 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 + local.set $3 + loop $while-continue|037 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -7565,49 +7590,49 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.039 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.039 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $3 + loop $while-continue|041 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.039 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $1 + br $while-continue|041 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -7619,49 +7644,49 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.043 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.043 + local.get $1 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $1 i32.const 100 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $3 + loop $while-continue|045 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.043 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -7674,37 +7699,36 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 local.get $0 i32.const 10 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $0 + loop $while-continue|049 + local.get $1 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 - local.get $4 + local.get $1 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $1 + br $while-continue|049 end end i32.const -1 @@ -7723,37 +7747,36 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.051 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.051 local.get $0 i32.const 11 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $0 + loop $while-continue|053 + local.get $1 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 - local.get $4 + local.get $1 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.051 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $1 + br $while-continue|053 end end i32.const -1 @@ -7778,10 +7801,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.055 local.get $2 i32.load offset=8 local.tee $3 @@ -7790,34 +7813,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.055 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|042 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.055 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $1 + br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -7829,10 +7852,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 local.get $2 i32.load offset=8 local.tee $3 @@ -7841,34 +7864,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|045 - local.get $0 + loop $while-continue|061 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $1 + br $while-continue|061 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -7878,10 +7901,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.063 local.get $2 i32.load offset=8 local.tee $3 @@ -7890,34 +7913,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.063 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|048 - local.get $0 + loop $while-continue|065 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.063 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $1 + br $while-continue|065 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -7929,10 +7952,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.067 local.get $2 i32.load offset=8 local.tee $3 @@ -7941,34 +7964,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.067 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|051 - local.get $0 + loop $while-continue|069 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.067 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $1 + br $while-continue|069 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -7980,10 +8003,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.071 local.get $2 i32.load offset=8 local.tee $3 @@ -7992,34 +8015,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.071 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|054 - local.get $0 + loop $while-continue|073 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.071 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $1 + br $while-continue|073 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -8031,10 +8054,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.075 local.get $2 i32.load offset=8 local.tee $3 @@ -8043,34 +8066,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.075 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $0 + loop $while-continue|077 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.075 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $1 + br $while-continue|077 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -8082,10 +8105,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.079 local.get $2 i32.load offset=8 local.tee $3 @@ -8094,34 +8117,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.079 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|060 - local.get $0 + loop $while-continue|081 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.079 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $1 + br $while-continue|081 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -8133,46 +8156,46 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.083 local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.083 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|063 - local.get $0 - local.get $4 + loop $while-continue|085 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.083 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $1 + br $while-continue|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -8247,9 +8270,9 @@ end end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $2 i32.load offset=8 @@ -8264,28 +8287,28 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -8295,9 +8318,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 local.get $2 i32.load offset=8 @@ -8311,30 +8334,30 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|02 - local.get $0 + loop $while-continue|03 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|02 + local.set $1 + br $while-continue|03 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -8346,10 +8369,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $2 i32.load offset=8 local.tee $3 @@ -8358,34 +8381,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|05 - local.get $0 + loop $while-continue|07 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 255 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|05 + local.set $1 + br $while-continue|07 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -8397,10 +8420,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 local.get $2 i32.load offset=8 local.tee $3 @@ -8409,34 +8432,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|08 - local.get $0 + loop $while-continue|011 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|08 + local.set $1 + br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -8448,10 +8471,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $2 i32.load offset=8 local.tee $3 @@ -8460,34 +8483,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $0 + loop $while-continue|015 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + local.set $1 + br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -8499,10 +8522,10 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 local.get $2 i32.load offset=8 local.tee $3 @@ -8511,34 +8534,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|014 - local.get $0 + loop $while-continue|019 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $1 + br $while-continue|019 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -8550,10 +8573,10 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 local.get $2 i32.load offset=8 local.tee $3 @@ -8562,34 +8585,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|017 - local.get $0 + loop $while-continue|023 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -8601,10 +8624,10 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 local.get $2 i32.load offset=8 local.tee $3 @@ -8613,34 +8636,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|020 - local.get $0 + loop $while-continue|027 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|020 + local.set $1 + br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -8653,17 +8676,17 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 local.get $2 i32.load offset=8 - local.tee $3 + local.tee $0 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $0 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $0 i32.const 100 i32.sub local.tee $1 @@ -8672,28 +8695,27 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|023 + local.set $3 + loop $while-continue|031 local.get $0 - local.get $3 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + local.set $1 + br $while-continue|031 end end i32.const -1 @@ -8713,24 +8735,26 @@ i32.const 1 global.set $~argumentsLength local.get $2 + local.tee $1 i32.load offset=8 - local.tee $4 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $4 + local.get $1 + i32.load offset=8 + local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -8738,22 +8762,22 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -8761,9 +8785,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -8774,25 +8798,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -8800,23 +8824,23 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -8824,9 +8848,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -8839,25 +8863,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -8865,23 +8889,23 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -8889,9 +8913,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -8904,25 +8928,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -8930,23 +8954,23 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -8954,9 +8978,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 3 i32.ne if @@ -8968,49 +8992,50 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $2 + local.get $1 + local.tee $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $1 i32.const 4 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|024 - local.get $0 + local.set $3 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|024 + local.set $1 + br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -9022,49 +9047,49 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 + local.set $3 + loop $while-continue|037 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -9076,49 +9101,49 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $3 + loop $while-continue|041 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $1 + br $while-continue|041 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -9130,49 +9155,49 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 + local.get $1 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $1 i32.const 100 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $3 + loop $while-continue|045 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -9185,37 +9210,36 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $0 i32.const 10 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $0 + loop $while-continue|049 + local.get $1 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 - local.get $4 + local.get $1 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $1 + br $while-continue|049 end end i32.const -1 @@ -9234,37 +9258,36 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 local.get $0 i32.const 11 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $0 + loop $while-continue|053 + local.get $1 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 - local.get $4 + local.get $1 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $1 + br $while-continue|053 end end i32.const -1 @@ -9288,10 +9311,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 local.get $2 i32.load offset=8 local.tee $3 @@ -9300,34 +9323,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|042 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $1 + br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -9339,10 +9362,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $2 i32.load offset=8 local.tee $3 @@ -9351,34 +9374,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|045 - local.get $0 + loop $while-continue|061 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $1 + br $while-continue|061 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -9388,10 +9411,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 local.get $2 i32.load offset=8 local.tee $3 @@ -9400,34 +9423,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|048 - local.get $0 + loop $while-continue|065 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $1 + br $while-continue|065 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -9439,10 +9462,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 local.get $2 i32.load offset=8 local.tee $3 @@ -9451,34 +9474,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|051 - local.get $0 + loop $while-continue|069 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $1 + br $while-continue|069 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -9490,10 +9513,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 local.get $2 i32.load offset=8 local.tee $3 @@ -9502,34 +9525,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|054 - local.get $0 + loop $while-continue|073 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $1 + br $while-continue|073 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -9541,10 +9564,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 local.get $2 i32.load offset=8 local.tee $3 @@ -9553,34 +9576,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $0 + loop $while-continue|077 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $1 + br $while-continue|077 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -9592,10 +9615,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 local.get $2 i32.load offset=8 local.tee $3 @@ -9604,34 +9627,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|060 - local.get $0 + loop $while-continue|081 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $1 + br $while-continue|081 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -9643,46 +9666,46 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|063 - local.get $0 - local.get $4 + loop $while-continue|085 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $1 + br $while-continue|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -9757,9 +9780,9 @@ end end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $2 i32.load offset=8 @@ -9774,28 +9797,28 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -9805,9 +9828,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 local.get $2 i32.load offset=8 @@ -9821,30 +9844,30 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|02 - local.get $0 + loop $while-continue|03 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|02 + local.set $1 + br $while-continue|03 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -9856,10 +9879,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $2 i32.load offset=8 local.tee $3 @@ -9868,34 +9891,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|05 - local.get $0 + loop $while-continue|07 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 255 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|05 + local.set $1 + br $while-continue|07 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -9907,10 +9930,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 local.get $2 i32.load offset=8 local.tee $3 @@ -9919,34 +9942,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|08 - local.get $0 + loop $while-continue|011 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|08 + local.set $1 + br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -9958,10 +9981,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $2 i32.load offset=8 local.tee $3 @@ -9970,34 +9993,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $0 + loop $while-continue|015 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + local.set $1 + br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -10009,10 +10032,10 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 local.get $2 i32.load offset=8 local.tee $3 @@ -10021,34 +10044,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|014 - local.get $0 + loop $while-continue|019 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $1 + br $while-continue|019 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -10060,10 +10083,10 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 local.get $2 i32.load offset=8 local.tee $3 @@ -10072,34 +10095,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|017 - local.get $0 + loop $while-continue|023 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -10111,10 +10134,10 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 local.get $2 i32.load offset=8 local.tee $3 @@ -10123,34 +10146,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|020 - local.get $0 + loop $while-continue|027 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|020 + local.set $1 + br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -10163,17 +10186,17 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 local.get $2 i32.load offset=8 - local.tee $3 + local.tee $0 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $0 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $0 i32.const 100 i32.sub local.tee $1 @@ -10182,28 +10205,27 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|023 + local.set $3 + loop $while-continue|031 local.get $0 - local.get $3 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.get $3 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + local.set $1 + br $while-continue|031 end end i32.const -1 @@ -10223,24 +10245,26 @@ i32.const 1 global.set $~argumentsLength local.get $2 + local.tee $1 i32.load offset=8 - local.tee $4 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $4 + local.get $1 + i32.load offset=8 + local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -10248,22 +10272,22 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -10271,9 +10295,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -10284,25 +10308,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -10310,23 +10334,23 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -10334,9 +10358,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -10349,25 +10373,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -10375,23 +10399,23 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -10399,9 +10423,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -10414,25 +10438,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -10440,23 +10464,23 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if + local.get $3 local.get $0 - local.tee $1 - local.get $4 + local.tee $2 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -10464,9 +10488,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 3 i32.ne if @@ -10478,49 +10502,50 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $2 + local.get $1 + local.tee $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $1 i32.const 4 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|024 - local.get $0 + local.set $3 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|024 + local.set $1 + br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -10532,49 +10557,49 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 + local.set $3 + loop $while-continue|037 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -10586,49 +10611,49 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $3 + loop $while-continue|041 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $1 + br $while-continue|041 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -10640,49 +10665,49 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 + local.get $1 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $1 i32.const 100 i32.le_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $3 + loop $while-continue|045 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - local.get $4 + local.get $1 + local.tee $0 + local.get $3 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -10695,37 +10720,36 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $0 i32.const 10 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $0 + loop $while-continue|049 + local.get $1 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 - local.get $4 + local.get $1 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $1 + br $while-continue|049 end end i32.const -1 @@ -10744,37 +10768,36 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 local.get $0 i32.const 11 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $0 + loop $while-continue|053 + local.get $1 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 - local.get $4 + local.get $1 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $1 + br $while-continue|053 end end i32.const -1 @@ -10798,10 +10821,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 local.get $2 i32.load offset=8 local.tee $3 @@ -10810,34 +10833,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|042 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $1 + br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -10849,10 +10872,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $2 i32.load offset=8 local.tee $3 @@ -10861,34 +10884,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|045 - local.get $0 + loop $while-continue|061 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $1 + br $while-continue|061 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -10898,10 +10921,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 local.get $2 i32.load offset=8 local.tee $3 @@ -10910,34 +10933,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|048 - local.get $0 + loop $while-continue|065 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $1 + br $while-continue|065 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -10949,10 +10972,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 local.get $2 i32.load offset=8 local.tee $3 @@ -10961,34 +10984,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|051 - local.get $0 + loop $while-continue|069 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $1 + br $while-continue|069 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11000,10 +11023,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 local.get $2 i32.load offset=8 local.tee $3 @@ -11012,34 +11035,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|054 - local.get $0 + loop $while-continue|073 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $1 + br $while-continue|073 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11051,10 +11074,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 local.get $2 i32.load offset=8 local.tee $3 @@ -11063,34 +11086,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $0 + loop $while-continue|077 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $1 + br $while-continue|077 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11102,10 +11125,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 local.get $2 i32.load offset=8 local.tee $3 @@ -11114,34 +11137,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|060 - local.get $0 + loop $while-continue|081 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $1 + br $while-continue|081 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -11153,46 +11176,46 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 local.get $2 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|063 - local.get $0 - local.get $4 + loop $while-continue|085 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $1 + br $while-continue|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11208,6 +11231,88 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $2 + end + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $1 + local.set $3 + local.get $2 + local.set $1 + i32.const -1 + local.get $0 + local.tee $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + drop + local.get $0 + local.get $1 + i32.add + local.get $0 + i32.const 1 + i32.sub + local.get $1 + local.get $0 + local.get $1 + i32.le_s + select + local.get $1 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|0 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + local.get $1 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + local.get $3 + i32.const 65535 + i32.and + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|0 + end + end + i32.const -1 + end + ) (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> (local $0 i32) (local $1 i32) @@ -11230,84 +11335,84 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 7728 i32.store - local.get $1 + local.get $2 i32.const 7740 i32.load - local.tee $1 + local.tee $3 call $~lib/typedarray/Int16Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 + local.get $3 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.const 7728 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|0 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -11317,49 +11422,49 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|02 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|02 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11371,49 +11476,49 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|05 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 65535 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11425,49 +11530,49 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|08 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|08 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -11479,50 +11584,50 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|011 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -11534,50 +11639,50 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 3 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|014 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|014 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -11589,50 +11694,50 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 4 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|017 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|017 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11644,50 +11749,50 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 10 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|020 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -11699,20 +11804,20 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub local.tee $1 @@ -11721,36 +11826,36 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|023 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -11764,61 +11869,8 @@ i32.const 1 global.set $~argumentsLength local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|00 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.load16_u - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|00 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs if i32.const 0 i32.const 1568 @@ -11830,62 +11882,8 @@ i32.const 1 global.set $~argumentsLength local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|06 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.load16_u - i32.const 11 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|06 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + i32.const 11 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -11899,62 +11897,8 @@ i32.const 1 global.set $~argumentsLength local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $4 - local.set $0 i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|012 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.load16_u - i32.const 65535 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|012 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -11968,62 +11912,8 @@ i32.const 1 global.set $~argumentsLength local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|018 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.load16_u - i32.const 3 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|018 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + i32.const 3 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs i32.const 3 i32.ne if @@ -12036,45 +11926,44 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $3 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $3 i32.const 4 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|024 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $while-continue|024 end end @@ -12094,46 +11983,45 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 + local.get $3 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $3 i32.const 3 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 + local.set $3 + loop $while-continue|03 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|03 end end i32.const -1 @@ -12152,46 +12040,45 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 + local.get $3 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $3 i32.const 2 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $3 + loop $while-continue|07 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $1 + br $while-continue|07 end end i32.const -1 @@ -12210,46 +12097,45 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.09 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.09 + local.get $3 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $3 i32.const 100 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $3 + loop $while-continue|01125 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.09 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|01125 end end i32.const -1 @@ -12268,41 +12154,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 + local.get $3 i32.const 10 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $3 + loop $while-continue|015 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $1 + br $while-continue|015 end end i32.const -1 @@ -12321,41 +12206,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 + local.get $3 i32.const 11 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $3 + loop $while-continue|019 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $1 + br $while-continue|019 end end i32.const -1 @@ -12376,52 +12260,52 @@ local.get $2 i32.const 9 call $~lib/typedarray/Int16Array#subarray - local.tee $2 + local.tee $1 i32.store offset=8 i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.027 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.027 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|042 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|028 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.027 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $2 + br $while-continue|028 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12433,49 +12317,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.030 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.030 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|045 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|031 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.030 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $2 + br $while-continue|031 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -12485,49 +12369,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.033 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.033 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|048 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|034 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.033 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $2 + br $while-continue|034 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -12539,49 +12423,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.036 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.036 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|051 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|037 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.036 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $2 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12593,49 +12477,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.039 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.039 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|054 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|040 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.039 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $2 + br $while-continue|040 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12647,49 +12531,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.042 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.042 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|057 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|043 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.042 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $2 + br $while-continue|043 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12701,50 +12585,50 @@ unreachable end i32.const 1 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.045 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.045 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|060 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|046 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.045 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $2 + br $while-continue|046 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -12756,11 +12640,11 @@ unreachable end i32.const 2 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.048 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u @@ -12770,36 +12654,37 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.048 + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|063 - local.get $0 + local.set $3 + loop $while-continue|049 + local.get $2 local.get $4 i32.lt_s if - local.get $0 + local.get $2 local.tee $1 + local.tee $0 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.048 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $2 + br $while-continue|049 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12837,85 +12722,85 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 7728 i32.store - local.get $1 + local.get $2 i32.const 7740 i32.load - local.tee $1 + local.tee $3 call $~lib/typedarray/Uint16Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 - local.get $0 local.get $1 + local.get $3 i32.lt_s if local.get $2 - local.get $0 + local.get $1 i32.const 7728 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|0 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -12925,49 +12810,49 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|02 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|02 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -12979,49 +12864,49 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|05 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 65535 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|05 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -13033,49 +12918,49 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|08 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|08 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -13087,50 +12972,50 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|011 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -13142,50 +13027,50 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 3 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|014 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|014 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -13197,50 +13082,50 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 4 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|017 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|017 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -13252,50 +13137,50 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 10 i32.le_u i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|020 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|020 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -13307,20 +13192,20 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $4 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $3 + local.get $4 i32.const 100 i32.sub local.tee $1 @@ -13329,36 +13214,36 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|023 - local.get $0 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -13372,376 +13257,159 @@ i32.const 1 global.set $~argumentsLength local.get $2 - i32.load offset=8 + i32.const 0 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 - i32.shr_u - local.tee $4 - local.set $0 + global.set $~argumentsLength + local.get $2 + i32.const 11 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const -1 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.const 3 + call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $4 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 - local.get $4 - i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s + i32.const 4 + local.get $3 + i32.const 4 + i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|00 - local.get $0 + local.set $3 + loop $while-continue|024 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u - i32.eqz + i32.const 3 + i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|00 + local.set $1 + br $while-continue|024 end end i32.const -1 local.set $1 end local.get $1 + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 613 + i32.const 617 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $4 - local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 - local.get $4 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 - local.get $0 - local.get $4 - i32.add - local.get $4 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 + local.get $3 i32.const 1 i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s + i32.const 3 + local.get $3 + i32.const 3 + i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|06 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.load16_u - i32.const 11 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|06 - end - end - i32.const -1 - local.set $1 - end - local.get $1 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|012 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.load16_u - i32.const 65535 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|012 - end - end - i32.const -1 - local.set $1 - end - local.get $1 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|018 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.load16_u - i32.const 3 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|018 - end - end - i32.const -1 - local.set $1 - end - local.get $1 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $0 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $0 - i32.const 1 - i32.sub - i32.const 4 - local.get $0 - i32.const 4 - i32.le_u - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|024 - local.get $0 + local.set $3 + loop $while-continue|03 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 - i32.const 1 - i32.shl - local.get $4 - i32.add - i32.load16_u - i32.const 3 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 local.get $1 i32.const 1 - i32.sub - local.set $0 - br $while-continue|024 - end - end - i32.const -1 - local.set $1 - end - local.get $1 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 617 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 - local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $0 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 - local.get $0 - i32.const 1 - i32.sub - i32.const 3 - local.get $0 - i32.const 3 - i32.le_u - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|03 end end i32.const -1 @@ -13760,46 +13428,45 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 + local.get $3 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $3 i32.const 2 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $3 + loop $while-continue|07 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $1 + br $while-continue|07 end end i32.const -1 @@ -13818,46 +13485,45 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.09 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.09 + local.get $3 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $3 i32.const 100 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $3 + loop $while-continue|01125 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.09 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|01125 end end i32.const -1 @@ -13876,41 +13542,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 + local.get $3 i32.const 10 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $3 + loop $while-continue|015 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $1 + br $while-continue|015 end end i32.const -1 @@ -13929,41 +13594,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 + local.get $3 i32.const 11 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $3 + loop $while-continue|019 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $1 + br $while-continue|019 end end i32.const -1 @@ -13984,52 +13648,52 @@ local.get $2 i32.const 9 call $~lib/typedarray/Uint16Array#subarray - local.tee $2 + local.tee $1 i32.store offset=8 i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.027 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.027 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|042 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|028 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.027 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $2 + br $while-continue|028 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -14041,49 +13705,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.030 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.030 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|045 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|031 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.030 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $2 + br $while-continue|031 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -14093,49 +13757,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.033 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.033 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|048 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|034 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.033 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $2 + br $while-continue|034 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -14147,49 +13811,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.036 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.036 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|051 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|037 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.036 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $2 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -14201,49 +13865,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.039 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.039 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|054 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|040 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.039 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $2 + br $while-continue|040 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -14255,49 +13919,49 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.042 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.042 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|057 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|043 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.042 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $2 + br $while-continue|043 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -14309,50 +13973,50 @@ unreachable end i32.const 1 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.045 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.045 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|060 - local.get $0 - local.get $3 + local.set $3 + loop $while-continue|046 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.045 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $2 + br $while-continue|046 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -14364,11 +14028,11 @@ unreachable end i32.const 2 - local.set $0 + local.set $2 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 - local.get $2 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.048 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u @@ -14378,36 +14042,37 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.048 + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|063 - local.get $0 + local.set $3 + loop $while-continue|049 + local.get $2 local.get $4 i32.lt_s if - local.get $0 + local.get $2 local.tee $1 + local.tee $0 i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.048 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $2 + br $while-continue|049 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -14423,6 +14088,86 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + end + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $1 + local.set $3 + local.get $2 + local.set $1 + i32.const -1 + local.get $0 + local.tee $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + drop + local.get $0 + local.get $1 + i32.add + local.get $0 + i32.const 1 + i32.sub + local.get $1 + local.get $0 + local.get $1 + i32.le_s + select + local.get $1 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|0 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + local.get $3 + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|0 + end + end + i32.const -1 + end + ) (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> (local $0 i32) (local $1 i32) @@ -14457,71 +14202,73 @@ local.get $1 i32.const 7740 i32.load - local.tee $1 - call $~lib/typedarray/Int32Array#constructor local.tee $2 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s + local.get $2 + local.get $3 + i32.gt_s if - local.get $2 local.get $0 + local.get $3 i32.const 7728 - local.get $0 + local.get $3 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 + i32.const -1 + local.set $3 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $1 loop $while-continue|0 - local.get $0 - local.get $3 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $2 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -14531,49 +14278,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 + i32.const -1 + local.set $3 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|02 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|03 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|02 + local.set $2 + br $while-continue|03 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -14585,49 +14334,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|05 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|07 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const -1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|05 + local.set $2 + br $while-continue|07 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -14639,49 +14390,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.09 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.09 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|08 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|011 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.09 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|08 + local.set $2 + br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 3 i32.ne if @@ -14693,50 +14446,52 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|011 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|015 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + local.set $2 + br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 3 i32.ne if @@ -14748,50 +14503,52 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 3 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|014 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|019 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $2 + br $while-continue|019 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 3 i32.ne if @@ -14803,50 +14560,52 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.021 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 4 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.021 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|017 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|023 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.021 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|017 + local.set $2 + br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -14858,50 +14617,52 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.025 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 10 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.025 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|020 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|027 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.025 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|020 + local.set $2 + br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -14912,10 +14673,12 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 - local.get $2 + i32.const -1 + local.set $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -14925,46 +14688,45 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 local.get $3 i32.const 100 i32.sub - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|023 - local.get $0 + local.set $1 + loop $while-continue|031 + local.get $2 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + local.get $2 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + local.set $2 + br $while-continue|031 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 1 i32.ne if @@ -14977,62 +14739,9 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|00 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|00 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs if i32.const 0 i32.const 1568 @@ -15043,63 +14752,9 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|06 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - i32.const 11 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|06 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + local.get $0 + i32.const 11 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -15112,63 +14767,9 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - local.set $0 + local.get $0 i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|012 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - i32.const -1 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|012 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -15181,63 +14782,9 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|018 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - i32.const 3 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|018 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#lastIndexOf@varargs i32.const 3 i32.ne if @@ -15248,54 +14795,56 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $4 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $4 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $4 i32.const 4 i32.le_u select - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|024 - local.get $0 + local.set $1 + loop $while-continue|033 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $while-continue|024 + local.set $2 + br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 3 i32.ne if @@ -15306,54 +14855,56 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $4 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 + local.get $4 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $4 i32.const 3 i32.le_u select - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 + local.set $1 + loop $while-continue|037 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $2 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 3 i32.ne if @@ -15364,54 +14915,56 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.039 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $4 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.039 + local.get $4 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $4 i32.const 2 i32.le_u select - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $1 + loop $while-continue|041 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.039 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $2 + br $while-continue|041 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -15422,54 +14975,56 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.043 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $4 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.043 + local.get $4 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $4 i32.const 100 i32.le_u select - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $1 + loop $while-continue|045 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.043 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $2 + br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 1 i32.ne if @@ -15480,49 +15035,50 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $2 + i32.const -1 + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + local.get $3 i32.const 10 i32.sub - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $1 + loop $while-continue|049 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + local.get $2 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $2 + br $while-continue|049 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 1 i32.ne if @@ -15533,49 +15089,50 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 - local.get $2 + i32.const -1 + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.051 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.051 + local.get $3 i32.const 11 i32.sub - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $1 + loop $while-continue|053 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.051 + local.get $2 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $2 + br $while-continue|053 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -15587,56 +15144,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 4 i32.const 9 call $~lib/typedarray/Int32Array#subarray - local.tee $2 + local.tee $0 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.055 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.055 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|042 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|057 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.055 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $2 + br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -15648,49 +15207,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|045 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|061 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $2 + br $while-continue|061 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -15700,49 +15261,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.063 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.063 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|048 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|065 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.063 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $2 + br $while-continue|065 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 1 i32.ne if @@ -15754,49 +15317,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.067 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.067 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|051 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|069 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.067 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $2 + br $while-continue|069 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -15808,49 +15373,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.071 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.071 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|054 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|073 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.071 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $2 + br $while-continue|073 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -15862,49 +15429,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.075 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.075 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|057 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|077 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.075 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $2 + br $while-continue|077 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -15916,50 +15485,52 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.079 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.079 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|060 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|081 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.079 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $2 + br $while-continue|081 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 1 i32.ne if @@ -15971,50 +15542,52 @@ unreachable end i32.const 2 - local.set $0 + local.set $2 + local.get $0 + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.083 + local.get $3 i32.const 2 - i32.le_u + i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.083 + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|063 - local.get $0 - local.get $4 + local.set $1 + loop $while-continue|085 + local.get $2 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.083 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $2 + br $while-continue|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -16030,6 +15603,86 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + end + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $1 + local.set $3 + local.get $2 + local.set $1 + i32.const -1 + local.get $0 + local.tee $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + drop + local.get $0 + local.get $1 + i32.add + local.get $0 + i32.const 1 + i32.sub + local.get $1 + local.get $0 + local.get $1 + i32.le_s + select + local.get $1 + i32.const 0 + i32.lt_s + select + local.set $1 + local.get $2 + i32.load offset=4 + local.set $2 + loop $while-continue|0 + local.get $1 + i32.const 0 + i32.ge_s + if + local.get $1 + local.tee $0 + local.get $3 + local.get $1 + i32.const 2 + i32.shl + local.get $2 + i32.add + i32.load + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + drop + local.get $0 + i32.const 1 + i32.sub + local.set $1 + br $while-continue|0 + end + end + i32.const -1 + end + ) (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> (local $0 i32) (local $1 i32) @@ -16064,71 +15717,73 @@ local.get $1 i32.const 7740 i32.load - local.tee $1 - call $~lib/typedarray/Uint32Array#constructor local.tee $2 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 i32.store offset=4 loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s + local.get $2 + local.get $3 + i32.gt_s if - local.get $2 local.get $0 + local.get $3 i32.const 7728 - local.get $0 + local.get $3 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 + i32.const -1 + local.set $3 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $1 loop $while-continue|0 - local.get $0 - local.get $3 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $2 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -16138,49 +15793,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 + i32.const -1 + local.set $3 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|02 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|03 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|02 + local.set $2 + br $while-continue|03 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -16192,49 +15849,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|05 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|07 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const -1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|05 + local.set $2 + br $while-continue|07 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -16246,49 +15905,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.09 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.09 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|08 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|011 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.09 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|08 + local.set $2 + br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 3 i32.ne if @@ -16300,50 +15961,52 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|011 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|015 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + local.set $2 + br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 3 i32.ne if @@ -16355,50 +16018,52 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 3 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|014 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $0 - local.tee $1 + local.set $1 + loop $while-continue|019 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $2 + br $while-continue|019 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 3 i32.ne if @@ -16410,50 +16075,52 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.021 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 4 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.021 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|017 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|023 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.021 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|017 + local.set $2 + br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -16465,50 +16132,52 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.025 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 10 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.025 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|020 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|027 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.025 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|020 + local.set $2 + br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -16519,10 +16188,12 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 - local.get $2 + i32.const -1 + local.set $2 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -16532,46 +16203,45 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 local.get $3 i32.const 100 i32.sub - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|023 - local.get $0 + local.set $1 + loop $while-continue|031 + local.get $2 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + local.get $2 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + local.set $2 + br $while-continue|031 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 1 i32.ne if @@ -16584,62 +16254,9 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|00 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|00 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs if i32.const 0 i32.const 1568 @@ -16650,63 +16267,9 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|06 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - i32.const 11 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|06 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + local.get $0 + i32.const 11 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -16719,63 +16282,9 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - local.set $0 + local.get $0 i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|012 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - i32.const -1 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|012 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs i32.const -1 i32.ne if @@ -16788,63 +16297,9 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - local.set $0 - i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $4 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $0 - local.get $4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.get $0 - local.get $0 - local.get $4 - i32.ge_s - select - local.get $0 - i32.const 0 - i32.lt_s - select - local.set $0 - local.get $2 - i32.load offset=4 - local.set $4 - loop $while-continue|018 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.tee $1 - i32.const 2 - i32.shl - local.get $4 - i32.add - i32.load - i32.const 3 - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $1 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|018 - end - end - i32.const -1 - local.set $1 - end - local.get $1 + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint32Array#lastIndexOf@varargs i32.const 3 i32.ne if @@ -16855,54 +16310,56 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $4 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $4 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $4 i32.const 4 i32.le_u select - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|024 - local.get $0 + local.set $1 + loop $while-continue|033 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $while-continue|024 + local.set $2 + br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 3 i32.ne if @@ -16913,54 +16370,56 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $4 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 + local.get $4 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $4 i32.const 3 i32.le_u select - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 + local.set $1 + loop $while-continue|037 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $2 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 3 i32.ne if @@ -16971,54 +16430,56 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.039 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $4 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.039 + local.get $4 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $4 i32.const 2 i32.le_u select - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $1 + loop $while-continue|041 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.039 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $2 + br $while-continue|041 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -17029,54 +16490,56 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.043 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $4 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.043 + local.get $4 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $4 i32.const 100 i32.le_u select - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $1 + loop $while-continue|045 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.043 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $2 + br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 1 i32.ne if @@ -17087,49 +16550,50 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $2 - i32.load offset=8 - i32.const 2 + i32.const -1 + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + local.get $0 + i32.load offset=8 + i32.const 2 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + local.get $3 i32.const 10 i32.sub - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $1 + loop $while-continue|049 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + local.get $2 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $2 + br $while-continue|049 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 1 i32.ne if @@ -17140,49 +16604,50 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + local.get $0 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 - local.get $2 + i32.const -1 + local.set $2 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.051 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $3 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.051 + local.get $3 i32.const 11 i32.sub - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $1 + loop $while-continue|053 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $2 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.051 + local.get $2 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $2 + br $while-continue|053 end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -17194,55 +16659,57 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 9 call $~lib/typedarray/Uint32Array#subarray - local.tee $2 + local.tee $0 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.055 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.055 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|042 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|057 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.055 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $2 + br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -17254,49 +16721,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|045 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|061 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $2 + br $while-continue|061 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 if i32.const 0 i32.const 1568 @@ -17306,49 +16775,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.063 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.063 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|048 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|065 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.063 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $2 + br $while-continue|065 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 1 i32.ne if @@ -17360,49 +16831,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.067 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.067 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|051 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|069 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.067 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $2 + br $while-continue|069 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -17414,49 +16887,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.071 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.071 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|054 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|073 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.071 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $2 + br $while-continue|073 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -17468,49 +16943,51 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.075 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.075 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|057 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|077 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.075 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $2 + br $while-continue|077 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const -1 i32.ne if @@ -17522,50 +16999,52 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 + local.set $2 + local.get $0 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $2 + i32.const -1 + local.set $3 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.079 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.079 + local.get $1 i32.load offset=4 - local.set $4 - loop $while-continue|060 - local.get $0 - local.get $3 + local.set $1 + loop $while-continue|081 + local.get $2 + local.get $4 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $3 i32.const 2 i32.shl - local.get $4 + local.get $1 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.079 + local.get $3 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $2 + br $while-continue|081 end end i32.const -1 - local.set $1 + local.set $3 end - local.get $1 + local.get $3 i32.const 1 i32.ne if @@ -17577,50 +17056,52 @@ unreachable end i32.const 2 - local.set $0 + local.set $2 + local.get $0 + local.tee $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 i32.const -1 - local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.083 + local.get $3 i32.const 2 - i32.le_u + i32.le_s i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.083 + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|063 - local.get $0 - local.get $4 + local.set $1 + loop $while-continue|085 + local.get $2 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $2 + local.tee $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.083 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $2 + br $while-continue|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -17694,9 +17175,9 @@ end end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 local.get $2 i32.load offset=8 @@ -17712,12 +17193,12 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -17725,17 +17206,17 @@ i64.load i64.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -17745,9 +17226,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 local.get $2 i32.load offset=8 @@ -17762,13 +17243,13 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|02 - local.get $0 + loop $while-continue|03 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -17777,17 +17258,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|02 + local.set $1 + br $while-continue|03 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -17799,10 +17280,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 local.get $2 i32.load offset=8 i32.const 3 @@ -17812,17 +17293,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|05 - local.get $0 + loop $while-continue|07 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -17830,18 +17311,18 @@ i64.load i64.const -1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|05 + local.set $1 + br $while-continue|07 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -17853,10 +17334,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.09 local.get $2 i32.load offset=8 i32.const 3 @@ -17866,17 +17347,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.09 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|08 - local.get $0 + loop $while-continue|011 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -17884,18 +17365,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.09 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|08 + local.set $1 + br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -17907,10 +17388,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 local.get $2 i32.load offset=8 i32.const 3 @@ -17921,17 +17402,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $0 + loop $while-continue|015 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -17939,18 +17420,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + local.set $1 + br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -17962,10 +17443,10 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 local.get $2 i32.load offset=8 i32.const 3 @@ -17976,17 +17457,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|014 - local.get $0 + loop $while-continue|019 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -17994,18 +17475,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $1 + br $while-continue|019 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -18017,10 +17498,10 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.021 local.get $2 i32.load offset=8 i32.const 3 @@ -18031,17 +17512,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.021 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|017 - local.get $0 + loop $while-continue|023 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -18049,18 +17530,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.021 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18072,10 +17553,10 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.025 local.get $2 i32.load offset=8 i32.const 3 @@ -18086,17 +17567,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.025 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|020 - local.get $0 + loop $while-continue|027 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -18104,18 +17585,18 @@ i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.025 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|020 + local.set $1 + br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18128,19 +17609,19 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $0 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $0 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + local.get $0 i32.const 100 i32.sub local.tee $1 @@ -18149,30 +17630,29 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|023 + local.set $3 + loop $while-continue|031 local.get $0 - local.get $3 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + local.set $1 + br $while-continue|031 end end i32.const -1 @@ -18192,26 +17672,30 @@ i32.const 1 global.set $~argumentsLength local.get $2 + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $4 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -18219,24 +17703,24 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -18244,9 +17728,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -18257,27 +17741,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -18285,25 +17769,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -18311,9 +17795,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -18326,27 +17810,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -18354,25 +17838,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -18380,9 +17864,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -18395,27 +17879,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -18423,25 +17907,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -18449,9 +17933,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 3 i32.ne if @@ -18463,53 +17947,54 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $2 + local.get $1 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $1 i32.const 4 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|024 - local.get $0 + local.set $3 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|024 + local.set $1 + br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -18521,53 +18006,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 + local.set $3 + loop $while-continue|037 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -18579,53 +18064,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.039 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.039 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $3 + loop $while-continue|041 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.039 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $1 + br $while-continue|041 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18637,53 +18122,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.043 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.043 + local.get $1 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $1 i32.const 100 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $3 + loop $while-continue|045 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.043 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -18696,41 +18181,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 local.get $0 i32.const 10 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $0 + loop $while-continue|049 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 3 i32.shl - local.get $4 + local.get $0 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $1 + br $while-continue|049 end end i32.const -1 @@ -18749,41 +18233,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.051 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.051 local.get $0 i32.const 11 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $0 + loop $while-continue|053 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 3 i32.shl - local.get $4 + local.get $0 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.051 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $1 + br $while-continue|053 end end i32.const -1 @@ -18807,10 +18290,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.055 local.get $2 i32.load offset=8 i32.const 3 @@ -18820,17 +18303,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.055 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|042 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -18838,18 +18321,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.055 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $1 + br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -18861,10 +18344,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 local.get $2 i32.load offset=8 i32.const 3 @@ -18874,17 +18357,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|045 - local.get $0 + loop $while-continue|061 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -18892,18 +18375,18 @@ i64.load i64.const 4 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $1 + br $while-continue|061 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -18913,10 +18396,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.063 local.get $2 i32.load offset=8 i32.const 3 @@ -18926,17 +18409,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.063 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|048 - local.get $0 + loop $while-continue|065 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -18944,18 +18427,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.063 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $1 + br $while-continue|065 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -18967,10 +18450,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.067 local.get $2 i32.load offset=8 i32.const 3 @@ -18980,17 +18463,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.067 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|051 - local.get $0 + loop $while-continue|069 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -18998,18 +18481,18 @@ i64.load i64.const 9 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.067 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $1 + br $while-continue|069 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19021,10 +18504,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.071 local.get $2 i32.load offset=8 i32.const 3 @@ -19034,17 +18517,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.071 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|054 - local.get $0 + loop $while-continue|073 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19052,18 +18535,18 @@ i64.load i64.const 10 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.071 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $1 + br $while-continue|073 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19075,10 +18558,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.075 local.get $2 i32.load offset=8 i32.const 3 @@ -19088,17 +18571,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.075 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $0 + loop $while-continue|077 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19106,18 +18589,18 @@ i64.load i64.const 11 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.075 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $1 + br $while-continue|077 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19129,10 +18612,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.079 local.get $2 i32.load offset=8 i32.const 3 @@ -19143,17 +18626,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.079 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|060 - local.get $0 + loop $while-continue|081 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19161,18 +18644,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.079 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $1 + br $while-continue|081 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -19184,31 +18667,31 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.083 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.083 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|063 - local.get $0 - local.get $4 + loop $while-continue|085 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -19216,18 +18699,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.083 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $1 + br $while-continue|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19301,9 +18784,9 @@ end end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 local.get $2 i32.load offset=8 @@ -19319,12 +18802,12 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19332,17 +18815,17 @@ i64.load i64.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -19352,9 +18835,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 local.get $2 i32.load offset=8 @@ -19369,13 +18852,13 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|02 - local.get $0 + loop $while-continue|03 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19384,17 +18867,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|02 + local.set $1 + br $while-continue|03 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19406,10 +18889,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 local.get $2 i32.load offset=8 i32.const 3 @@ -19419,17 +18902,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|05 - local.get $0 + loop $while-continue|07 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19437,18 +18920,18 @@ i64.load i64.const -1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|05 + local.set $1 + br $while-continue|07 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19460,10 +18943,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.09 local.get $2 i32.load offset=8 i32.const 3 @@ -19473,17 +18956,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.09 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|08 - local.get $0 + loop $while-continue|011 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19491,18 +18974,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.09 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|08 + local.set $1 + br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -19514,10 +18997,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 local.get $2 i32.load offset=8 i32.const 3 @@ -19528,17 +19011,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $0 + loop $while-continue|015 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19546,18 +19029,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + local.set $1 + br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -19569,10 +19052,10 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 local.get $2 i32.load offset=8 i32.const 3 @@ -19583,17 +19066,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|014 - local.get $0 + loop $while-continue|019 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19601,18 +19084,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $1 + br $while-continue|019 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -19624,10 +19107,10 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.021 local.get $2 i32.load offset=8 i32.const 3 @@ -19638,17 +19121,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.021 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|017 - local.get $0 + loop $while-continue|023 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19656,18 +19139,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.021 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19679,10 +19162,10 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.025 local.get $2 i32.load offset=8 i32.const 3 @@ -19693,17 +19176,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.025 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|020 - local.get $0 + loop $while-continue|027 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -19711,18 +19194,18 @@ i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.025 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|020 + local.set $1 + br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -19735,19 +19218,19 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $0 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $0 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + local.get $0 i32.const 100 i32.sub local.tee $1 @@ -19756,30 +19239,29 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|023 + local.set $3 + loop $while-continue|031 local.get $0 - local.get $3 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + local.set $1 + br $while-continue|031 end end i32.const -1 @@ -19799,26 +19281,30 @@ i32.const 1 global.set $~argumentsLength local.get $2 + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $4 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -19826,24 +19312,24 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -19851,9 +19337,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -19864,27 +19350,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -19892,25 +19378,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -19918,9 +19404,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -19933,27 +19419,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -19961,25 +19447,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -19987,9 +19473,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -20002,27 +19488,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -20030,25 +19516,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -20056,9 +19542,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 3 i32.ne if @@ -20070,53 +19556,54 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $2 + local.get $1 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $1 i32.const 4 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|024 - local.get $0 + local.set $3 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|024 - end + local.set $1 + br $while-continue|033 + end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -20128,53 +19615,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 + local.set $3 + loop $while-continue|037 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -20186,53 +19673,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.039 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.039 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $3 + loop $while-continue|041 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.039 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $1 + br $while-continue|041 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20244,53 +19731,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.043 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.043 + local.get $1 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $1 i32.const 100 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $3 + loop $while-continue|045 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.043 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -20303,41 +19790,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 local.get $0 i32.const 10 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $0 + loop $while-continue|049 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 3 i32.shl - local.get $4 + local.get $0 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $1 + br $while-continue|049 end end i32.const -1 @@ -20356,41 +19842,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.051 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.051 local.get $0 i32.const 11 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $0 + loop $while-continue|053 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 3 i32.shl - local.get $4 + local.get $0 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.051 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $1 + br $while-continue|053 end end i32.const -1 @@ -20414,10 +19899,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.055 local.get $2 i32.load offset=8 i32.const 3 @@ -20427,17 +19912,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.055 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|042 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -20445,18 +19930,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.055 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $1 + br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20468,10 +19953,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 local.get $2 i32.load offset=8 i32.const 3 @@ -20481,17 +19966,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|045 - local.get $0 + loop $while-continue|061 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -20499,18 +19984,18 @@ i64.load i64.const 4 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $1 + br $while-continue|061 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -20520,10 +20005,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.063 local.get $2 i32.load offset=8 i32.const 3 @@ -20533,17 +20018,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.063 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|048 - local.get $0 + loop $while-continue|065 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -20551,18 +20036,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.063 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $1 + br $while-continue|065 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -20574,10 +20059,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.067 local.get $2 i32.load offset=8 i32.const 3 @@ -20587,17 +20072,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.067 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|051 - local.get $0 + loop $while-continue|069 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -20605,18 +20090,18 @@ i64.load i64.const 9 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.067 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $1 + br $while-continue|069 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20628,10 +20113,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.071 local.get $2 i32.load offset=8 i32.const 3 @@ -20641,17 +20126,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.071 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|054 - local.get $0 + loop $while-continue|073 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -20659,18 +20144,18 @@ i64.load i64.const 10 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.071 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $1 + br $while-continue|073 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20682,10 +20167,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.075 local.get $2 i32.load offset=8 i32.const 3 @@ -20695,17 +20180,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.075 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $0 + loop $while-continue|077 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -20713,18 +20198,18 @@ i64.load i64.const 11 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.075 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $1 + br $while-continue|077 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20736,10 +20221,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.079 local.get $2 i32.load offset=8 i32.const 3 @@ -20750,17 +20235,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.079 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|060 - local.get $0 + loop $while-continue|081 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -20768,18 +20253,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.079 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $1 + br $while-continue|081 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -20791,31 +20276,31 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.083 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.083 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|063 - local.get $0 - local.get $4 + loop $while-continue|085 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -20823,18 +20308,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.083 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $1 + br $while-continue|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -20908,9 +20393,9 @@ end end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $2 i32.load offset=8 @@ -20926,12 +20411,12 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -20940,17 +20425,17 @@ f32.const 0 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -20960,9 +20445,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 local.get $2 i32.load offset=8 @@ -20977,13 +20462,13 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|02 - local.get $0 + loop $while-continue|03 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -20992,17 +20477,17 @@ f32.const 11 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|02 + local.set $1 + br $while-continue|03 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21014,10 +20499,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 local.get $2 i32.load offset=8 i32.const 2 @@ -21027,17 +20512,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|05 - local.get $0 + loop $while-continue|07 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -21045,18 +20530,18 @@ f32.load f32.const -1 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|05 + local.set $1 + br $while-continue|07 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21068,10 +20553,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.09 local.get $2 i32.load offset=8 i32.const 2 @@ -21081,17 +20566,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.09 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|08 - local.get $0 + loop $while-continue|011 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -21099,18 +20584,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.09 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|08 + local.set $1 + br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -21122,10 +20607,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 local.get $2 i32.load offset=8 i32.const 2 @@ -21136,17 +20621,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $0 + loop $while-continue|015 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -21154,18 +20639,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + local.set $1 + br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -21177,10 +20662,10 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 local.get $2 i32.load offset=8 i32.const 2 @@ -21191,17 +20676,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|014 - local.get $0 + loop $while-continue|019 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -21209,18 +20694,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $1 + br $while-continue|019 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -21232,10 +20717,10 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.021 local.get $2 i32.load offset=8 i32.const 2 @@ -21246,17 +20731,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.021 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|017 - local.get $0 + loop $while-continue|023 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -21264,18 +20749,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.021 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21287,10 +20772,10 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.025 local.get $2 i32.load offset=8 i32.const 2 @@ -21301,17 +20786,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.025 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|020 - local.get $0 + loop $while-continue|027 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -21319,18 +20804,18 @@ f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.025 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|020 + local.set $1 + br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21343,19 +20828,19 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $0 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $0 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + local.get $0 i32.const 100 i32.sub local.tee $1 @@ -21364,30 +20849,29 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|023 + local.set $3 + loop $while-continue|031 local.get $0 - local.get $3 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + local.set $1 + br $while-continue|031 end end i32.const -1 @@ -21407,26 +20891,30 @@ i32.const 1 global.set $~argumentsLength local.get $2 + local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $4 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -21434,25 +20922,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add f32.load f32.const 0 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -21460,9 +20948,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -21473,27 +20961,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -21501,25 +20989,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add f32.load f32.const 11 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -21527,9 +21015,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -21542,27 +21030,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -21570,25 +21058,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add f32.load f32.const -1 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -21596,9 +21084,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -21611,27 +21099,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -21639,25 +21127,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -21665,9 +21153,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 3 i32.ne if @@ -21679,53 +21167,54 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $2 + local.get $1 + local.tee $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $1 i32.const 4 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|024 - local.get $0 + local.set $3 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|024 + local.set $1 + br $while-continue|033 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -21737,53 +21226,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 + local.set $3 + loop $while-continue|037 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -21795,53 +21284,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.039 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.039 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $3 + loop $while-continue|041 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.039 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $1 + br $while-continue|041 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21853,53 +21342,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.043 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.043 + local.get $1 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $1 i32.const 100 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $3 + loop $while-continue|045 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.043 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -21912,41 +21401,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 local.get $0 i32.const 10 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $0 + loop $while-continue|049 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $0 i32.add f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $1 + br $while-continue|049 end end i32.const -1 @@ -21965,41 +21453,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.051 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.051 local.get $0 i32.const 11 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $0 + loop $while-continue|053 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $0 i32.add f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.051 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $1 + br $while-continue|053 end end i32.const -1 @@ -22023,10 +21510,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.055 local.get $2 i32.load offset=8 i32.const 2 @@ -22036,17 +21523,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.055 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|042 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -22054,18 +21541,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.055 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $1 + br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22077,10 +21564,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 local.get $2 i32.load offset=8 i32.const 2 @@ -22090,17 +21577,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|045 - local.get $0 + loop $while-continue|061 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -22108,18 +21595,18 @@ f32.load f32.const 4 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $1 + br $while-continue|061 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -22129,10 +21616,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.063 local.get $2 i32.load offset=8 i32.const 2 @@ -22142,17 +21629,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.063 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|048 - local.get $0 + loop $while-continue|065 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -22160,18 +21647,18 @@ f32.load f32.const 5 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.063 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $1 + br $while-continue|065 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -22183,10 +21670,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.067 local.get $2 i32.load offset=8 i32.const 2 @@ -22196,17 +21683,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.067 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|051 - local.get $0 + loop $while-continue|069 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -22214,18 +21701,18 @@ f32.load f32.const 9 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.067 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $1 + br $while-continue|069 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22237,10 +21724,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.071 local.get $2 i32.load offset=8 i32.const 2 @@ -22250,17 +21737,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.071 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|054 - local.get $0 + loop $while-continue|073 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -22268,18 +21755,18 @@ f32.load f32.const 10 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.071 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $1 + br $while-continue|073 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22291,10 +21778,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.075 local.get $2 i32.load offset=8 i32.const 2 @@ -22304,17 +21791,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.075 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $0 + loop $while-continue|077 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -22322,18 +21809,18 @@ f32.load f32.const 11 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.075 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $1 + br $while-continue|077 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22345,10 +21832,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.079 local.get $2 i32.load offset=8 i32.const 2 @@ -22359,17 +21846,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.079 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|060 - local.get $0 + loop $while-continue|081 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $4 @@ -22377,18 +21864,18 @@ f32.load f32.const 5 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.079 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $1 + br $while-continue|081 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -22400,31 +21887,31 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.083 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.083 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|063 - local.get $0 - local.get $4 + loop $while-continue|085 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl local.get $2 @@ -22432,18 +21919,18 @@ f32.load f32.const 5 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.083 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $1 + br $while-continue|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22517,9 +22004,9 @@ end end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $2 i32.load offset=8 @@ -22535,12 +22022,12 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $0 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -22549,17 +22036,17 @@ f64.const 0 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -22569,9 +22056,9 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 local.get $2 i32.load offset=8 @@ -22586,13 +22073,13 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|02 - local.get $0 + loop $while-continue|03 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -22601,17 +22088,17 @@ f64.const 11 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|02 + local.set $1 + br $while-continue|03 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22623,10 +22110,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 local.get $2 i32.load offset=8 i32.const 3 @@ -22636,17 +22123,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|05 - local.get $0 + loop $while-continue|07 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -22654,18 +22141,18 @@ f64.load f64.const -1 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|05 + local.set $1 + br $while-continue|07 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22677,10 +22164,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.09 local.get $2 i32.load offset=8 i32.const 3 @@ -22690,17 +22177,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.09 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|08 - local.get $0 + loop $while-continue|011 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -22708,18 +22195,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.09 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|08 + local.set $1 + br $while-continue|011 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -22731,10 +22218,10 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 local.get $2 i32.load offset=8 i32.const 3 @@ -22745,17 +22232,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $0 + loop $while-continue|015 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -22763,18 +22250,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|011 + local.set $1 + br $while-continue|015 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -22786,10 +22273,10 @@ unreachable end i32.const 3 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 local.get $2 i32.load offset=8 i32.const 3 @@ -22800,17 +22287,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|014 - local.get $0 + loop $while-continue|019 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -22818,18 +22305,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|014 + local.set $1 + br $while-continue|019 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -22841,10 +22328,10 @@ unreachable end i32.const 4 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.021 local.get $2 i32.load offset=8 i32.const 3 @@ -22855,17 +22342,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.021 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|017 - local.get $0 + loop $while-continue|023 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -22873,18 +22360,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.021 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|023 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22896,10 +22383,10 @@ unreachable end i32.const 10 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.025 local.get $2 i32.load offset=8 i32.const 3 @@ -22910,17 +22397,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.025 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|020 - local.get $0 + loop $while-continue|027 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -22928,18 +22415,18 @@ f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.025 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|020 + local.set $1 + br $while-continue|027 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -22952,19 +22439,19 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $0 i32.const -100 i32.le_s i32.const 1 - local.get $3 + local.get $0 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + local.get $0 i32.const 100 i32.sub local.tee $1 @@ -22973,30 +22460,29 @@ i32.const 0 i32.gt_s select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|023 + local.set $3 + loop $while-continue|031 local.get $0 - local.get $3 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|023 + local.set $1 + br $while-continue|031 end end i32.const -1 @@ -23016,26 +22502,30 @@ i32.const 1 global.set $~argumentsLength local.get $2 + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $4 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -23043,25 +22533,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add f64.load f64.const 0 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -23069,9 +22559,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -23082,27 +22572,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -23110,25 +22600,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add f64.load f64.const 11 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -23136,9 +22626,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -23151,27 +22641,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -23179,25 +22669,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add f64.load f64.const -1 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -23205,9 +22695,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const -1 i32.ne if @@ -23220,27 +22710,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 local.set $0 i32.const -1 - local.set $1 + local.set $2 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $4 + local.get $3 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 local.get $0 - local.get $4 + local.get $3 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $4 + local.get $3 i32.ge_s select local.get $0 @@ -23248,25 +22738,25 @@ i32.lt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $1 + local.tee $2 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $1 + local.get $2 i32.const 1 i32.sub local.set $0 @@ -23274,9 +22764,9 @@ end end i32.const -1 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.const 3 i32.ne if @@ -23288,53 +22778,54 @@ unreachable end i32.const -1 - local.set $1 + local.set $0 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $2 + local.get $1 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub i32.const 4 - local.get $0 + local.get $1 i32.const 4 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|024 - local.get $0 + local.set $3 + loop $while-continue|033 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|024 - end + local.set $1 + br $while-continue|033 + end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -23346,53 +22837,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|027 - local.get $0 + local.set $3 + loop $while-continue|037 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|027 + local.set $1 + br $while-continue|037 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -23404,53 +22895,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.039 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.039 + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|030 - local.get $0 + local.set $3 + loop $while-continue|041 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.039 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|030 + local.set $1 + br $while-continue|041 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -23462,53 +22953,53 @@ unreachable end i32.const -1 - local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 + local.set $0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.043 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $1 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.043 + local.get $1 i32.const 1 i32.sub i32.const 100 - local.get $0 + local.get $1 i32.const 100 i32.le_u select - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|033 - local.get $0 + local.set $3 + loop $while-continue|045 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $4 + local.get $3 i32.add f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.043 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|045 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -23521,41 +23012,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 local.get $0 i32.const 10 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|036 - local.get $0 + local.set $0 + loop $while-continue|049 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 3 i32.shl - local.get $4 + local.get $0 i32.add f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|036 + local.set $1 + br $while-continue|049 end end i32.const -1 @@ -23574,41 +23064,40 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.051 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.051 local.get $0 i32.const 11 i32.sub - local.set $0 + local.set $1 local.get $2 i32.load offset=4 - local.set $4 - loop $while-continue|039 - local.get $0 + local.set $0 + loop $while-continue|053 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 3 i32.shl - local.get $4 + local.get $0 i32.add f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.051 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|039 + local.set $1 + br $while-continue|053 end end i32.const -1 @@ -23633,10 +23122,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.055 local.get $2 i32.load offset=8 i32.const 3 @@ -23646,17 +23135,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.055 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|042 - local.get $0 + loop $while-continue|057 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -23664,18 +23153,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.055 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|042 + local.set $1 + br $while-continue|057 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -23687,10 +23176,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 local.get $2 i32.load offset=8 i32.const 3 @@ -23700,17 +23189,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|045 - local.get $0 + loop $while-continue|061 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -23718,18 +23207,18 @@ f64.load f64.const 4 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|045 + local.set $1 + br $while-continue|061 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -23739,10 +23228,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.063 local.get $2 i32.load offset=8 i32.const 3 @@ -23752,17 +23241,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.063 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|048 - local.get $0 + loop $while-continue|065 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -23770,18 +23259,18 @@ f64.load f64.const 5 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.063 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|048 + local.set $1 + br $while-continue|065 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -23793,10 +23282,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.067 local.get $2 i32.load offset=8 i32.const 3 @@ -23806,17 +23295,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.067 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|051 - local.get $0 + loop $while-continue|069 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -23824,18 +23313,18 @@ f64.load f64.const 9 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.067 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|051 + local.set $1 + br $while-continue|069 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -23847,10 +23336,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.071 local.get $2 i32.load offset=8 i32.const 3 @@ -23860,17 +23349,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.071 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|054 - local.get $0 + loop $while-continue|073 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -23878,18 +23367,18 @@ f64.load f64.const 10 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.071 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|054 + local.set $1 + br $while-continue|073 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -23901,10 +23390,10 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.075 local.get $2 i32.load offset=8 i32.const 3 @@ -23914,17 +23403,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.075 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $0 + loop $while-continue|077 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -23932,18 +23421,18 @@ f64.load f64.const 11 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.075 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|057 + local.set $1 + br $while-continue|077 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -23955,10 +23444,10 @@ unreachable end i32.const 1 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.079 local.get $2 i32.load offset=8 i32.const 3 @@ -23969,17 +23458,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.079 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|060 - local.get $0 + loop $while-continue|081 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $4 @@ -23987,18 +23476,18 @@ f64.load f64.const 5 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.079 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|060 + local.set $1 + br $while-continue|081 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne if @@ -24010,31 +23499,31 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 + i32.const -1 + local.set $0 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.083 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.083 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|063 - local.get $0 - local.get $4 + loop $while-continue|085 + local.get $1 + local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl local.get $2 @@ -24042,18 +23531,18 @@ f64.load f64.const 5 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.083 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|063 + local.set $1 + br $while-continue|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -24259,15 +23748,14 @@ i32.add end end + local.get $2 + i32.add local.set $1 local.get $0 local.get $3 local.get $1 - local.get $2 - i32.add - local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $0 + local.get $1 ) (func $~lib/typedarray/Int8Array#join (param $0 i32) (result i32) (local $1 i32) @@ -24276,37 +23764,35 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $2 + local.tee $4 i32.const 0 i32.lt_s if @@ -24315,26 +23801,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $2 + local.get $4 i32.eqz if - local.get $3 + local.get $1 i32.load8_s call $~lib/util/number/itoa32 - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 11 i32.add i32.mul @@ -24345,47 +23830,47 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $4 + i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add + local.get $1 local.get $3 - local.get $5 i32.add i32.load8_s call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $4 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 9584 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $5 i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end @@ -24393,38 +23878,37 @@ local.get $0 i32.const 1 i32.shl - local.get $1 - i32.add local.get $2 - local.get $3 + i32.add + local.get $1 + local.get $4 i32.add i32.load8_s call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $1 i32.gt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -24624,37 +24108,35 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $2 + local.tee $4 i32.const 0 i32.lt_s if @@ -24663,26 +24145,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $2 + local.get $4 i32.eqz if - local.get $3 + local.get $1 i32.load8_u call $~lib/util/number/utoa32 - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 10 i32.add i32.mul @@ -24693,47 +24174,47 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $4 + i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add + local.get $1 local.get $3 - local.get $5 i32.add i32.load8_u call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $4 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 9584 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $5 i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end @@ -24741,38 +24222,37 @@ local.get $0 i32.const 1 i32.shl - local.get $1 - i32.add local.get $2 - local.get $3 + i32.add + local.get $1 + local.get $4 i32.add i32.load8_u call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $1 i32.gt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -24860,15 +24340,14 @@ i32.add end end + local.get $2 + i32.add local.set $1 local.get $0 local.get $3 local.get $1 - local.get $2 - i32.add - local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $0 + local.get $1 ) (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) (local $1 i32) @@ -24877,39 +24356,37 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + i32.shr_u + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $2 + local.tee $4 i32.const 0 i32.lt_s if @@ -24918,26 +24395,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $2 + local.get $4 i32.eqz if - local.get $3 + local.get $1 i32.load16_s call $~lib/util/number/itoa32 - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 11 i32.add i32.mul @@ -24948,49 +24424,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $4 + i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $5 + local.get $3 i32.const 1 i32.shl - local.get $3 + local.get $1 i32.add i32.load16_s call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $4 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 9584 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $5 i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end @@ -24998,40 +24474,39 @@ local.get $0 i32.const 1 i32.shl - local.get $1 - i32.add local.get $2 + i32.add + local.get $4 i32.const 1 i32.shl - local.get $3 + local.get $1 i32.add i32.load16_s call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $1 i32.gt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -25115,39 +24590,37 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + i32.shr_u + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $2 + local.tee $4 i32.const 0 i32.lt_s if @@ -25156,26 +24629,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $2 + local.get $4 i32.eqz if - local.get $3 + local.get $1 i32.load16_u call $~lib/util/number/utoa32 - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 10 i32.add i32.mul @@ -25186,49 +24658,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $4 + i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $5 + local.get $3 i32.const 1 i32.shl - local.get $3 + local.get $1 i32.add i32.load16_u call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $4 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 9584 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $5 i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end @@ -25236,40 +24708,39 @@ local.get $0 i32.const 1 i32.shl - local.get $1 - i32.add local.get $2 + i32.add + local.get $4 i32.const 1 i32.shl - local.get $3 + local.get $1 i32.add i32.load16_u call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $1 i32.gt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -25307,47 +24778,46 @@ local.get $0 local.get $1 local.get $1 - local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -25355,9 +24825,9 @@ end local.get $2 i32.add - local.tee $0 + local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $0 + local.get $1 ) (func $~lib/typedarray/Int32Array#join (param $0 i32) (result i32) (local $1 i32) @@ -25366,39 +24836,37 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $2 + local.tee $4 i32.const 0 i32.lt_s if @@ -25407,26 +24875,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $2 + local.get $4 i32.eqz if - local.get $3 + local.get $1 i32.load call $~lib/util/number/itoa32 - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 11 i32.add i32.mul @@ -25437,49 +24904,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $4 + i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $5 + local.get $3 i32.const 2 i32.shl - local.get $3 + local.get $1 i32.add i32.load call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $4 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 9584 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $5 i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end @@ -25487,40 +24954,39 @@ local.get $0 i32.const 1 i32.shl - local.get $1 - i32.add local.get $2 + i32.add + local.get $4 i32.const 2 i32.shl - local.get $3 + local.get $1 i32.add i32.load call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $1 i32.gt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -25538,55 +25004,54 @@ local.get $0 local.get $1 local.get $1 - local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $0 + local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $0 + local.get $1 ) (func $~lib/typedarray/Uint32Array#join (param $0 i32) (result i32) (local $1 i32) @@ -25595,39 +25060,37 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $2 + local.tee $4 i32.const 0 i32.lt_s if @@ -25636,26 +25099,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $2 + local.get $4 i32.eqz if - local.get $3 + local.get $1 i32.load call $~lib/util/number/utoa32 - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 10 i32.add i32.mul @@ -25666,49 +25128,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $4 + i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $5 + local.get $3 i32.const 2 i32.shl - local.get $3 + local.get $1 i32.add i32.load call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $4 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 9584 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $5 i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end @@ -25716,40 +25178,39 @@ local.get $0 i32.const 1 i32.shl - local.get $1 - i32.add local.get $2 + i32.add + local.get $4 i32.const 2 i32.shl - local.get $3 + local.get $1 i32.add i32.load call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $1 i32.gt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -25846,7 +25307,7 @@ local.get $1 i64.const 0 i64.lt_s - local.tee $3 + local.tee $2 if local.get $0 i32.const 45 @@ -25860,7 +25321,7 @@ i64.const 10 i64.lt_u if - local.get $3 + local.get $2 i32.const 1 i32.shl local.get $0 @@ -25869,7 +25330,7 @@ i64.const 48 i64.or i64.store16 - local.get $3 + local.get $2 i32.const 1 i32.add return @@ -25881,59 +25342,58 @@ local.get $1 i32.wrap_i64 local.tee $4 - local.tee $2 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end + local.get $2 + i32.add local.set $2 local.get $0 local.get $4 local.get $2 - local.get $3 - i32.add - local.tee $0 call $~lib/util/number/utoa32_dec_lut else local.get $0 @@ -25988,12 +25448,12 @@ i32.add end end - local.get $3 + local.get $2 i32.add - local.tee $0 + local.tee $2 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $2 ) (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) (local $1 i32) @@ -26410,7 +25870,6 @@ local.get $0 local.get $3 local.get $2 - local.tee $0 call $~lib/util/number/utoa32_dec_lut else local.get $0 @@ -26465,10 +25924,10 @@ i32.add end end - local.tee $0 + local.tee $2 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $2 ) (func $~lib/typedarray/Uint64Array#join (param $0 i32) (result i32) (local $1 i32) @@ -26478,33 +25937,29 @@ (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 + block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $3 + local.tee $7 i32.const 0 i32.lt_s if @@ -26513,28 +25968,27 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $3 + local.get $7 i32.eqz if - local.get $4 - i64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64 + block $__inlined_func$~lib/util/number/utoa64 (result i32) + local.get $4 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $2 i64.eqz if @@ -26543,7 +25997,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 8000 - local.set $0 br $__inlined_func$~lib/util/number/utoa64 end local.get $2 @@ -26553,63 +26006,63 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.wrap_i64 - local.tee $3 local.tee $0 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end - local.tee $1 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.store - local.get $0 local.get $3 - local.get $1 + local.get $0 + local.get $6 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -26663,126 +26116,127 @@ i32.add end end - local.tee $1 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 local.get $2 - local.get $1 + local.get $6 call $~lib/util/number/utoa64_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 end + local.set $4 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $6 i32.const 20 i32.add i32.mul i32.const 20 i32.add - local.tee $7 + local.tee $0 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $5 i32.store loop $for-loop|0 local.get $3 - local.get $6 - i32.gt_s + local.get $7 + i32.lt_s if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $5 i32.add - local.get $6 + local.get $3 i32.const 3 i32.shl local.get $4 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.set $0 - local.get $5 + local.set $1 + local.get $6 if - local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $5 i32.add i32.const 9584 - local.get $5 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $5 + local.get $1 + local.get $6 i32.add - local.set $0 + local.set $1 end - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 + local.set $3 br $for-loop|0 end end - local.get $7 local.get $0 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $5 i32.add - local.get $3 + local.get $7 i32.const 3 i32.shl local.get $4 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $1 i32.add - local.tee $0 + local.tee $4 i32.gt_s if - local.get $1 - local.get $0 + local.get $5 + local.get $4 call $~lib/string/String#substring - local.set $0 + local.set $4 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $5 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 end - local.get $0 return end i32.const 33040 @@ -26794,39 +26248,38 @@ ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 i32) - (local $12 i64) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i32) (local $13 i64) local.get $2 local.get $1 i64.sub - local.set $10 + local.set $9 local.get $2 i64.const 1 i32.const 0 local.get $3 i32.sub - local.tee $11 + local.tee $12 i64.extend_i32_s local.tee $1 i64.shl - local.tee $12 + local.tee $11 i64.const 1 i64.sub local.tee $13 i64.and - local.set $7 + local.set $8 local.get $2 local.get $1 i64.shr_u i32.wrap_i64 local.tee $6 - local.set $3 - local.get $6 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) @@ -26872,9 +26325,9 @@ i32.add end end - local.set $9 + local.set $10 loop $while-continue|0 - local.get $9 + local.get $10 i32.const 0 i32.gt_s if @@ -26890,7 +26343,7 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $9 + local.get $10 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 @@ -26898,7 +26351,7 @@ local.get $6 i32.const 1000000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 1000000000 i32.rem_u @@ -26908,7 +26361,7 @@ local.get $6 i32.const 100000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 100000000 i32.rem_u @@ -26918,7 +26371,7 @@ local.get $6 i32.const 10000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 10000000 i32.rem_u @@ -26928,7 +26381,7 @@ local.get $6 i32.const 1000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 1000000 i32.rem_u @@ -26938,7 +26391,7 @@ local.get $6 i32.const 100000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 100000 i32.rem_u @@ -26948,7 +26401,7 @@ local.get $6 i32.const 10000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 10000 i32.rem_u @@ -26958,7 +26411,7 @@ local.get $6 i32.const 1000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 1000 i32.rem_u @@ -26968,7 +26421,7 @@ local.get $6 i32.const 100 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 100 i32.rem_u @@ -26978,7 +26431,7 @@ local.get $6 i32.const 10 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 10 i32.rem_u @@ -26986,64 +26439,64 @@ br $break|1 end local.get $6 - local.set $3 + local.set $7 i32.const 0 local.set $6 br $break|1 end i32.const 0 - local.set $3 + local.set $7 end - local.get $3 local.get $5 + local.get $7 i32.or if local.get $5 - local.tee $8 + local.tee $3 i32.const 1 i32.add local.set $5 - local.get $8 + local.get $3 i32.const 1 i32.shl local.get $0 i32.add - local.get $3 + local.get $7 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $9 + local.get $10 i32.const 1 i32.sub - local.set $9 - local.get $7 + local.set $10 + local.get $4 + local.get $8 local.get $6 i64.extend_i32_u - local.get $11 + local.get $12 i64.extend_i32_s i64.shl i64.add local.tee $1 - local.get $4 - i64.le_u + i64.ge_u if - local.get $9 + local.get $10 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $9 + local.get $10 i32.const 2 i32.shl i32.const 10736 i32.add i64.load32_u - local.get $11 + local.get $12 i64.extend_i32_s i64.shl - local.set $2 + local.set $11 local.get $5 i32.const 1 i32.sub @@ -27051,53 +26504,53 @@ i32.shl local.get $0 i32.add - local.tee $6 + local.tee $0 i32.load16_u - local.set $3 + local.set $7 loop $while-continue|3 - local.get $2 + local.get $11 local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $10 + local.get $9 i64.lt_u select if (result i32) i32.const 1 - local.get $10 + local.get $9 local.get $1 i64.sub local.get $1 - local.get $2 + local.get $11 i64.add - local.tee $7 - local.get $10 + local.tee $2 + local.get $9 i64.sub i64.gt_u - local.get $7 - local.get $10 + local.get $2 + local.get $9 i64.lt_u select else i32.const 0 end if - local.get $3 + local.get $7 i32.const 1 i32.sub - local.set $3 + local.set $7 local.get $1 - local.get $2 + local.get $11 i64.add local.set $1 br $while-continue|3 end end - local.get $6 - local.get $3 + local.get $0 + local.get $7 i32.store16 local.get $5 return @@ -27105,19 +26558,19 @@ br $while-continue|0 end end - loop $while-continue|4 + loop $while-continue|4 (result i32) local.get $4 i64.const 10 i64.mul local.set $4 - local.get $7 + local.get $8 i64.const 10 i64.mul - local.tee $1 - local.get $11 + local.tee $2 + local.get $12 i64.extend_i32_s i64.shr_u - local.tee $2 + local.tee $1 local.get $5 i64.extend_i32_s i64.or @@ -27134,7 +26587,7 @@ i32.shl local.get $0 i32.add - local.get $2 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -27142,97 +26595,95 @@ i32.add i32.store16 end - local.get $9 + local.get $10 i32.const 1 i32.sub - local.set $9 - local.get $4 - local.get $1 + local.set $10 + local.get $2 local.get $13 i64.and - local.tee $7 - i64.le_u - br_if $while-continue|4 - end - local.get $9 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $7 - local.set $1 - i32.const 0 - local.get $9 - i32.sub - i32.const 2 - i32.shl - i32.const 10736 - i32.add - i64.load32_u - local.get $10 - i64.mul - local.set $2 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - local.get $0 - i32.add - local.tee $6 - i32.load16_u - local.set $3 - loop $while-continue|6 - local.get $12 + local.tee $8 local.get $4 - local.get $1 - i64.sub - i64.le_u + i64.ge_u + br_if $while-continue|4 + local.get $10 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $8 + local.set $1 i32.const 0 - local.get $1 - local.get $2 - i64.lt_u - select - if (result i32) - i32.const 1 - local.get $2 - local.get $1 - i64.sub + local.get $10 + i32.sub + i32.const 2 + i32.shl + i32.const 10736 + i32.add + i64.load32_u + local.get $9 + i64.mul + local.set $9 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|6 + local.get $11 + local.get $4 local.get $1 - local.get $12 - i64.add - local.tee $7 - local.get $2 i64.sub - i64.gt_u - local.get $2 - local.get $7 - i64.gt_u - select - else + i64.le_u i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.sub - local.set $3 local.get $1 - local.get $12 - i64.add - local.set $1 - br $while-continue|6 + local.get $9 + i64.lt_u + select + if (result i32) + i32.const 1 + local.get $9 + local.get $1 + i64.sub + local.get $1 + local.get $11 + i64.add + local.tee $2 + local.get $9 + i64.sub + i64.gt_u + local.get $2 + local.get $9 + i64.lt_u + select + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $11 + i64.add + local.set $1 + br $while-continue|6 + end end + local.get $0 + local.get $7 + i32.store16 + local.get $5 end - local.get $6 - local.get $3 - i32.store16 - local.get $5 ) (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) local.get $2 i32.eqz if @@ -27333,7 +26784,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $5 + local.tee $2 i32.const 1 i32.shl local.get $0 @@ -27347,28 +26798,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $2 + local.set $4 loop $for-loop|1 local.get $2 - local.get $5 - i32.lt_s + local.get $4 + i32.gt_s if - local.get $2 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|1 end end local.get $1 - local.get $5 + local.get $2 i32.add else local.get $1 @@ -27396,6 +26847,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -27442,12 +26894,9 @@ i32.add end end - local.set $1 - local.get $0 - local.get $1 i32.const 1 i32.add - local.tee $0 + local.tee $1 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -27455,7 +26904,7 @@ local.get $2 select i32.store16 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.add else @@ -27491,7 +26940,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -27499,6 +26948,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -27545,21 +26995,18 @@ i32.add end end - local.set $2 - local.get $0 - local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $2 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select i32.store16 offset=4 - local.get $0 local.get $1 + local.get $2 i32.add i32.const 2 i32.add @@ -27929,39 +27376,37 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinFloatArray - local.get $1 + block $__inlined_func$~lib/util/string/joinFloatArray (result i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $2 + local.tee $4 i32.const 0 i32.lt_s if @@ -27970,27 +27415,26 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end block $folding-inner0 - local.get $2 + local.get $4 i32.eqz if - local.get $3 + local.get $1 f32.load f64.promote_f32 call $~lib/util/number/dtoa - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 28 i32.add i32.mul @@ -28001,22 +27445,22 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $4 + i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $5 + local.get $3 i32.const 2 i32.shl - local.get $3 + local.get $1 i32.add f32.load f64.promote_f32 @@ -28024,27 +27468,27 @@ local.get $0 i32.add local.set $0 - local.get $4 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 9584 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $5 i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end @@ -28052,41 +27496,40 @@ local.get $0 i32.const 1 i32.shl - local.get $1 - i32.add local.get $2 + i32.add + local.get $4 i32.const 2 i32.shl - local.get $3 + local.get $1 i32.add f32.load f64.promote_f32 call $~lib/util/number/dtoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $1 i32.gt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/typedarray/Float64Array#join (param $0 i32) (result i32) (local $1 i32) @@ -28095,39 +27538,37 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $1 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinFloatArray - local.get $1 + block $__inlined_func$~lib/util/string/joinFloatArray (result i32) + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store i32.const 1 i32.sub - local.tee $2 + local.tee $4 i32.const 0 i32.lt_s if @@ -28136,26 +27577,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end block $folding-inner0 - local.get $2 + local.get $4 i32.eqz if - local.get $3 + local.get $1 f64.load call $~lib/util/number/dtoa - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $4 + local.tee $5 i32.const 28 i32.add i32.mul @@ -28166,49 +27606,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $for-loop|0 - local.get $2 - local.get $5 - i32.gt_s + local.get $3 + local.get $4 + i32.lt_s if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $5 + local.get $3 i32.const 3 i32.shl - local.get $3 + local.get $1 i32.add f64.load call $~lib/util/number/dtoa_buffered local.get $0 i32.add local.set $0 - local.get $4 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.const 9584 - local.get $4 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $4 + local.get $5 i32.add local.set $0 end - local.get $5 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|0 end end @@ -28216,40 +27656,39 @@ local.get $0 i32.const 1 i32.shl - local.get $1 - i32.add local.get $2 + i32.add + local.get $4 i32.const 3 i32.shl - local.get $3 + local.get $1 i32.add f64.load call $~lib/util/number/dtoa_buffered local.get $0 i32.add - local.tee $0 + local.tee $1 i32.gt_s if + local.get $2 local.get $1 - local.get $0 call $~lib/string/String#substring - local.set $0 + local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 + local.get $2 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -28271,6 +27710,8 @@ i32.const -1 local.set $3 end + local.get $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28290,11 +27731,11 @@ i32.const 0 i32.store local.get $1 - local.get $0 + local.get $2 i32.const 20 i32.sub i32.load offset=16 - local.tee $2 + local.tee $0 i32.gt_u if i32.const 1360 @@ -28312,7 +27753,7 @@ i32.const -1 i32.eq if (result i32) - local.get $2 + local.get $0 local.get $1 i32.sub else @@ -28325,7 +27766,7 @@ end local.set $3 else - local.get $2 + local.get $0 local.get $1 local.get $3 i32.add @@ -28343,27 +27784,27 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 - i32.store local.get $2 + i32.store local.get $0 - call $~lib/rt/itcms/__link local.get $2 + call $~lib/rt/itcms/__link + local.get $0 local.get $3 i32.store offset=8 - local.get $2 local.get $0 local.get $1 + local.get $2 i32.add i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (local $1 i32) @@ -30015,12 +29456,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $10 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $7 i32.add local.set $11 i32.const 0 @@ -30045,17 +29496,27 @@ end end local.get $1 - call $~lib/rt/tlsf/__alloc + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 - local.get $1 + local.get $5 i32.const 1 i32.sub local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -30070,26 +29531,26 @@ i32.const 31 i32.lt_s select - local.tee $7 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $6 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $7 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $6 + local.get $7 i32.sub i32.const 1 i32.add @@ -30098,9 +29559,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $7 local.get $9 - local.get $6 + local.get $7 i32.const 31 i32.add local.tee $1 @@ -30114,7 +29575,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 @@ -30126,7 +29587,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $6 + local.get $7 i32.add i32.const 1 i32.add @@ -30167,7 +29628,7 @@ i32.load i32.const 1 i32.add - local.get $7 + local.get $6 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -30197,12 +29658,12 @@ local.get $4 local.get $11 i32.add - local.get $7 - i32.store local.get $6 + i32.store + local.get $7 local.set $3 local.get $5 - local.set $7 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -30782,12 +30243,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $10 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $7 i32.add local.set $11 i32.const 0 @@ -30812,17 +30283,27 @@ end end local.get $1 - call $~lib/rt/tlsf/__alloc + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 - local.get $1 + local.get $5 i32.const 1 i32.sub local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -30837,26 +30318,26 @@ i32.const 31 i32.lt_s select - local.tee $7 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $6 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $7 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $6 + local.get $7 i32.sub i32.const 1 i32.add @@ -30865,9 +30346,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $7 local.get $9 - local.get $6 + local.get $7 i32.const 31 i32.add local.tee $1 @@ -30881,7 +30362,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 @@ -30893,7 +30374,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $6 + local.get $7 i32.add i32.const 1 i32.add @@ -30934,7 +30415,7 @@ i32.load i32.const 1 i32.add - local.get $7 + local.get $6 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -30964,12 +30445,12 @@ local.get $4 local.get $11 i32.add - local.get $7 - i32.store local.get $6 + i32.store + local.get $7 local.set $3 local.get $5 - local.set $7 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -31600,12 +31081,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $10 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $7 i32.add local.set $11 i32.const 0 @@ -31632,7 +31123,17 @@ local.get $1 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -31642,7 +31143,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -31657,26 +31158,26 @@ i32.const 31 i32.lt_s select - local.tee $7 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $6 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $7 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $6 + local.get $7 i32.sub i32.const 1 i32.add @@ -31685,9 +31186,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $7 local.get $9 - local.get $6 + local.get $7 i32.const 31 i32.add local.tee $1 @@ -31701,7 +31202,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 @@ -31713,7 +31214,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $6 + local.get $7 i32.add i32.const 1 i32.add @@ -31754,7 +31255,7 @@ i32.load i32.const 1 i32.add - local.get $7 + local.get $6 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -31784,12 +31285,12 @@ local.get $4 local.get $11 i32.add - local.get $7 - i32.store local.get $6 + i32.store + local.get $7 local.set $3 local.get $5 - local.set $7 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -32410,12 +31911,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $10 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $7 i32.add local.set $11 i32.const 0 @@ -32442,7 +31953,17 @@ local.get $1 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -32452,7 +31973,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -32467,26 +31988,26 @@ i32.const 31 i32.lt_s select - local.tee $7 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $6 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $7 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $6 + local.get $7 i32.sub i32.const 1 i32.add @@ -32495,9 +32016,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $7 local.get $9 - local.get $6 + local.get $7 i32.const 31 i32.add local.tee $1 @@ -32511,7 +32032,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 @@ -32523,7 +32044,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $6 + local.get $7 i32.add i32.const 1 i32.add @@ -32564,7 +32085,7 @@ i32.load i32.const 1 i32.add - local.get $7 + local.get $6 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -32594,12 +32115,12 @@ local.get $4 local.get $11 i32.add - local.get $7 - i32.store local.get $6 + i32.store + local.get $7 local.set $3 local.get $5 - local.set $7 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -33230,12 +32751,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $10 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $7 i32.add local.set $11 i32.const 0 @@ -33262,7 +32793,17 @@ local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -33272,7 +32813,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -33287,26 +32828,26 @@ i32.const 31 i32.lt_s select - local.tee $7 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $6 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $7 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $6 + local.get $7 i32.sub i32.const 1 i32.add @@ -33315,9 +32856,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $7 local.get $9 - local.get $6 + local.get $7 i32.const 31 i32.add local.tee $1 @@ -33331,7 +32872,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 @@ -33343,7 +32884,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $6 + local.get $7 i32.add i32.const 1 i32.add @@ -33384,7 +32925,7 @@ i32.load i32.const 1 i32.add - local.get $7 + local.get $6 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -33414,12 +32955,12 @@ local.get $4 local.get $11 i32.add - local.get $7 - i32.store local.get $6 + i32.store + local.get $7 local.set $3 local.get $5 - local.set $7 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -34034,12 +33575,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $10 + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $10 + local.get $7 i32.add local.set $11 i32.const 0 @@ -34066,7 +33617,17 @@ local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $12 local.get $0 i32.const 0 @@ -34076,7 +33637,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $7 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -34091,26 +33652,26 @@ i32.const 31 i32.lt_s select - local.tee $7 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $7 + local.get $6 local.get $9 i32.lt_s if local.get $0 - local.get $7 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $7 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $6 + local.get $7 i32.sub i32.const 1 i32.add @@ -34119,9 +33680,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $7 local.get $9 - local.get $6 + local.get $7 i32.const 31 i32.add local.tee $1 @@ -34135,7 +33696,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $7 i32.add i64.extend_i32_u i64.const 30 @@ -34147,7 +33708,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $6 + local.get $7 i32.add i32.const 1 i32.add @@ -34188,7 +33749,7 @@ i32.load i32.const 1 i32.add - local.get $7 + local.get $6 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -34218,12 +33779,12 @@ local.get $4 local.get $11 i32.add - local.get $7 - i32.store local.get $6 + i32.store + local.get $7 local.set $3 local.get $5 - local.set $7 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -34846,12 +34407,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $11 + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + local.get $5 i32.add local.set $10 i32.const 0 @@ -34878,7 +34449,17 @@ local.get $1 i32.const 3 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $9 local.get $0 i32.const 0 @@ -34888,7 +34469,7 @@ local.tee $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -34903,26 +34484,26 @@ i32.const 31 i32.lt_s select - local.tee $5 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 + local.get $6 local.get $12 i32.lt_s if local.get $0 - local.get $5 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $5 local.get $12 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $6 + local.get $5 i32.sub i32.const 1 i32.add @@ -34931,9 +34512,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $5 local.get $12 - local.get $6 + local.get $5 i32.const 31 i32.add local.tee $1 @@ -34947,7 +34528,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $5 i32.add i64.extend_i32_u i64.const 30 @@ -34958,7 +34539,7 @@ i64.extend_i32_u local.tee $14 i64.div_u - local.get $6 + local.get $5 local.get $7 i32.add i32.const 1 @@ -35000,7 +34581,7 @@ i32.load i32.const 1 i32.add - local.get $5 + local.get $6 local.get $9 local.get $2 call $~lib/util/sort/mergeRuns @@ -35030,12 +34611,12 @@ local.get $4 local.get $10 i32.add - local.get $5 - i32.store local.get $6 + i32.store + local.get $5 local.set $3 local.get $7 - local.set $5 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -35658,12 +35239,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $11 + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $11 + local.get $5 i32.add local.set $10 i32.const 0 @@ -35690,7 +35281,17 @@ local.get $1 i32.const 3 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $9 local.get $0 i32.const 0 @@ -35700,7 +35301,7 @@ local.tee $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -35715,26 +35316,26 @@ i32.const 31 i32.lt_s select - local.tee $5 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 + local.get $6 local.get $12 i32.lt_s if local.get $0 - local.get $5 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $5 local.get $12 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $6 + local.get $5 i32.sub i32.const 1 i32.add @@ -35743,9 +35344,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $5 local.get $12 - local.get $6 + local.get $5 i32.const 31 i32.add local.tee $1 @@ -35759,7 +35360,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $5 i32.add i64.extend_i32_u i64.const 30 @@ -35770,7 +35371,7 @@ i64.extend_i32_u local.tee $14 i64.div_u - local.get $6 + local.get $5 local.get $7 i32.add i32.const 1 @@ -35812,7 +35413,7 @@ i32.load i32.const 1 i32.add - local.get $5 + local.get $6 local.get $9 local.get $2 call $~lib/util/sort/mergeRuns @@ -35842,12 +35443,12 @@ local.get $4 local.get $10 i32.add - local.get $5 - i32.store local.get $6 + i32.store + local.get $5 local.set $3 local.get $7 - local.set $5 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -36471,12 +36072,22 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - call $~lib/rt/tlsf/__alloc - local.tee $12 + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $12 + local.get $5 i32.add local.set $11 i32.const 0 @@ -36503,7 +36114,17 @@ local.get $1 i32.const 2 i32.shl - call $~lib/rt/tlsf/__alloc + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add local.set $10 local.get $0 i32.const 0 @@ -36513,7 +36134,7 @@ local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $5 + local.tee $6 i32.const 1 i32.add local.tee $1 @@ -36528,26 +36149,26 @@ i32.const 31 i32.lt_s select - local.tee $5 + local.tee $6 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $5 + local.get $6 local.get $13 i32.lt_s if local.get $0 - local.get $5 + local.get $6 i32.const 1 i32.add - local.tee $6 + local.tee $5 local.get $13 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $6 + local.get $5 i32.sub i32.const 1 i32.add @@ -36556,9 +36177,9 @@ i32.lt_s if local.get $0 - local.get $6 + local.get $5 local.get $13 - local.get $6 + local.get $5 i32.const 31 i32.add local.tee $1 @@ -36572,7 +36193,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $6 + local.get $5 i32.add i64.extend_i32_u i64.const 30 @@ -36583,7 +36204,7 @@ i64.extend_i32_u local.tee $9 i64.div_u - local.get $6 + local.get $5 local.get $7 i32.add i32.const 1 @@ -36625,7 +36246,7 @@ i32.load i32.const 1 i32.add - local.get $5 + local.get $6 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns @@ -36655,12 +36276,12 @@ local.get $4 local.get $11 i32.add - local.get $5 - i32.store local.get $6 + i32.store + local.get $5 local.set $3 local.get $7 - local.set $5 + local.set $6 local.get $1 local.set $4 br $while-continue|2 @@ -36803,12 +36424,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -36823,25 +36443,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Int8Array#__set @@ -36858,13 +36478,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -36876,16 +36496,16 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 i32.lt_s if local.get $4 - local.get $9 + local.get $8 i32.add i32.load8_s local.set $7 @@ -36893,17 +36513,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 3952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.tee $3 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $3 + local.get $0 local.get $6 i32.add local.get $7 @@ -36920,16 +36540,16 @@ local.get $6 local.get $2 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store local.get $1 - local.get $0 + local.get $3 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -37025,12 +36645,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -37045,25 +36664,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8Array#__set @@ -37080,13 +36699,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -37098,16 +36717,16 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 i32.lt_s if local.get $4 - local.get $9 + local.get $8 i32.add i32.load8_u local.set $7 @@ -37115,17 +36734,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 3984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.tee $3 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $3 + local.get $0 local.get $6 i32.add local.get $7 @@ -37142,16 +36761,16 @@ local.get $6 local.get $2 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store local.get $1 - local.get $0 + local.get $3 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -37247,12 +36866,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -37267,25 +36885,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set @@ -37302,13 +36920,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new @@ -37320,16 +36938,16 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 i32.lt_s if local.get $4 - local.get $9 + local.get $8 i32.add i32.load8_u local.set $7 @@ -37337,17 +36955,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 4016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.tee $3 + local.tee $0 i32.const 1 i32.add local.set $2 - local.get $3 + local.get $0 local.get $6 i32.add local.get $7 @@ -37364,16 +36982,16 @@ local.get $6 local.get $2 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store local.get $1 - local.get $0 + local.get $3 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $0 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -37469,12 +37087,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -37489,25 +37106,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Int16Array#__set @@ -37524,19 +37141,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -37546,9 +37163,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 @@ -37557,7 +37174,7 @@ local.get $4 i32.const 1 i32.shl - local.get $9 + local.get $8 i32.add i32.load16_s local.set $7 @@ -37565,17 +37182,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 4048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $3 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $2 - local.get $3 + local.set $1 + local.get $0 i32.const 1 i32.shl local.get $6 @@ -37590,29 +37207,29 @@ br $for-loop|0 end end - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.const 1 i32.shl - local.tee $2 + local.tee $1 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store - local.get $1 - local.get $0 + local.get $2 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 local.get $2 - i32.store offset=8 local.get $1 - local.get $0 + i32.store offset=8 + local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.tee $0 i32.store offset=8 local.get $0 @@ -37704,12 +37321,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -37724,25 +37340,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Uint16Array#__set @@ -37759,19 +37375,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -37781,9 +37397,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 @@ -37792,7 +37408,7 @@ local.get $4 i32.const 1 i32.shl - local.get $9 + local.get $8 i32.add i32.load16_u local.set $7 @@ -37800,17 +37416,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 4080 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $3 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $2 - local.get $3 + local.set $1 + local.get $0 i32.const 1 i32.shl local.get $6 @@ -37825,29 +37441,29 @@ br $for-loop|0 end end - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.const 1 i32.shl - local.tee $2 + local.tee $1 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store - local.get $1 - local.get $0 + local.get $2 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 local.get $2 - i32.store offset=8 local.get $1 - local.get $0 + i32.store offset=8 + local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.tee $0 i32.store offset=8 local.get $0 @@ -37939,12 +37555,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -37959,25 +37574,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Int32Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Int32Array#__set @@ -37994,19 +37609,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -38016,9 +37631,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 @@ -38027,7 +37642,7 @@ local.get $4 i32.const 2 i32.shl - local.get $9 + local.get $8 i32.add i32.load local.set $7 @@ -38035,17 +37650,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 4112 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $3 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $2 - local.get $3 + local.set $1 + local.get $0 i32.const 2 i32.shl local.get $6 @@ -38060,29 +37675,29 @@ br $for-loop|0 end end - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.const 2 i32.shl - local.tee $2 + local.tee $1 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store - local.get $1 - local.get $0 + local.get $2 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 local.get $2 - i32.store offset=8 local.get $1 - local.get $0 + i32.store offset=8 + local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.tee $0 i32.store offset=8 local.get $0 @@ -38174,12 +37789,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -38194,25 +37808,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $3 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $3 i32.const 5 i32.const 5 call $~lib/typedarray/Uint32Array#__set @@ -38229,19 +37843,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -38251,9 +37865,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 @@ -38262,7 +37876,7 @@ local.get $4 i32.const 2 i32.shl - local.get $9 + local.get $8 i32.add i32.load local.set $7 @@ -38270,17 +37884,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 4144 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $2 - local.tee $3 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $2 - local.get $3 + local.set $1 + local.get $0 i32.const 2 i32.shl local.get $6 @@ -38295,29 +37909,29 @@ br $for-loop|0 end end - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.const 2 i32.shl - local.tee $2 + local.tee $1 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store - local.get $1 - local.get $0 + local.get $2 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 local.get $2 - i32.store offset=8 local.get $1 - local.get $0 + i32.store offset=8 + local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.tee $0 i32.store offset=8 local.get $0 @@ -38409,12 +38023,11 @@ (local $6 i32) (local $7 i64) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -38429,25 +38042,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Int64Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $3 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $3 i32.const 5 i64.const 5 call $~lib/typedarray/Int64Array#__set @@ -38464,19 +38077,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -38486,9 +38099,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 @@ -38497,7 +38110,7 @@ local.get $4 i32.const 3 i32.shl - local.get $9 + local.get $8 i32.add i64.load local.set $7 @@ -38505,17 +38118,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 4176 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if - local.get $2 - local.tee $3 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $2 - local.get $3 + local.set $1 + local.get $0 i32.const 3 i32.shl local.get $6 @@ -38530,29 +38143,29 @@ br $for-loop|0 end end - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.const 3 i32.shl - local.tee $2 + local.tee $1 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store - local.get $1 - local.get $0 + local.get $2 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 local.get $2 - i32.store offset=8 local.get $1 - local.get $0 + i32.store offset=8 + local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.tee $0 i32.store offset=8 local.get $0 @@ -38644,12 +38257,11 @@ (local $6 i32) (local $7 i64) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -38664,25 +38276,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $3 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $3 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $3 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $3 i32.const 5 i64.const 5 call $~lib/typedarray/Uint64Array#__set @@ -38699,19 +38311,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -38721,9 +38333,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 @@ -38732,7 +38344,7 @@ local.get $4 i32.const 3 i32.shl - local.get $9 + local.get $8 i32.add i64.load local.set $7 @@ -38740,17 +38352,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 4208 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if - local.get $2 - local.tee $3 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $2 - local.get $3 + local.set $1 + local.get $0 i32.const 3 i32.shl local.get $6 @@ -38765,29 +38377,29 @@ br $for-loop|0 end end - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.const 3 i32.shl - local.tee $2 + local.tee $1 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store - local.get $1 - local.get $0 + local.get $2 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 local.get $2 - i32.store offset=8 local.get $1 - local.get $0 + i32.store offset=8 + local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.tee $0 i32.store offset=8 local.get $0 @@ -38879,12 +38491,11 @@ (local $6 i32) (local $7 f32) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -38899,25 +38510,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Float32Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $3 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $3 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $3 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $3 i32.const 5 f32.const 5 call $~lib/typedarray/Float32Array#__set @@ -38934,19 +38545,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -38956,9 +38567,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 @@ -38967,7 +38578,7 @@ local.get $4 i32.const 2 i32.shl - local.get $9 + local.get $8 i32.add f32.load local.set $7 @@ -38975,17 +38586,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 4240 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) if - local.get $2 - local.tee $3 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $2 - local.get $3 + local.set $1 + local.get $0 i32.const 2 i32.shl local.get $6 @@ -39000,29 +38611,29 @@ br $for-loop|0 end end - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.const 2 i32.shl - local.tee $2 + local.tee $1 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store - local.get $1 - local.get $0 + local.get $2 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 local.get $2 - i32.store offset=8 local.get $1 - local.get $0 + i32.store offset=8 + local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.tee $0 i32.store offset=8 local.get $0 @@ -39114,12 +38725,11 @@ (local $6 i32) (local $7 f64) (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -39134,25 +38744,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Float64Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $3 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $3 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $3 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $3 i32.const 5 f64.const 5 call $~lib/typedarray/Float64Array#__set @@ -39169,19 +38779,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u local.set $5 - local.get $1 + local.get $0 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -39191,9 +38801,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $0 + local.get $3 i32.load offset=4 - local.set $9 + local.set $8 loop $for-loop|0 local.get $4 local.get $5 @@ -39202,7 +38812,7 @@ local.get $4 i32.const 3 i32.shl - local.get $9 + local.get $8 i32.add f64.load local.set $7 @@ -39210,17 +38820,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $0 + local.get $3 i32.const 4272 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) if - local.get $2 - local.tee $3 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $2 - local.get $3 + local.set $1 + local.get $0 i32.const 3 i32.shl local.get $6 @@ -39235,29 +38845,29 @@ br $for-loop|0 end end - local.get $1 - local.get $6 local.get $2 + local.get $6 + local.get $1 i32.const 3 i32.shl - local.tee $2 + local.tee $1 call $~lib/rt/itcms/__renew - local.tee $0 + local.tee $3 i32.store - local.get $1 - local.get $0 + local.get $2 + local.get $3 call $~lib/rt/itcms/__link - local.get $1 local.get $2 - i32.store offset=8 local.get $1 - local.get $0 + i32.store offset=8 + local.get $2 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.tee $0 i32.store offset=8 local.get $0 @@ -39758,1736 +39368,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $2 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Int32Array#constructor - local.tee $5 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $5 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $6 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - i32.load - local.set $8 - local.get $7 - local.get $4 - local.get $0 - i32.sub - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - i32.load - i32.store - local.get $7 - local.get $8 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - call $~lib/typedarray/Int32Array#__get - i32.const 7616 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int32Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - i32.const 0 - local.set $2 - local.get $1 - i32.load offset=4 - local.set $5 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - i32.const 1 - i32.gt_u - if - local.get $3 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|01 - local.get $2 - local.get $4 - i32.lt_u - if - local.get $2 - i32.const 2 - i32.shl - local.get $5 - i32.add - local.tee $6 - i32.load - local.set $7 - local.get $6 - local.get $3 - local.get $2 - i32.sub - i32.const 2 - i32.shl - local.get $5 - i32.add - local.tee $6 - i32.load - i32.store - local.get $6 - local.get $7 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|01 - end - end - end - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - call $~lib/typedarray/Int32Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $2 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Uint32Array#constructor - local.tee $5 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $5 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $6 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - i32.load - local.set $8 - local.get $7 - local.get $4 - local.get $0 - i32.sub - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - i32.load - i32.store - local.get $7 - local.get $8 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - call $~lib/typedarray/Uint32Array#__get - i32.const 7616 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 8 - call $~lib/typedarray/Uint32Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - i32.const 0 - local.set $2 - local.get $1 - i32.load offset=4 - local.set $5 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - i32.const 1 - i32.gt_u - if - local.get $3 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|01 - local.get $2 - local.get $4 - i32.lt_u - if - local.get $2 - i32.const 2 - i32.shl - local.get $5 - i32.add - local.tee $6 - i32.load - local.set $7 - local.get $6 - local.get $3 - local.get $2 - i32.sub - i32.const 2 - i32.shl - local.get $5 - i32.add - local.tee $6 - i32.load - i32.store - local.get $6 - local.get $7 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|01 - end - end - end - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint32Array#__get - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $2 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Int64Array#constructor - local.tee $5 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $5 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $6 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $0 - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - i64.load - local.set $8 - local.get $7 - local.get $4 - local.get $0 - i32.sub - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - i64.load - i64.store - local.get $7 - local.get $8 - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - call $~lib/typedarray/Int64Array#__get - i32.const 7616 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 8 - call $~lib/typedarray/Int64Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - i32.const 0 - local.set $2 - local.get $1 - i32.load offset=4 - local.set $5 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - i32.const 1 - i32.gt_u - if - local.get $3 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|01 - local.get $2 - local.get $4 - i32.lt_u - if - local.get $2 - i32.const 3 - i32.shl - local.get $5 - i32.add - local.tee $6 - i64.load - local.set $8 - local.get $6 - local.get $3 - local.get $2 - i32.sub - i32.const 3 - i32.shl - local.get $5 - i32.add - local.tee $6 - i64.load - i64.store - local.get $6 - local.get $8 - i64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|01 - end - end - end - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 7 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 6 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $2 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Uint64Array#constructor - local.tee $5 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $5 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $6 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $0 - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - i64.load - local.set $8 - local.get $7 - local.get $4 - local.get $0 - i32.sub - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - i64.load - i64.store - local.get $7 - local.get $8 - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - call $~lib/typedarray/Uint64Array#__get - i32.const 7616 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 8 - call $~lib/typedarray/Uint64Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - i32.const 0 - local.set $2 - local.get $1 - i32.load offset=4 - local.set $5 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - i32.const 1 - i32.gt_u - if - local.get $3 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|01 - local.get $2 - local.get $4 - i32.lt_u - if - local.get $2 - i32.const 3 - i32.shl - local.get $5 - i32.add - local.tee $6 - i64.load - local.set $8 - local.get $6 - local.get $3 - local.get $2 - i32.sub - i32.const 3 - i32.shl - local.get $5 - i32.add - local.tee $6 - i64.load - i64.store - local.get $6 - local.get $8 - i64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|01 - end - end - end - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 7 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 6 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $2 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Float32Array#constructor - local.tee $5 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $5 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $6 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - f32.load - local.set $8 - local.get $7 - local.get $4 - local.get $0 - i32.sub - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - f32.load - f32.store - local.get $7 - local.get $8 - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - call $~lib/typedarray/Float32Array#__get - i32.const 7616 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 8 - call $~lib/typedarray/Float32Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - i32.const 0 - local.set $2 - local.get $1 - i32.load offset=4 - local.set $5 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 - i32.const 1 - i32.gt_u - if - local.get $3 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|01 - local.get $2 - local.get $4 - i32.lt_u - if - local.get $2 - i32.const 2 - i32.shl - local.get $5 - i32.add - local.tee $6 - f32.load - local.set $8 - local.get $6 - local.get $3 - local.get $2 - i32.sub - i32.const 2 - i32.shl - local.get $5 - i32.add - local.tee $6 - f32.load - f32.store - local.get $6 - local.get $8 - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|01 - end - end - end - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 7 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 6 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f64) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $2 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $~lib/typedarray/Float64Array#constructor - local.tee $5 - i32.store offset=8 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $5 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $6 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $0 - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - f64.load - local.set $8 - local.get $7 - local.get $4 - local.get $0 - i32.sub - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - f64.load - f64.store - local.get $7 - local.get $8 - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - call $~lib/typedarray/Float64Array#__get - i32.const 7616 - local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Float64Array#subarray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - i32.const 0 - local.set $2 - local.get $1 - i32.load offset=4 - local.set $5 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 - i32.const 1 - i32.gt_u - if - local.get $3 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - i32.const 1 - i32.sub - local.set $3 - loop $while-continue|01 - local.get $2 - local.get $4 - i32.lt_u - if - local.get $2 - i32.const 3 - i32.shl - local.get $5 - i32.add - local.tee $6 - f64.load - local.set $8 - local.get $6 - local.get $3 - local.get $2 - i32.sub - i32.const 3 - i32.shl - local.get $5 - i32.add - local.tee $6 - f64.load - f64.store - local.get $6 - local.get $8 - f64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|01 - end - end - end - local.get $1 - i32.store offset=16 - local.get $1 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 575 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 576 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 577 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -41616,116 +39496,117 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 + (local $7 f32) + (local $8 f64) + (local $9 i32) + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - i32.const 10 - i32.const 0 - i32.const 15 - i32.const 11312 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $0 - local.get $4 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 - block $folding-inner0 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 11312 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 local.get $0 + local.tee $1 i32.load offset=8 i32.const 11100 i32.load @@ -41733,38 +39614,38 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 3 i32.add - local.set $6 + local.set $1 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $4 + local.set $9 loop $for-loop|0 local.get $3 - local.get $4 + local.get $9 i32.lt_s if + local.get $1 local.get $3 - local.get $6 i32.add local.get $3 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $7 + local.get $7 f32.sub f32.const 0 f32.eq if (result i32) - local.get $8 + local.get $7 i32.trunc_f32_s else i32.const 0 @@ -41782,34 +39663,35 @@ i32.const 15 i32.const 11392 call $~lib/rt/__newArray - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=16 local.get $0 - local.get $3 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $0 - local.get $1 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 i32.const 15 i32.const 11424 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $1 + local.set $2 local.get $0 + local.tee $1 i32.load offset=8 i32.const 11196 i32.load @@ -41817,47 +39699,47 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 2 i32.add - local.set $4 + local.set $1 i32.const 11188 i32.load - local.set $6 + local.set $3 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 - local.get $1 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if local.get $1 - local.get $4 + local.get $2 i32.add - local.get $1 + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $3 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.sub f64.const 0 f64.eq if (result i32) - local.get $9 + local.get $8 i32.trunc_f64_s else i32.const 0 end i32.store8 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|04 end end @@ -41866,15 +39748,15 @@ i32.const 15 i32.const 11456 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -41884,17 +39766,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $0 i32.const 10 i32.const 0 i32.const 15 i32.const 11488 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 local.get $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -42006,116 +39888,117 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 + (local $7 f32) + (local $8 f64) + (local $9 i32) + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11520 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $0 - local.get $4 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 - block $folding-inner0 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11520 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 local.get $0 + local.tee $1 i32.load offset=8 i32.const 11100 i32.load @@ -42123,38 +40006,38 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 3 i32.add - local.set $6 + local.set $1 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $4 + local.set $9 loop $for-loop|0 local.get $3 - local.get $4 + local.get $9 i32.lt_s if + local.get $1 local.get $3 - local.get $6 i32.add local.get $3 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $7 + local.get $7 f32.sub f32.const 0 f32.eq if (result i32) - local.get $8 + local.get $7 i32.trunc_f32_u else i32.const 0 @@ -42172,34 +40055,35 @@ i32.const 63 i32.const 11600 call $~lib/rt/__newArray - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=16 local.get $0 - local.get $3 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $0 - local.get $1 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 i32.const 63 i32.const 11632 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $1 + local.set $2 local.get $0 + local.tee $1 i32.load offset=8 i32.const 11196 i32.load @@ -42207,47 +40091,47 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 2 i32.add - local.set $4 + local.set $1 i32.const 11188 i32.load - local.set $6 + local.set $3 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 - local.get $1 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if local.get $1 - local.get $4 + local.get $2 i32.add - local.get $1 + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $3 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.sub f64.const 0 f64.eq if (result i32) - local.get $9 + local.get $8 i32.trunc_f64_u else i32.const 0 end i32.store8 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|04 end end @@ -42256,15 +40140,15 @@ i32.const 63 i32.const 11664 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -42274,17 +40158,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> + local.get $0 i32.const 10 i32.const 0 i32.const 63 i32.const 11696 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 local.get $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -42397,105 +40281,106 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 f32) - (local $10 f64) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 + (local $8 f32) + (local $9 f64) + (local $10 i32) + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.store - local.get $3 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - block $folding-inner0 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 i32.const 11020 i32.load local.get $1 + local.tee $0 i32.load offset=8 i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 local.set $6 i32.const 11012 @@ -42503,39 +40388,39 @@ local.set $7 i32.const 11020 i32.load - local.set $8 - loop $for-loop|0 - local.get $0 - local.get $8 + local.set $10 + loop $for-loop|0 + local.get $3 + local.get $10 i32.lt_s if - local.get $0 + local.get $3 local.get $6 i32.add - i32.const 255 - local.get $0 + local.get $3 i32.const 2 i32.shl local.get $7 i32.add i32.load - local.tee $5 + local.tee $0 + i32.const 255 + local.get $0 i32.sub i32.const 31 i32.shr_s - local.get $5 i32.or - local.get $5 + local.get $0 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.and i32.store8 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end @@ -42555,8 +40440,9 @@ i32.const 11088 i32.store offset=16 i32.const 0 - local.set $0 + local.set $3 local.get $1 + local.tee $0 i32.load offset=8 i32.const 11100 i32.load @@ -42564,40 +40450,40 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.add - local.set $6 + local.set $0 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $8 + local.set $7 loop $for-loop|04 - local.get $0 - local.get $8 + local.get $3 + local.get $7 i32.lt_s if local.get $0 - local.get $6 + local.get $3 i32.add - local.get $0 + local.get $3 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) f32.const 0 f32.const 255 - local.get $9 + local.get $8 f32.min f32.max i32.trunc_f32_u @@ -42605,10 +40491,10 @@ i32.const 0 end i32.store8 - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|04 end end @@ -42625,7 +40511,7 @@ local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $1 - local.get $3 + local.get $2 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 10 @@ -42633,19 +40519,20 @@ i32.const 63 i32.const 11856 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $0 + local.set $2 local.get $1 + local.tee $0 i32.load offset=8 i32.const 11196 i32.load @@ -42653,40 +40540,40 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 2 i32.add - local.set $5 + local.set $0 i32.const 11188 i32.load - local.set $6 + local.set $3 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|08 - local.get $0 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if local.get $0 - local.get $5 + local.get $2 i32.add - local.get $0 + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $3 i32.add f64.load - local.tee $10 - local.get $10 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) f64.const 0 f64.const 255 - local.get $10 + local.get $9 f64.min f64.max i32.trunc_f64_u @@ -42694,10 +40581,10 @@ i32.const 0 end i32.store8 - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|08 end end @@ -42706,26 +40593,27 @@ i32.const 63 i32.const 11888 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $1 - local.get $2 + local.get $4 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $1 - local.get $4 + local.get $5 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 i32.const 0 - local.set $0 + local.set $2 local.get $1 + local.tee $0 i32.load offset=8 i32.const 11276 i32.load @@ -42733,61 +40621,61 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 7 i32.add - local.set $3 + local.set $4 i32.const 11268 i32.load - local.set $4 + local.set $5 i32.const 11276 i32.load - local.set $5 + local.set $3 loop $for-loop|012 - local.get $0 - local.get $5 + local.get $2 + local.get $3 i32.lt_s if - local.get $0 - local.get $3 - i32.add - i32.const 255 - local.get $0 + local.get $2 local.get $4 i32.add + local.get $2 + local.get $5 + i32.add i32.load8_s - local.tee $2 + local.tee $0 + i32.const 255 + local.get $0 i32.sub i32.const 31 i32.shr_s - local.get $2 i32.or - local.get $2 + local.get $0 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.and i32.store8 - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|012 end end + local.get $1 i32.const 10 i32.const 0 i32.const 63 i32.const 11920 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 local.get $1 - local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -42904,159 +40792,160 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 + (local $7 f32) + (local $8 f64) + (local $9 i32) + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - i32.const 10 - i32.const 1 - i32.const 64 - i32.const 11952 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $0 - local.get $4 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 - block $folding-inner0 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 11952 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 6 i32.add - local.set $6 + local.set $1 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $4 + local.set $9 loop $for-loop|0 local.get $3 - local.get $4 + local.get $9 i32.lt_s if local.get $3 i32.const 1 i32.shl - local.get $6 + local.get $1 i32.add local.get $3 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $7 + local.get $7 f32.sub f32.const 0 f32.eq if (result i32) - local.get $8 + local.get $7 i32.trunc_f32_s else i32.const 0 @@ -43074,86 +40963,87 @@ i32.const 64 i32.const 12048 call $~lib/rt/__newArray - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=16 local.get $0 - local.get $3 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $0 - local.get $1 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 i32.const 64 i32.const 12096 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $1 + local.set $2 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 4 i32.add - local.set $4 + local.set $1 i32.const 11188 i32.load - local.set $6 + local.set $3 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 - local.get $1 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if - local.get $1 + local.get $2 i32.const 1 i32.shl - local.get $4 - i32.add local.get $1 + i32.add + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $3 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.sub f64.const 0 f64.eq if (result i32) - local.get $9 + local.get $8 i32.trunc_f64_s else i32.const 0 end i32.store16 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|04 end end @@ -43162,15 +41052,15 @@ i32.const 64 i32.const 12144 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -43180,17 +41070,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $0 i32.const 10 i32.const 1 i32.const 64 i32.const 12192 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 local.get $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43307,159 +41197,160 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - i32.const 10 - i32.const 1 - i32.const 65 - i32.const 12240 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $0 - local.get $4 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + (local $7 f32) + (local $8 f64) + (local $9 i32) block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12240 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 6 i32.add - local.set $6 + local.set $1 i32.const 11092 i32.load - local.set $7 + local.set $6 i32.const 11100 i32.load - local.set $4 + local.set $9 loop $for-loop|0 local.get $3 - local.get $4 + local.get $9 i32.lt_s if local.get $3 i32.const 1 i32.shl - local.get $6 + local.get $1 i32.add local.get $3 i32.const 2 i32.shl - local.get $7 + local.get $6 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $7 + local.get $7 f32.sub f32.const 0 f32.eq if (result i32) - local.get $8 + local.get $7 i32.trunc_f32_u else i32.const 0 @@ -43477,86 +41368,87 @@ i32.const 65 i32.const 12336 call $~lib/rt/__newArray - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=16 local.get $0 - local.get $3 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $0 - local.get $1 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 i32.const 65 i32.const 12384 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $1 + local.set $2 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 4 i32.add - local.set $4 + local.set $1 i32.const 11188 i32.load - local.set $6 + local.set $3 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 - local.get $1 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if - local.get $1 + local.get $2 i32.const 1 i32.shl - local.get $4 - i32.add local.get $1 + i32.add + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $3 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.sub f64.const 0 f64.eq if (result i32) - local.get $9 + local.get $8 i32.trunc_f64_u else i32.const 0 end i32.store16 - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|04 end end @@ -43565,15 +41457,15 @@ i32.const 65 i32.const 12432 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -43583,17 +41475,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> + local.get $0 i32.const 10 i32.const 1 i32.const 65 i32.const 12480 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 local.get $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43710,171 +41602,172 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) + (local $7 f32) + (local $8 f64) + (local $9 i32) (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 12528 - call $~lib/rt/__newArray - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $0 - local.get $3 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 - block $folding-inner0 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12528 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 12 i32.add local.set $6 i32.const 11092 i32.load - local.set $7 + local.set $9 i32.const 11100 i32.load local.set $10 loop $for-loop|0 - local.get $4 + local.get $3 local.get $10 i32.lt_s if - local.get $7 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.tee $3 + local.tee $1 + local.get $9 i32.add f32.load - local.set $8 - local.get $3 + local.set $7 + local.get $1 local.get $6 i32.add - local.get $8 - local.get $8 + local.get $7 + local.get $7 f32.sub f32.const 0 f32.eq if (result i32) - local.get $8 + local.get $7 i32.trunc_f32_s else i32.const 0 end i32.store - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|0 end end @@ -43883,86 +41776,87 @@ i32.const 16 i32.const 12640 call $~lib/rt/__newArray - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=16 local.get $0 - local.get $4 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 - local.get $1 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 2 i32.const 16 i32.const 12704 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $1 + local.set $2 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 8 i32.add - local.set $3 + local.set $1 i32.const 11188 i32.load - local.set $6 + local.set $3 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 - local.get $1 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if - local.get $1 + local.get $2 i32.const 2 i32.shl - local.get $3 - i32.add local.get $1 + i32.add + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $3 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.sub f64.const 0 f64.eq if (result i32) - local.get $9 + local.get $8 i32.trunc_f64_s else i32.const 0 end i32.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|04 end end @@ -43971,15 +41865,15 @@ i32.const 16 i32.const 12768 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -43989,17 +41883,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $0 i32.const 10 i32.const 2 i32.const 16 i32.const 12832 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 local.get $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44116,171 +42010,172 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 f32) - (local $9 f64) + (local $7 f32) + (local $8 f64) + (local $9 i32) (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 66 - i32.const 12896 - call $~lib/rt/__newArray - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=16 - local.get $0 - local.get $3 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 12896 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 12 i32.add local.set $6 i32.const 11092 i32.load - local.set $7 + local.set $9 i32.const 11100 i32.load local.set $10 loop $for-loop|0 - local.get $4 + local.get $3 local.get $10 i32.lt_s if - local.get $7 - local.get $4 + local.get $3 i32.const 2 i32.shl - local.tee $3 + local.tee $1 + local.get $9 i32.add f32.load - local.set $8 - local.get $3 + local.set $7 + local.get $1 local.get $6 i32.add - local.get $8 - local.get $8 + local.get $7 + local.get $7 f32.sub f32.const 0 f32.eq if (result i32) - local.get $8 + local.get $7 i32.trunc_f32_u else i32.const 0 end i32.store - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|0 end end @@ -44289,86 +42184,87 @@ i32.const 66 i32.const 13008 call $~lib/rt/__newArray - local.set $4 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=16 local.get $0 - local.get $4 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 - local.get $1 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 2 i32.const 66 i32.const 13072 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $1 + local.set $2 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 8 i32.add - local.set $3 + local.set $1 i32.const 11188 i32.load - local.set $6 + local.set $3 i32.const 11196 i32.load - local.set $7 + local.set $6 loop $for-loop|04 - local.get $1 - local.get $7 + local.get $2 + local.get $6 i32.lt_s if - local.get $1 + local.get $2 i32.const 2 i32.shl - local.get $3 - i32.add local.get $1 + i32.add + local.get $2 i32.const 3 i32.shl - local.get $6 + local.get $3 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.sub f64.const 0 f64.eq if (result i32) - local.get $9 + local.get $8 i32.trunc_f64_u else i32.const 0 end i32.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|04 end end @@ -44377,15 +42273,15 @@ i32.const 66 i32.const 13136 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 - local.get $2 + local.get $4 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -44395,17 +42291,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> + local.get $0 i32.const 10 i32.const 2 i32.const 66 i32.const 13200 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 local.get $0 - local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44526,127 +42422,128 @@ (local $7 i32) (local $8 f64) (local $9 f32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - i32.const 10 - i32.const 3 - i32.const 67 - i32.const 13264 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $0 - local.get $4 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 - block $folding-inner0 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13264 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 24 i32.add - local.set $4 + local.set $1 i32.const 11092 i32.load local.set $6 @@ -44654,16 +42551,16 @@ i32.load local.set $7 loop $for-loop|0 - local.get $2 + local.get $3 local.get $7 i32.lt_s if - local.get $2 + local.get $3 i32.const 3 i32.shl - local.get $4 + local.get $1 i32.add - local.get $2 + local.get $3 i32.const 2 i32.shl local.get $6 @@ -44681,10 +42578,10 @@ i64.const 0 end i64.store - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end @@ -44693,68 +42590,69 @@ i32.const 67 i32.const 13424 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $0 - local.get $1 + local.get $2 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 3 i32.const 67 i32.const 13536 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $1 + local.set $2 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 16 i32.add - local.set $2 + local.set $1 i32.const 11188 i32.load - local.set $4 + local.set $3 i32.const 11196 i32.load local.set $6 loop $for-loop|04 - local.get $1 + local.get $2 local.get $6 i32.lt_s if - local.get $4 - local.get $1 + local.get $2 i32.const 3 i32.shl local.tee $7 + local.get $3 i32.add f64.load local.set $8 - local.get $2 + local.get $1 local.get $7 i32.add local.get $8 @@ -44769,10 +42667,10 @@ i64.const 0 end i64.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|04 end end @@ -44781,15 +42679,15 @@ i32.const 67 i32.const 13648 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $0 - local.get $3 + local.get $4 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -44799,17 +42697,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $0 i32.const 10 i32.const 3 i32.const 67 i32.const 13760 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=16 local.get $0 - local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44899,158 +42797,159 @@ f64.convert_i64_u f64.const 0 f64.const 0 - call $~lib/builtins/trace - i32.const 0 - i32.const 1568 - i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 f64) - (local $9 f32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13872 - call $~lib/rt/__newArray - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=16 - local.get $0 - local.get $4 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + call $~lib/builtins/trace + i32.const 0 + i32.const 1568 + i32.const 764 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + (local $9 f32) block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 + i32.store + local.get $2 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $2 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $4 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13872 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $0 + local.get $1 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 24 i32.add - local.set $4 + local.set $1 i32.const 11092 i32.load local.set $6 @@ -45058,16 +42957,16 @@ i32.load local.set $7 loop $for-loop|0 - local.get $2 + local.get $3 local.get $7 i32.lt_s if - local.get $2 + local.get $3 i32.const 3 i32.shl - local.get $4 + local.get $1 i32.add - local.get $2 + local.get $3 i32.const 2 i32.shl local.get $6 @@ -45085,10 +42984,10 @@ i64.const 0 end i64.store - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end @@ -45097,68 +42996,69 @@ i32.const 68 i32.const 14032 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $0 - local.get $1 + local.get $2 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 3 i32.const 68 i32.const 14144 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $1 + local.set $2 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 16 i32.add - local.set $2 + local.set $1 i32.const 11188 i32.load - local.set $4 + local.set $3 i32.const 11196 i32.load local.set $6 loop $for-loop|04 - local.get $1 + local.get $2 local.get $6 i32.lt_s if - local.get $4 - local.get $1 + local.get $2 i32.const 3 i32.shl local.tee $7 + local.get $3 i32.add f64.load local.set $8 - local.get $2 + local.get $1 local.get $7 i32.add local.get $8 @@ -45173,10 +43073,10 @@ i64.const 0 end i64.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|04 end end @@ -45185,15 +43085,15 @@ i32.const 68 i32.const 14256 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $0 - local.get $3 + local.get $4 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -45203,17 +43103,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> + local.get $0 i32.const 10 i32.const 3 i32.const 68 i32.const 14368 call $~lib/rt/__newArray - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=16 local.get $0 - local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -45333,98 +43233,99 @@ (local $6 i32) (local $7 i32) (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $1 i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $3 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.store - local.get $3 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - block $folding-inner0 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 i32.const 11020 i32.load - local.get $2 + local.get $0 + local.tee $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -45432,7 +43333,7 @@ br_if $folding-inner0 local.get $2 i32.load offset=4 - local.set $5 + local.set $2 i32.const 11012 i32.load local.set $6 @@ -45440,15 +43341,15 @@ i32.load local.set $7 loop $for-loop|0 - local.get $0 + local.get $4 local.get $7 i32.lt_s if - local.get $0 + local.get $4 i32.const 2 i32.shl local.tee $8 - local.get $5 + local.get $2 i32.add local.get $6 local.get $8 @@ -45456,10 +43357,10 @@ i32.load f32.convert_i32_s f32.store - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|0 end end @@ -45468,17 +43369,17 @@ i32.const 61 i32.const 14480 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $2 + i32.store offset=16 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - local.get $2 + local.get $0 i32.const 11088 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -45487,22 +43388,24 @@ i32.const 61 i32.const 14592 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $2 + i32.store offset=16 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $0 - local.get $3 + local.set $6 + local.get $1 + local.tee $4 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $2 + local.get $0 + local.tee $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -45512,37 +43415,37 @@ i32.load offset=4 i32.const 24 i32.add - local.set $5 - local.get $3 + local.set $2 + local.get $4 i32.load offset=4 - local.set $6 - local.get $3 + local.set $1 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 + local.set $4 loop $for-loop|01 - local.get $0 - local.get $3 - i32.lt_s + local.get $4 + local.get $6 + i32.gt_s if - local.get $0 + local.get $6 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add - local.get $0 + local.get $6 i32.const 3 i32.shl - local.get $6 + local.get $1 i32.add i64.load f32.convert_i64_s f32.store - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $0 + local.set $6 br $for-loop|01 end end @@ -45551,104 +43454,108 @@ i32.const 61 i32.const 14656 call $~lib/rt/__newArray - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=16 - local.get $2 - local.get $3 + local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $0 - local.get $1 + local.set $4 + local.get $3 + local.tee $2 i32.load offset=8 - local.get $2 + local.get $0 + local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 + local.get $1 + i32.load offset=4 + local.set $1 local.get $2 i32.load offset=4 local.set $3 - local.get $1 - i32.load offset=4 - local.set $5 - local.get $1 + local.get $2 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|03 - local.get $0 - local.get $1 - i32.lt_s + local.get $2 + local.get $4 + i32.gt_s if - local.get $0 + local.get $4 i32.const 2 i32.shl - local.get $3 + local.get $1 i32.add - local.get $0 - local.get $5 + local.get $3 + local.get $4 i32.add i32.load8_u f32.convert_i32_u f32.store - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|03 end end i32.const 0 - local.set $1 - local.get $4 + local.set $2 + local.get $5 + local.tee $3 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $2 + local.get $0 + local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 16 i32.add - local.set $3 - local.get $4 + local.set $1 + local.get $3 i32.load offset=4 - local.set $0 - local.get $4 + local.set $5 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $4 + local.set $3 loop $for-loop|05 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.lt_s if - local.get $1 + local.get $2 i32.const 2 i32.shl - local.get $3 - i32.add local.get $1 + i32.add + local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $5 i32.add i32.load16_s f32.convert_i32_s f32.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|05 end end @@ -45656,62 +43563,63 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $1 + local.set $3 i32.const 11276 i32.load i32.const 7 i32.add - local.get $2 + local.get $0 + local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 28 i32.add - local.set $3 + local.set $1 i32.const 11268 i32.load - local.set $4 + local.set $5 i32.const 11276 i32.load - local.set $0 + local.set $2 loop $for-loop|09 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.gt_s if - local.get $1 + local.get $3 i32.const 2 i32.shl - local.get $3 - i32.add local.get $1 - local.get $4 + i32.add + local.get $3 + local.get $5 i32.add i32.load8_s f32.convert_i32_s f32.store - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|09 end end + local.get $0 i32.const 10 i32.const 2 i32.const 61 i32.const 14720 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $2 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -45828,98 +43736,99 @@ (local $5 i32) (local $6 i32) (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $1 i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $3 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i64.const 0 - i64.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=16 - local.get $2 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 - i32.store - local.get $3 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $3 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 - i32.store offset=8 - local.get $4 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $4 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - block $folding-inner0 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 i32.const 11020 i32.load - local.get $2 + local.get $0 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -45927,7 +43836,7 @@ br_if $folding-inner0 local.get $2 i32.load offset=4 - local.set $5 + local.set $2 i32.const 11012 i32.load local.set $6 @@ -45935,16 +43844,16 @@ i32.load local.set $7 loop $for-loop|0 - local.get $0 + local.get $4 local.get $7 i32.lt_s if - local.get $0 + local.get $4 i32.const 3 i32.shl - local.get $5 + local.get $2 i32.add - local.get $0 + local.get $4 i32.const 2 i32.shl local.get $6 @@ -45952,10 +43861,10 @@ i32.load f64.convert_i32_s f64.store - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|0 end end @@ -45964,23 +43873,24 @@ i32.const 62 i32.const 14784 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $2 + i32.store offset=16 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 i32.const 0 - local.set $0 + local.set $4 i32.const 11100 i32.load i32.const 3 i32.add - local.get $2 + local.get $0 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -45990,7 +43900,7 @@ i32.load offset=4 i32.const 24 i32.add - local.set $5 + local.set $2 i32.const 11092 i32.load local.set $6 @@ -45998,16 +43908,16 @@ i32.load local.set $7 loop $for-loop|04 - local.get $0 + local.get $4 local.get $7 i32.lt_s if - local.get $0 + local.get $4 i32.const 3 i32.shl - local.get $5 + local.get $2 i32.add - local.get $0 + local.get $4 i32.const 2 i32.shl local.get $6 @@ -46015,10 +43925,10 @@ f32.load f64.promote_f32 f64.store - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|04 end end @@ -46027,22 +43937,24 @@ i32.const 62 i32.const 14944 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 local.get $2 + i32.store offset=16 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 - local.set $0 - local.get $3 + local.set $6 + local.get $1 + local.tee $4 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $2 + local.get $0 + local.tee $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -46052,36 +43964,36 @@ i32.load offset=4 i32.const 48 i32.add - local.set $5 - local.get $3 + local.set $2 + local.get $4 i32.load offset=4 - local.set $6 - local.get $3 + local.set $1 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 + local.set $4 loop $for-loop|06 - local.get $0 - local.get $3 - i32.lt_s + local.get $4 + local.get $6 + i32.gt_s if - local.get $5 - local.get $0 + local.get $6 i32.const 3 i32.shl local.tee $7 + local.get $2 i32.add - local.get $6 + local.get $1 local.get $7 i32.add i64.load f64.convert_i64_s f64.store - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $0 + local.set $6 br $for-loop|06 end end @@ -46090,104 +44002,108 @@ i32.const 62 i32.const 15056 call $~lib/rt/__newArray - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.store offset=16 - local.get $2 - local.get $3 + local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 - local.set $0 - local.get $1 + local.set $4 + local.get $3 + local.tee $2 i32.load offset=8 - local.get $2 + local.get $0 + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 + local.get $1 + i32.load offset=4 + local.set $1 local.get $2 i32.load offset=4 local.set $3 - local.get $1 - i32.load offset=4 - local.set $5 - local.get $1 + local.get $2 i32.load offset=8 - local.set $1 + local.set $2 loop $for-loop|08 - local.get $0 - local.get $1 - i32.lt_s + local.get $2 + local.get $4 + i32.gt_s if - local.get $0 + local.get $4 i32.const 3 i32.shl - local.get $3 + local.get $1 i32.add - local.get $0 - local.get $5 + local.get $3 + local.get $4 i32.add i32.load8_u f64.convert_i32_u f64.store - local.get $0 + local.get $4 i32.const 1 i32.add - local.set $0 + local.set $4 br $for-loop|08 end end i32.const 0 - local.set $1 - local.get $4 + local.set $2 + local.get $5 + local.tee $3 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $2 + local.get $0 + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 32 i32.add - local.set $3 - local.get $4 + local.set $1 + local.get $3 i32.load offset=4 - local.set $0 - local.get $4 + local.set $5 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $4 + local.set $3 loop $for-loop|010 - local.get $1 - local.get $4 + local.get $2 + local.get $3 i32.lt_s if - local.get $1 + local.get $2 i32.const 3 i32.shl - local.get $3 - i32.add local.get $1 + i32.add + local.get $2 i32.const 1 i32.shl - local.get $0 + local.get $5 i32.add i32.load16_s f64.convert_i32_s f64.store - local.get $1 + local.get $2 i32.const 1 i32.add - local.set $1 + local.set $2 br $for-loop|010 end end @@ -46195,62 +44111,63 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $1 + local.set $3 i32.const 11276 i32.load i32.const 7 i32.add - local.get $2 + local.get $0 + local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $2 + local.get $1 i32.load offset=4 i32.const 56 i32.add - local.set $3 + local.set $1 i32.const 11268 i32.load - local.set $4 + local.set $5 i32.const 11276 i32.load - local.set $0 + local.set $2 loop $for-loop|014 - local.get $0 - local.get $1 + local.get $2 + local.get $3 i32.gt_s if - local.get $1 + local.get $3 i32.const 3 i32.shl - local.get $3 - i32.add local.get $1 - local.get $4 + i32.add + local.get $3 + local.get $5 i32.add i32.load8_s f64.convert_i32_s f64.store - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|014 end end + local.get $0 i32.const 10 i32.const 3 i32.const 62 i32.const 15168 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $2 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -46272,61 +44189,61 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) + (local $6 i64) (local $7 i32) (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 f32) - (local $12 f64) + (local $9 f32) + (local $10 f64) + (local $11 i32) + (local $12 i32) (local $13 i64) - (local $14 f32) - (local $15 f64) - (local $16 i32) + (local $14 i32) + (local $15 f32) + (local $16 f64) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner36 - block $folding-inner35 - block $folding-inner34 - block $folding-inner33 - block $folding-inner32 - block $folding-inner31 - block $folding-inner30 - block $folding-inner29 - block $folding-inner28 - block $folding-inner27 - block $folding-inner26 - block $folding-inner25 - block $folding-inner24 - block $folding-inner23 - block $folding-inner22 - block $folding-inner21 - block $folding-inner20 - block $folding-inner19 - block $folding-inner18 - block $folding-inner17 - block $folding-inner16 - block $folding-inner15 - block $folding-inner14 - block $folding-inner13 - block $folding-inner12 - block $folding-inner11 - block $folding-inner10 - block $folding-inner9 - block $folding-inner8 - block $folding-inner7 - block $folding-inner6 - block $folding-inner5 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 + block $folding-inner35 + block $folding-inner34 + block $folding-inner33 + block $folding-inner32 + block $folding-inner31 + block $folding-inner30 + block $folding-inner29 + block $folding-inner28 + block $folding-inner27 + block $folding-inner26 + block $folding-inner25 + block $folding-inner24 + block $folding-inner23 + block $folding-inner22 + block $folding-inner21 + block $folding-inner20 + block $folding-inner19 + block $folding-inner18 + block $folding-inner17 + block $folding-inner16 + block $folding-inner15 + block $folding-inner14 + block $folding-inner13 + block $folding-inner12 + block $folding-inner11 + block $folding-inner10 + block $folding-inner9 + block $folding-inner8 + block $folding-inner7 + block $folding-inner6 + block $folding-inner5 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46574,9 +44491,9 @@ i32.const 2 i32.const 6 call $~lib/typedarray/Float64Array#subarray - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u @@ -46590,9 +44507,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub i32.const 16 @@ -46605,7 +44522,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 32 i32.ne @@ -46619,16 +44536,16 @@ end i32.const 0 global.set $~argumentsLength - local.get $1 + local.get $0 call $~lib/typedarray/Float64Array#sort@varargs drop - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq if (result i32) - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -46637,7 +44554,7 @@ i32.const 0 end if (result i32) - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 6 @@ -46646,7 +44563,7 @@ i32.const 0 end if (result i32) - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#__get f64.const 7 @@ -46720,29 +44637,29 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 1 i32.const 3 @@ -46752,12 +44669,12 @@ i32.const 15 i32.const 1728 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $2 local.get $0 + local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -46768,7 +44685,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 i32.const 0 i32.const 2147483647 @@ -46778,12 +44695,12 @@ i32.const 15 i32.const 1808 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $2 local.get $0 + local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -46794,7 +44711,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.const 0 i32.const -3 @@ -46804,12 +44721,12 @@ i32.const 15 i32.const 1840 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $2 local.get $0 + local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -46820,7 +44737,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 2 i32.const -2 i32.const 2147483647 @@ -46830,12 +44747,12 @@ i32.const 15 i32.const 1872 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $2 local.get $0 + local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -46846,7 +44763,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 0 i32.const 1 i32.const 0 @@ -46856,12 +44773,12 @@ i32.const 15 i32.const 1904 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $2 local.get $0 + local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -46873,7 +44790,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray @@ -46928,12 +44845,12 @@ i32.const 15 i32.const 1936 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -46949,12 +44866,12 @@ i32.const 15 i32.const 1968 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $2 local.get $0 + local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -46968,65 +44885,65 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $2 i32.store offset=8 - local.get $4 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $2 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 i32.const 1 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 1 i32.gt_u select - local.set $1 + local.set $0 i32.const 3 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.gt_u select - local.set $0 + local.set $1 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.const 1 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -47039,7 +44956,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47051,34 +44968,34 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 i32.const 0 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 select - local.set $0 + local.set $1 loop $for-loop|01 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|01 end end @@ -47091,7 +45008,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47103,44 +45020,44 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 i32.const 0 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 select - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 3 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 loop $for-loop|03 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.const 1 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|03 end end @@ -47153,7 +45070,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47165,39 +45082,39 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 - local.get $4 + local.set $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.const 2 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 loop $for-loop|05 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.const 2 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|05 end end @@ -47210,7 +45127,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47222,41 +45139,41 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 i32.const 1 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 1 i32.gt_u select - local.set $1 + local.set $0 i32.const 0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 select - local.set $0 + local.set $1 loop $for-loop|07 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|07 end end @@ -47269,7 +45186,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47282,44 +45199,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $3 + local.tee $4 i32.store offset=12 - local.get $3 + local.get $4 i32.load offset=4 - local.set $2 + local.set $5 i32.const 0 - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 select - local.set $0 + local.set $1 loop $for-loop|09 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|09 end end - local.get $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -47333,9 +45250,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load offset=4 - local.get $3 + local.get $4 i32.load i32.sub i32.const 4 @@ -47348,7 +45265,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i32.load offset=8 i32.const 12 i32.ne @@ -47369,7 +45286,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47390,7 +45307,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $2 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -47611,36 +45528,36 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $2 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 3 i32.const 2147483647 @@ -47654,12 +45571,12 @@ i32.const 16 i32.const 2320 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -47671,13 +45588,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 3 i32.const 2147483647 @@ -47691,12 +45608,12 @@ i32.const 16 i32.const 2368 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -47708,13 +45625,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 2147483647 @@ -47728,12 +45645,12 @@ i32.const 16 i32.const 2416 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -47745,13 +45662,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 2 i32.const 2 i32.const 2147483647 @@ -47765,12 +45682,12 @@ i32.const 16 i32.const 2464 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -47782,13 +45699,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 3 i32.const 4 @@ -47802,12 +45719,12 @@ i32.const 16 i32.const 2512 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -47819,13 +45736,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 3 i32.const 4 @@ -47839,12 +45756,12 @@ i32.const 16 i32.const 2560 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -47856,13 +45773,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 4 @@ -47876,12 +45793,12 @@ i32.const 16 i32.const 2608 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -47893,13 +45810,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const -2 i32.const 2147483647 @@ -47913,12 +45830,12 @@ i32.const 16 i32.const 2656 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -47930,13 +45847,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const -2 i32.const -1 @@ -47950,12 +45867,12 @@ i32.const 16 i32.const 2704 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -47967,13 +45884,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const -4 i32.const -3 i32.const -2 @@ -47987,12 +45904,12 @@ i32.const 16 i32.const 2752 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -48004,13 +45921,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const -4 i32.const -3 i32.const -1 @@ -48024,12 +45941,12 @@ i32.const 16 i32.const 2800 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 local.get $1 - local.get $0 + local.get $2 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -48041,7 +45958,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -48052,21 +45969,21 @@ i32.const -3 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2848 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $1 + i32.store offset=4 local.get $0 + local.get $1 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -48080,36 +45997,36 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $0 + local.tee $2 i32.store offset=16 - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -48123,9 +46040,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub i32.const 4 @@ -48138,7 +46055,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.load offset=8 i32.const 12 i32.ne @@ -48151,7 +46068,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#slice @@ -48223,13 +46140,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=12 - local.get $0 + local.get $1 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -48242,7 +46159,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u @@ -48256,9 +46173,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 + local.get $1 i32.load i32.sub if @@ -48269,7 +46186,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 4 i32.ne @@ -48282,14 +46199,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=24 local.get $0 - local.get $2 + local.get $1 i32.eq if i32.const 0 @@ -48299,11 +46216,11 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -48316,14 +46233,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 + local.get $1 i32.load i32.sub - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub i32.ne @@ -48335,9 +46252,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 - local.get $2 + local.get $0 i32.load offset=8 i32.ne if @@ -48355,7 +46272,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48363,57 +46280,59 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 2896 i32.store offset=4 - local.get $3 - i32.load offset=4 + i32.const 0 local.set $2 - local.get $3 - i32.load offset=8 + local.get $0 + i32.load offset=4 local.set $1 - loop $for-loop|011 - local.get $1 - local.get $5 - i32.gt_s + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|010 + local.get $3 + local.get $4 + i32.lt_s if - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.add i32.load8_s - local.set $0 + local.set $5 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 + local.get $2 local.get $5 local.get $3 + local.get $0 i32.const 2896 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $5 + local.set $2 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|011 + local.set $3 + br $for-loop|010 end end - local.get $6 + local.get $2 i32.const 255 i32.and i32.const 6 @@ -48430,7 +46349,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48438,17 +46357,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -48456,43 +46375,43 @@ i32.const 2928 i32.store offset=4 i32.const 0 - local.set $5 + local.set $3 i32.const 0 - local.set $6 - local.get $3 - i32.load offset=4 local.set $2 - local.get $3 - i32.load offset=8 + local.get $0 + i32.load offset=4 local.set $1 - loop $for-loop|010 - local.get $1 - local.get $5 - i32.gt_s + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|04 + local.get $3 + local.get $4 + i32.lt_s if - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.add i32.load8_u - local.set $0 + local.set $5 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 + local.get $2 local.get $5 local.get $3 + local.get $0 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $5 + local.set $2 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|010 + local.set $3 + br $for-loop|04 end end - local.get $6 + local.get $2 i32.const 255 i32.and i32.const 6 @@ -48509,7 +46428,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48517,17 +46436,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -48535,43 +46454,43 @@ i32.const 2960 i32.store offset=4 i32.const 0 - local.set $5 + local.set $3 i32.const 0 - local.set $6 - local.get $3 - i32.load offset=4 local.set $2 - local.get $3 - i32.load offset=8 + local.get $0 + i32.load offset=4 local.set $1 - loop $for-loop|013 - local.get $1 - local.get $5 - i32.gt_s + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|08 + local.get $3 + local.get $4 + i32.lt_s if - local.get $2 - local.get $5 + local.get $1 + local.get $3 i32.add i32.load8_u - local.set $0 + local.set $5 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 + local.get $2 local.get $5 local.get $3 + local.get $0 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $5 + local.set $2 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|013 + local.set $3 + br $for-loop|08 end end - local.get $6 + local.get $2 i32.const 255 i32.and i32.const 6 @@ -48588,7 +46507,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48596,17 +46515,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -48614,47 +46533,47 @@ i32.const 2992 i32.store offset=4 i32.const 0 - local.set $5 + local.set $3 i32.const 0 - local.set $6 - local.get $3 - i32.load offset=4 local.set $2 - local.get $3 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 - loop $for-loop|014 - local.get $1 - local.get $5 - i32.gt_s + local.set $4 + loop $for-loop|01011 + local.get $3 + local.get $4 + i32.lt_s if - local.get $5 + local.get $3 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.load16_s - local.set $0 + local.set $5 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 + local.get $2 local.get $5 local.get $3 + local.get $0 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $5 + local.set $2 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|014 + local.set $3 + br $for-loop|01011 end end - local.get $6 + local.get $2 i32.const 65535 i32.and i32.const 6 @@ -48671,7 +46590,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48679,17 +46598,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -48697,47 +46616,47 @@ i32.const 3024 i32.store offset=4 i32.const 0 - local.set $5 + local.set $3 i32.const 0 - local.set $6 - local.get $3 - i32.load offset=4 local.set $2 - local.get $3 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u - local.set $1 - loop $for-loop|016 - local.get $1 - local.get $5 - i32.gt_s + local.set $4 + loop $for-loop|013 + local.get $3 + local.get $4 + i32.lt_s if - local.get $5 + local.get $3 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.load16_u - local.set $0 + local.set $5 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 + local.get $2 local.get $5 local.get $3 + local.get $0 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $5 + local.set $2 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|016 + local.set $3 + br $for-loop|013 end end - local.get $6 + local.get $2 i32.const 65535 i32.and i32.const 6 @@ -48754,7 +46673,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48762,17 +46681,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -48780,47 +46699,47 @@ i32.const 3056 i32.store offset=4 i32.const 0 - local.set $5 + local.set $3 i32.const 0 - local.set $6 - local.get $3 - i32.load offset=4 local.set $2 - local.get $3 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|018 - local.get $1 - local.get $5 - i32.gt_s + local.set $4 + loop $for-loop|016 + local.get $3 + local.get $4 + i32.lt_s if - local.get $5 + local.get $3 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load - local.set $0 + local.set $5 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 + local.get $2 local.get $5 local.get $3 + local.get $0 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $5 + local.set $2 + local.get $3 i32.const 1 i32.add - local.set $5 - br $for-loop|018 + local.set $3 + br $for-loop|016 end end - local.get $6 + local.get $2 i32.const 6 i32.ne br_if $folding-inner1 @@ -48835,7 +46754,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48843,17 +46762,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -48861,47 +46780,47 @@ i32.const 3088 i32.store offset=4 i32.const 0 - local.set $5 + local.set $3 i32.const 0 - local.set $6 - local.get $3 - i32.load offset=4 local.set $2 - local.get $3 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $4 loop $for-loop|021 - local.get $1 - local.get $5 - i32.gt_s + local.get $3 + local.get $4 + i32.lt_s if - local.get $5 + local.get $3 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load - local.set $0 + local.set $5 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $0 + local.get $2 local.get $5 local.get $3 + local.get $0 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $6 - local.get $5 + local.set $2 + local.get $3 i32.const 1 i32.add - local.set $5 + local.set $3 br $for-loop|021 end end - local.get $6 + local.get $2 i32.const 6 i32.ne br_if $folding-inner1 @@ -48916,7 +46835,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -48924,17 +46843,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -48942,45 +46861,45 @@ i32.const 3120 i32.store offset=4 i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|023 + local.set $3 + loop $for-loop|024 local.get $0 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $5 + local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add i64.load - local.set $9 + local.set $13 i32.const 4 global.set $~argumentsLength + local.get $6 local.get $13 - local.get $9 - local.get $5 - local.get $2 + local.get $0 + local.get $1 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $5 + local.set $6 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|023 + local.set $0 + br $for-loop|024 end end - local.get $13 + local.get $6 i64.const 6 i64.ne br_if $folding-inner1 @@ -48995,7 +46914,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49003,17 +46922,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -49021,47 +46940,47 @@ i32.const 3152 i32.store offset=4 i32.const 0 - local.set $5 + local.set $0 i64.const 0 - local.set $13 - local.get $2 + local.set $6 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|025 + local.set $3 + loop $for-loop|027 local.get $0 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $5 + local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add i64.load - local.set $9 + local.set $13 i32.const 4 global.set $~argumentsLength + local.get $6 local.get $13 - local.get $9 - local.get $5 - local.get $2 + local.get $0 + local.get $1 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $5 + local.set $6 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|025 + local.set $0 + br $for-loop|027 end end - local.get $13 + local.get $6 i64.const 6 i64.ne br_if $folding-inner1 @@ -49076,7 +46995,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49084,17 +47003,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $1 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $1 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -49102,45 +47021,45 @@ i32.const 3184 i32.store offset=4 i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 - loop $for-loop|027 + local.set $3 + loop $for-loop|030 local.get $0 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $5 + local.get $0 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add f32.load - local.set $11 + local.set $15 i32.const 4 global.set $~argumentsLength - local.get $14 - local.get $11 - local.get $5 - local.get $2 + local.get $9 + local.get $15 + local.get $0 + local.get $1 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $14 - local.get $5 + local.set $9 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|027 + local.set $0 + br $for-loop|030 end end - local.get $14 + local.get $9 f32.const 6 f32.ne br_if $folding-inner1 @@ -49155,7 +47074,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49163,17 +47082,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $1 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $2 + local.get $1 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -49181,45 +47100,45 @@ i32.const 3216 i32.store offset=4 i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|029 + local.set $3 + loop $for-loop|033 local.get $0 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $5 + local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $2 i32.add f64.load - local.set $12 + local.set $16 i32.const 4 global.set $~argumentsLength - local.get $15 - local.get $12 - local.get $5 - local.get $2 + local.get $10 + local.get $16 + local.get $0 + local.get $1 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $15 - local.get $5 + local.set $10 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|029 + local.set $0 + br $for-loop|033 end end - local.get $15 + local.get $10 f64.const 6 f64.ne br_if $folding-inner1 @@ -49234,7 +47153,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49285,7 +47204,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49336,7 +47255,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49387,7 +47306,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49438,7 +47357,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49489,7 +47408,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49540,7 +47459,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49591,7 +47510,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49642,7 +47561,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49693,7 +47612,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49744,7 +47663,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -49795,7 +47714,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49803,17 +47722,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -49821,43 +47740,43 @@ i32.const 3248 i32.store offset=4 i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $1 i32.load offset=8 i32.const 1 i32.sub - local.set $3 - loop $for-loop|031 - local.get $3 + local.set $2 + loop $for-loop|039 + local.get $2 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_s - local.set $0 + local.set $4 i32.const 4 global.set $~argumentsLength - local.get $5 local.get $0 - local.get $3 + local.get $4 local.get $2 + local.get $1 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $3 + local.set $0 + local.get $2 i32.const 1 i32.sub - local.set $3 - br $for-loop|031 + local.set $2 + br $for-loop|039 end end - local.get $5 + local.get $0 i32.const 255 i32.and i32.const 6 @@ -49874,7 +47793,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49882,17 +47801,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -49900,43 +47819,43 @@ i32.const 3280 i32.store offset=4 i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $1 i32.load offset=8 i32.const 1 i32.sub - local.set $3 - loop $for-loop|033 - local.get $3 + local.set $2 + loop $for-loop|042 + local.get $2 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u - local.set $0 + local.set $4 i32.const 4 global.set $~argumentsLength - local.get $5 local.get $0 - local.get $3 + local.get $4 local.get $2 + local.get $1 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $3 + local.set $0 + local.get $2 i32.const 1 i32.sub - local.set $3 - br $for-loop|033 + local.set $2 + br $for-loop|042 end end - local.get $5 + local.get $0 i32.const 255 i32.and i32.const 6 @@ -49953,7 +47872,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49961,17 +47880,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -49979,43 +47898,43 @@ i32.const 3312 i32.store offset=4 i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $1 i32.load offset=8 i32.const 1 i32.sub - local.set $3 - loop $for-loop|036 - local.get $3 + local.set $2 + loop $for-loop|046 + local.get $2 i32.const 0 i32.ge_s if - local.get $1 + local.get $2 local.get $3 i32.add i32.load8_u - local.set $0 + local.set $4 i32.const 4 global.set $~argumentsLength - local.get $5 local.get $0 - local.get $3 + local.get $4 local.get $2 + local.get $1 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $3 + local.set $0 + local.get $2 i32.const 1 i32.sub - local.set $3 - br $for-loop|036 + local.set $2 + br $for-loop|046 end end - local.get $5 + local.get $0 i32.const 255 i32.and i32.const 6 @@ -50032,7 +47951,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50040,17 +47959,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -50058,47 +47977,47 @@ i32.const 3344 i32.store offset=4 i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $3 - loop $for-loop|038 - local.get $3 + local.set $2 + loop $for-loop|049 + local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.const 1 i32.shl - local.get $1 + local.get $3 i32.add i32.load16_s - local.set $0 + local.set $4 i32.const 4 global.set $~argumentsLength - local.get $5 local.get $0 - local.get $3 + local.get $4 local.get $2 + local.get $1 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $3 + local.set $0 + local.get $2 i32.const 1 i32.sub - local.set $3 - br $for-loop|038 + local.set $2 + br $for-loop|049 end end - local.get $5 + local.get $0 i32.const 65535 i32.and i32.const 6 @@ -50115,7 +48034,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50123,17 +48042,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -50141,47 +48060,47 @@ i32.const 3376 i32.store offset=4 i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $3 - loop $for-loop|040 - local.get $3 + local.set $2 + loop $for-loop|052 + local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.const 1 i32.shl - local.get $1 + local.get $3 i32.add i32.load16_u - local.set $0 + local.set $4 i32.const 4 global.set $~argumentsLength - local.get $5 local.get $0 - local.get $3 + local.get $4 local.get $2 + local.get $1 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $3 + local.set $0 + local.get $2 i32.const 1 i32.sub - local.set $3 - br $for-loop|040 + local.set $2 + br $for-loop|052 end end - local.get $5 + local.get $0 i32.const 65535 i32.and i32.const 6 @@ -50198,7 +48117,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50206,17 +48125,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -50224,47 +48143,47 @@ i32.const 3408 i32.store offset=4 i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $3 - loop $for-loop|042 - local.get $3 + local.set $2 + loop $for-loop|055 + local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add i32.load - local.set $0 + local.set $4 i32.const 4 global.set $~argumentsLength - local.get $5 local.get $0 - local.get $3 + local.get $4 local.get $2 + local.get $1 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $3 + local.set $0 + local.get $2 i32.const 1 i32.sub - local.set $3 - br $for-loop|042 + local.set $2 + br $for-loop|055 end end - local.get $5 + local.get $0 i32.const 6 i32.ne br_if $folding-inner5 @@ -50279,7 +48198,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50287,17 +48206,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -50305,47 +48224,47 @@ i32.const 3440 i32.store offset=4 i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $3 - loop $for-loop|044 - local.get $3 + local.set $2 + loop $for-loop|058 + local.get $2 i32.const 0 i32.ge_s if - local.get $3 + local.get $2 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add i32.load - local.set $0 + local.set $4 i32.const 4 global.set $~argumentsLength - local.get $5 local.get $0 - local.get $3 + local.get $4 local.get $2 + local.get $1 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $5 - local.get $3 + local.set $0 + local.get $2 i32.const 1 i32.sub - local.set $3 - br $for-loop|044 + local.set $2 + br $for-loop|058 end end - local.get $5 + local.get $0 i32.const 6 i32.ne br_if $folding-inner5 @@ -50360,7 +48279,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50368,17 +48287,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -50386,47 +48305,48 @@ i32.const 3472 i32.store offset=4 i64.const 0 - local.set $13 - local.get $1 + local.set $6 + local.get $0 + local.tee $1 i32.load offset=4 - local.set $0 - local.get $1 + local.set $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $3 - loop $for-loop|046 - local.get $3 + local.set $0 + loop $for-loop|061 + local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add i64.load - local.set $9 + local.set $13 i32.const 4 global.set $~argumentsLength + local.get $6 local.get $13 - local.get $9 - local.get $3 + local.get $0 local.get $1 i32.const 3472 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $3 + local.set $6 + local.get $0 i32.const 1 i32.sub - local.set $3 - br $for-loop|046 + local.set $0 + br $for-loop|061 end end - local.get $13 + local.get $6 i64.const 6 i64.ne br_if $folding-inner5 @@ -50441,7 +48361,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50449,17 +48369,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -50467,47 +48387,48 @@ i32.const 3504 i32.store offset=4 i64.const 0 - local.set $13 - local.get $1 + local.set $6 + local.get $0 + local.tee $1 i32.load offset=4 - local.set $0 - local.get $1 + local.set $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $3 - loop $for-loop|048 - local.get $3 + local.set $0 + loop $for-loop|064 + local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add i64.load - local.set $9 + local.set $13 i32.const 4 global.set $~argumentsLength + local.get $6 local.get $13 - local.get $9 - local.get $3 + local.get $0 local.get $1 i32.const 3504 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $13 - local.get $3 + local.set $6 + local.get $0 i32.const 1 i32.sub - local.set $3 - br $for-loop|048 + local.set $0 + br $for-loop|064 end end - local.get $13 + local.get $6 i64.const 6 i64.ne br_if $folding-inner5 @@ -50522,7 +48443,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50530,17 +48451,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -50548,47 +48469,48 @@ i32.const 3536 i32.store offset=4 f32.const 0 - local.set $14 - local.get $1 + local.set $9 + local.get $0 + local.tee $1 i32.load offset=4 - local.set $0 - local.get $1 + local.set $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $3 - loop $for-loop|050 - local.get $3 + local.set $0 + loop $for-loop|067 + local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add f32.load - local.set $11 + local.set $15 i32.const 4 global.set $~argumentsLength - local.get $14 - local.get $11 - local.get $3 + local.get $9 + local.get $15 + local.get $0 local.get $1 i32.const 3536 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $14 - local.get $3 + local.set $9 + local.get $0 i32.const 1 i32.sub - local.set $3 - br $for-loop|050 + local.set $0 + br $for-loop|067 end end - local.get $14 + local.get $9 f32.const 6 f32.ne br_if $folding-inner5 @@ -50603,7 +48525,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50611,17 +48533,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -50629,47 +48551,48 @@ i32.const 3568 i32.store offset=4 f64.const 0 - local.set $15 - local.get $1 + local.set $10 + local.get $0 + local.tee $1 i32.load offset=4 - local.set $0 - local.get $1 + local.set $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $3 - loop $for-loop|052 - local.get $3 + local.set $0 + loop $for-loop|070 + local.get $0 i32.const 0 i32.ge_s if - local.get $3 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add f64.load - local.set $12 + local.set $16 i32.const 4 global.set $~argumentsLength - local.get $15 - local.get $12 - local.get $3 + local.get $10 + local.get $16 + local.get $0 local.get $1 i32.const 3568 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $15 - local.get $3 + local.set $10 + local.get $0 i32.const 1 i32.sub - local.set $3 - br $for-loop|052 + local.set $0 + br $for-loop|070 end end - local.get $15 + local.get $10 f64.const 6 f64.ne br_if $folding-inner5 @@ -50678,7 +48601,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50686,7 +48609,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50697,17 +48620,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -50722,100 +48645,100 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $2 i32.load offset=8 local.set $4 - local.get $0 + local.get $2 i32.load offset=4 - local.set $2 - local.get $1 + local.set $7 + local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.store offset=4 - loop $for-loop|02 + loop $for-loop|012 + local.get $1 local.get $4 - local.get $5 - i32.gt_s + i32.lt_s if - local.get $2 - local.get $5 + local.get $1 + local.get $7 i32.add i32.load8_s - local.set $1 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.add + local.get $8 local.get $1 - local.get $5 - local.get $0 + local.get $2 i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 - br $for-loop|02 + local.set $1 + br $for-loop|012 end end - local.get $7 - local.get $6 + local.get $0 + local.get $3 i32.store - local.get $7 - local.get $6 + local.get $0 + local.get $3 call $~lib/rt/itcms/__link - local.get $7 - local.get $6 + local.get $0 + local.get $3 i32.store offset=4 - local.get $7 + local.get $0 local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=8 - local.get $7 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $7 + br_if $folding-inner6 + local.get $0 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $7 + br_if $folding-inner7 + local.get $0 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50823,7 +48746,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50834,17 +48757,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -50859,100 +48782,100 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $2 i32.load offset=8 local.set $4 - local.get $0 + local.get $2 i32.load offset=4 - local.set $2 - local.get $1 + local.set $7 + local.get $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.store offset=4 - loop $for-loop|04 + loop $for-loop|014 + local.get $1 local.get $4 - local.get $5 - i32.gt_s + i32.lt_s if - local.get $2 - local.get $5 + local.get $1 + local.get $7 i32.add i32.load8_u - local.set $1 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.add + local.get $8 local.get $1 - local.get $5 - local.get $0 + local.get $2 i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 - br $for-loop|04 + local.set $1 + br $for-loop|014 end end - local.get $7 - local.get $6 + local.get $0 + local.get $3 i32.store - local.get $7 - local.get $6 + local.get $0 + local.get $3 call $~lib/rt/itcms/__link - local.get $7 - local.get $6 + local.get $0 + local.get $3 i32.store offset=4 - local.get $7 + local.get $0 local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=8 - local.get $7 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $7 + br_if $folding-inner6 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $7 + br_if $folding-inner7 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $5 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50960,7 +48883,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50971,17 +48894,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -50996,98 +48919,100 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $2 i32.load offset=8 local.set $4 - local.get $0 + local.get $2 i32.load offset=4 - local.set $2 - local.get $1 + local.set $7 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer local.get $4 i32.const 0 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.store offset=4 - loop $for-loop|06 + loop $for-loop|015 + local.get $1 local.get $4 - local.get $5 - i32.gt_s + i32.lt_s if - local.get $2 - local.get $5 + local.get $1 + local.get $7 i32.add i32.load8_u - local.set $1 + local.set $8 i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $6 + local.get $1 + local.get $3 i32.add + local.get $8 local.get $1 - local.get $5 - local.get $0 + local.get $2 i32.const 3664 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store8 - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 - br $for-loop|06 + local.set $1 + br $for-loop|015 end end - local.get $7 - local.get $6 + local.get $0 + local.get $3 i32.store - local.get $7 - local.get $6 + local.get $0 + local.get $3 call $~lib/rt/itcms/__link - local.get $7 - local.get $6 + local.get $0 + local.get $3 i32.store offset=4 - local.get $7 + local.get $0 local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $0 i32.store offset=8 - local.get $7 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $7 + br_if $folding-inner6 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $7 + br_if $folding-inner7 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51095,7 +49020,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51106,17 +49031,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -51131,108 +49056,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.set $5 - local.get $0 - i32.load offset=4 local.set $4 local.get $1 + i32.load offset=4 + local.set $7 + local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 1 i32.shl - local.tee $3 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $3 i32.store offset=4 - loop $for-loop|08 - local.get $5 - local.get $8 - i32.gt_s + loop $for-loop|017 + local.get $2 + local.get $4 + i32.lt_s if - local.get $4 - local.get $8 + local.get $7 + local.get $2 i32.const 1 i32.shl - local.tee $2 + local.tee $11 i32.add i32.load16_s - local.set $1 + local.set $14 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $7 + local.get $3 + local.get $11 i32.add + local.get $14 + local.get $2 local.get $1 - local.get $8 - local.get $0 i32.const 3696 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $8 + local.get $2 i32.const 1 i32.add - local.set $8 - br $for-loop|08 + local.set $2 + br $for-loop|017 end end - local.get $10 - local.get $7 + local.get $0 + local.get $3 i32.store - local.get $10 - local.get $7 + local.get $0 + local.get $3 call $~lib/rt/itcms/__link - local.get $10 - local.get $7 - i32.store offset=4 - local.get $10 + local.get $0 local.get $3 + i32.store offset=4 + local.get $0 + local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $0 i32.store offset=8 - local.get $10 + local.get $0 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $10 + br_if $folding-inner6 + local.get $0 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $10 + br_if $folding-inner7 + local.get $0 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51240,7 +49165,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51251,17 +49176,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -51276,108 +49201,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.set $5 - local.get $0 - i32.load offset=4 local.set $4 local.get $1 + i32.load offset=4 + local.set $7 + local.get $0 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 1 i32.shl - local.tee $3 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $3 i32.store offset=4 - loop $for-loop|012 - local.get $5 - local.get $8 - i32.gt_s + loop $for-loop|018 + local.get $2 + local.get $4 + i32.lt_s if - local.get $4 - local.get $8 + local.get $7 + local.get $2 i32.const 1 i32.shl - local.tee $2 + local.tee $11 i32.add i32.load16_u - local.set $1 + local.set $14 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $7 + local.get $3 + local.get $11 i32.add + local.get $14 + local.get $2 local.get $1 - local.get $8 - local.get $0 i32.const 3728 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store16 - local.get $8 + local.get $2 i32.const 1 i32.add - local.set $8 - br $for-loop|012 + local.set $2 + br $for-loop|018 end end - local.get $10 - local.get $7 + local.get $0 + local.get $3 i32.store - local.get $10 - local.get $7 + local.get $0 + local.get $3 call $~lib/rt/itcms/__link - local.get $10 - local.get $7 - i32.store offset=4 - local.get $10 + local.get $0 local.get $3 + i32.store offset=4 + local.get $0 + local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $0 i32.store offset=8 - local.get $10 + local.get $0 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $10 + br_if $folding-inner6 + local.get $0 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $10 + br_if $folding-inner7 + local.get $0 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51385,7 +49310,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51396,17 +49321,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -51421,108 +49346,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $5 - local.get $0 - i32.load offset=4 local.set $4 local.get $1 + i32.load offset=4 + local.set $7 + local.get $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 2 i32.shl - local.tee $3 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $3 i32.store offset=4 - loop $for-loop|015 - local.get $5 - local.get $8 - i32.gt_s + loop $for-loop|019 + local.get $2 + local.get $4 + i32.lt_s if - local.get $4 - local.get $8 + local.get $7 + local.get $2 i32.const 2 i32.shl - local.tee $2 + local.tee $11 i32.add i32.load - local.set $1 + local.set $14 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $7 + local.get $3 + local.get $11 i32.add + local.get $14 + local.get $2 local.get $1 - local.get $8 - local.get $0 i32.const 3760 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $8 + local.get $2 i32.const 1 i32.add - local.set $8 - br $for-loop|015 + local.set $2 + br $for-loop|019 end end - local.get $10 - local.get $7 + local.get $0 + local.get $3 i32.store - local.get $10 - local.get $7 + local.get $0 + local.get $3 call $~lib/rt/itcms/__link - local.get $10 - local.get $7 - i32.store offset=4 - local.get $10 + local.get $0 local.get $3 + i32.store offset=4 + local.get $0 + local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $0 i32.store offset=8 - local.get $10 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $10 + br_if $folding-inner6 + local.get $0 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $10 + br_if $folding-inner7 + local.get $0 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $8 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51530,7 +49455,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51541,17 +49466,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -51566,108 +49491,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $5 - local.get $0 - i32.load offset=4 local.set $4 local.get $1 + i32.load offset=4 + local.set $7 + local.get $0 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 2 i32.shl - local.tee $3 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $3 i32.store offset=4 - loop $for-loop|017 - local.get $5 - local.get $8 - i32.gt_s + loop $for-loop|020 + local.get $2 + local.get $4 + i32.lt_s if - local.get $4 - local.get $8 + local.get $7 + local.get $2 i32.const 2 i32.shl - local.tee $2 + local.tee $11 i32.add i32.load - local.set $1 + local.set $14 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $7 + local.get $3 + local.get $11 i32.add + local.get $14 + local.get $2 local.get $1 - local.get $8 - local.get $0 i32.const 3792 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.store - local.get $8 + local.get $2 i32.const 1 i32.add - local.set $8 - br $for-loop|017 + local.set $2 + br $for-loop|020 end end - local.get $10 - local.get $7 + local.get $0 + local.get $3 i32.store - local.get $10 - local.get $7 + local.get $0 + local.get $3 call $~lib/rt/itcms/__link - local.get $10 - local.get $7 - i32.store offset=4 - local.get $10 + local.get $0 local.get $3 + i32.store offset=4 + local.get $0 + local.get $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 + local.get $0 i32.store offset=8 - local.get $10 + local.get $0 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner20 - local.get $10 + br_if $folding-inner6 + local.get $0 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 4 i32.ne - br_if $folding-inner21 - local.get $10 + br_if $folding-inner7 + local.get $0 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 9 i32.ne - br_if $folding-inner22 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51675,7 +49600,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51686,17 +49611,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -51711,108 +49636,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 - local.get $0 - i32.load offset=4 - local.set $3 + local.set $4 local.get $1 + i32.load offset=4 + local.set $7 + local.get $0 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 3 i32.shl - local.tee $2 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 - loop $for-loop|019 - local.get $6 - local.get $7 - i32.gt_s + loop $for-loop|022 + local.get $2 + local.get $4 + i32.lt_s if - local.get $3 local.get $7 + local.get $2 i32.const 3 i32.shl - local.tee $1 + local.tee $11 i32.add i64.load - local.set $9 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $5 + local.get $3 + local.get $11 i32.add - local.get $9 - local.get $7 - local.get $0 + local.get $6 + local.get $2 + local.get $1 i32.const 3824 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 - br $for-loop|019 + local.set $2 + br $for-loop|022 end end - local.get $8 - local.get $5 + local.get $0 + local.get $3 i32.store - local.get $8 - local.get $5 + local.get $0 + local.get $3 call $~lib/rt/itcms/__link - local.get $8 - local.get $5 + local.get $0 + local.get $3 i32.store offset=4 + local.get $0 local.get $8 - local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner20 - local.get $8 + br_if $folding-inner6 + local.get $0 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 4 i64.ne - br_if $folding-inner21 - local.get $8 + br_if $folding-inner7 + local.get $0 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 9 i64.ne - br_if $folding-inner22 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51820,7 +49745,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51831,17 +49756,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -51856,108 +49781,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 - local.get $0 - i32.load offset=4 - local.set $3 + local.set $4 local.get $1 + i32.load offset=4 + local.set $7 + local.get $0 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 3 i32.shl - local.tee $2 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 - loop $for-loop|022 - local.get $6 - local.get $7 - i32.gt_s + loop $for-loop|023 + local.get $2 + local.get $4 + i32.lt_s if - local.get $3 local.get $7 + local.get $2 i32.const 3 i32.shl - local.tee $1 + local.tee $11 i32.add i64.load - local.set $9 + local.set $6 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $5 + local.get $3 + local.get $11 i32.add - local.get $9 - local.get $7 - local.get $0 + local.get $6 + local.get $2 + local.get $1 i32.const 3856 i32.load call_indirect $0 (type $i64_i32_i32_=>_i64) i64.store - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 - br $for-loop|022 + local.set $2 + br $for-loop|023 end end - local.get $8 - local.get $5 + local.get $0 + local.get $3 i32.store - local.get $8 - local.get $5 + local.get $0 + local.get $3 call $~lib/rt/itcms/__link - local.get $8 - local.get $5 + local.get $0 + local.get $3 i32.store offset=4 + local.get $0 local.get $8 - local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner20 - local.get $8 + br_if $folding-inner6 + local.get $0 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 4 i64.ne - br_if $folding-inner21 - local.get $8 + br_if $folding-inner7 + local.get $0 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 9 i64.ne - br_if $folding-inner22 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -51965,7 +49890,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -51976,17 +49901,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -52001,108 +49926,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $6 - local.get $0 - i32.load offset=4 - local.set $3 + local.set $4 local.get $1 + i32.load offset=4 + local.set $7 + local.get $0 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $4 i32.const 2 i32.shl - local.tee $2 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $3 i32.store offset=4 - loop $for-loop|024 - local.get $6 - local.get $7 - i32.gt_s + loop $for-loop|025 + local.get $2 + local.get $4 + i32.lt_s if - local.get $3 local.get $7 + local.get $2 i32.const 2 i32.shl - local.tee $1 + local.tee $11 i32.add f32.load - local.set $11 + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $1 - local.get $5 - i32.add + local.get $3 local.get $11 - local.get $7 - local.get $0 + i32.add + local.get $9 + local.get $2 + local.get $1 i32.const 3888 i32.load call_indirect $0 (type $f32_i32_i32_=>_f32) f32.store - local.get $7 + local.get $2 i32.const 1 i32.add - local.set $7 - br $for-loop|024 + local.set $2 + br $for-loop|025 end end - local.get $8 - local.get $5 + local.get $0 + local.get $3 i32.store - local.get $8 - local.get $5 + local.get $0 + local.get $3 call $~lib/rt/itcms/__link - local.get $8 - local.get $5 + local.get $0 + local.get $3 i32.store offset=4 + local.get $0 local.get $8 - local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=8 - local.get $8 + local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner20 - local.get $8 + br_if $folding-inner6 + local.get $0 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 4 f32.ne - br_if $folding-inner21 - local.get $8 + br_if $folding-inner7 + local.get $0 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 9 f32.ne - br_if $folding-inner22 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -52110,7 +50035,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -52121,17 +50046,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -52146,117 +50071,479 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $0 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $6 - local.get $0 - i32.load offset=4 - local.set $3 + local.set $4 local.get $1 + i32.load offset=4 + local.set $7 + local.get $0 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 3 + i32.shl local.tee $8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=4 + loop $for-loop|026 + local.get $2 + local.get $4 + i32.lt_s + if + local.get $7 + local.get $2 + i32.const 3 + i32.shl + local.tee $11 + i32.add + f64.load + local.set $10 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $11 + i32.add + local.get $10 + local.get $2 + local.get $1 + i32.const 3920 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_f64) + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|026 + end + end + local.get $0 + local.get $3 + i32.store + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + local.get $0 + local.get $3 + i32.store offset=4 + local.get $0 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + br_if $folding-inner6 + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + br_if $folding-inner7 + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4304 + i32.store offset=4 + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|028 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_s + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $1 + local.get $0 + i32.const 4304 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|028 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 4336 + i32.store offset=4 + i32.const 0 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|0329 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_s + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $1 + local.get $0 + i32.const 4336 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0329 + end + end + i32.const 0 + end + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4368 + i32.store offset=4 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|031 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_u + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $1 + local.get $0 + i32.const 4368 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|031 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 4400 + i32.store offset=4 + i32.const 0 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|0332 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_u + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $1 + local.get $0 + i32.const 4400 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0332 + end + end + i32.const 0 + end + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 i32.store + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 4432 + i32.store offset=4 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.033 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|034 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_u + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $1 + local.get $0 + i32.const 4432 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.033 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|034 + end + end + i32.const 0 + end + i32.eqz + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 3 - i32.shl - local.tee $2 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 + i32.const 4464 i32.store offset=4 - loop $for-loop|026 - local.get $6 - local.get $7 - i32.gt_s - if - local.get $3 - local.get $7 - i32.const 3 - i32.shl - local.tee $1 - i32.add - f64.load - local.set $12 - i32.const 3 - global.set $~argumentsLength + i32.const 0 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0135 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|0336 local.get $1 - local.get $5 - i32.add - local.get $12 - local.get $7 - local.get $0 - i32.const 3920 - i32.load - call_indirect $0 (type $f64_i32_i32_=>_f64) - f64.store - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|026 + local.get $4 + i32.lt_s + if + local.get $1 + local.get $3 + i32.add + i32.load8_u + local.set $5 + i32.const 3 + global.set $~argumentsLength + i32.const 1 + local.get $5 + local.get $1 + local.get $0 + i32.const 4464 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0135 + drop + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0336 + end end + i32.const 0 end - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - call $~lib/rt/itcms/__link - local.get $8 - local.get $5 - i32.store offset=4 - local.get $8 - local.get $2 - i32.store offset=8 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=8 - local.get $8 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne - br_if $folding-inner20 - local.get $8 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne - br_if $folding-inner21 - local.get $8 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 9 - f64.ne - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52264,119 +50551,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 1 i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 2 i32.const 6 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4304 + i32.const 4496 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|045 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|037 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 1 + i32.shl + local.get $3 i32.add - i32.load8_s - local.set $0 + i32.load16_s + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 4304 + i32.const 4496 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|045 + local.set $1 + br $for-loop|037 end end i32.const 0 end i32.eqz - br_if $folding-inner6 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - i32.const 4336 + i32.const 4528 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|049 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|0338 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 1 + i32.shl + local.get $3 i32.add - i32.load8_s - local.set $0 + i32.load16_s + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 4336 + i32.const 4528 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|049 + local.set $1 + br $for-loop|0338 end end i32.const 0 end - br_if $folding-inner7 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52384,119 +50679,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4368 + i32.const 4560 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|051 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|040 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 1 + i32.shl + local.get $3 i32.add - i32.load8_u - local.set $0 + i32.load16_u + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 4368 + i32.const 4560 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|051 + local.set $1 + br $for-loop|040 end end i32.const 0 end i32.eqz - br_if $folding-inner6 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - i32.const 4400 + i32.const 4592 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|054 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|0341 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 1 + i32.shl + local.get $3 i32.add - i32.load8_u - local.set $0 + i32.load16_u + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 4400 + i32.const 4592 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|054 + local.set $1 + br $for-loop|0341 end end i32.const 0 end - br_if $folding-inner7 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52504,119 +50807,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + call $~lib/typedarray/Int32Array#__set + local.get $0 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + call $~lib/typedarray/Int32Array#__set + local.get $0 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4432 + i32.const 4624 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 (result i32) - local.get $4 + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|058 + i32.const 2 + i32.shr_u + local.set $4 + loop $for-loop|043 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 2 + i32.shl + local.get $3 i32.add - i32.load8_u - local.set $0 + i32.load + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 4432 + i32.const 4624 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|058 + local.set $1 + br $for-loop|043 end end i32.const 0 end i32.eqz - br_if $folding-inner6 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - i32.const 4464 + i32.const 4656 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|061 + i32.const 2 + i32.shr_u + local.set $4 + loop $for-loop|0344 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 2 + i32.shl + local.get $3 i32.add - i32.load8_u - local.set $0 + i32.load + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 4464 + i32.const 4656 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|061 + local.set $1 + br $for-loop|0344 end end i32.const 0 end - br_if $folding-inner7 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52624,127 +50935,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 1 i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 2 i32.const 6 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4496 + i32.const 4688 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|063 + local.set $4 + loop $for-loop|045 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 1 + local.get $1 + i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - i32.load16_s - local.set $0 + i32.load + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 4496 + i32.const 4688 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|063 + local.set $1 + br $for-loop|045 end end i32.const 0 end i32.eqz - br_if $folding-inner6 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - i32.const 4528 + i32.const 4720 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|066 + local.set $4 + loop $for-loop|0346 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 1 + local.get $1 + i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - i32.load16_s - local.set $0 + i32.load + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 4528 + i32.const 4720 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|066 + local.set $1 + br $for-loop|0346 end end i32.const 0 end - br_if $folding-inner7 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52752,127 +51063,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set + i64.const 6 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4560 + i32.const 4752 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|068 + local.set $4 + loop $for-loop|047 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 1 + local.get $1 + i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add - i32.load16_u - local.set $0 + i64.load + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $0 local.get $6 - local.get $4 - i32.const 4560 + local.get $1 + local.get $0 + i32.const 4752 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|068 + local.set $1 + br $for-loop|047 end end i32.const 0 end i32.eqz - br_if $folding-inner6 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - i32.const 4592 + i32.const 4784 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|071 + local.set $4 + loop $for-loop|0348 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 1 + local.get $1 + i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add - i32.load16_u - local.set $0 + i64.load + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $0 local.get $6 - local.get $4 - i32.const 4592 + local.get $1 + local.get $0 + i32.const 4784 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|071 + local.set $1 + br $for-loop|0348 end end i32.const 0 end - br_if $folding-inner7 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52880,127 +51191,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $4 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $4 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set + i64.const 6 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4624 + i32.const 4816 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|073 + local.set $4 + loop $for-loop|050 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 2 + local.get $1 + i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add - i32.load - local.set $0 + i64.load + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $0 local.get $6 - local.get $4 - i32.const 4624 + local.get $1 + local.get $0 + i32.const 4816 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|073 + local.set $1 + br $for-loop|050 end end i32.const 0 end i32.eqz - br_if $folding-inner6 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - i32.const 4656 + i32.const 4848 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|076 + local.set $4 + loop $for-loop|0351 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 2 + local.get $1 + i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add - i32.load - local.set $0 + i64.load + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $0 local.get $6 - local.get $4 - i32.const 4656 + local.get $1 + local.get $0 + i32.const 4848 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|076 + local.set $1 + br $for-loop|0351 end end i32.const 0 end - br_if $folding-inner7 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53008,127 +51319,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set + f32.const 6 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4688 + i32.const 4880 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|078 + local.set $4 + loop $for-loop|053 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - i32.load - local.set $0 + f32.load + local.set $9 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $9 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 4688 + i32.const 4880 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|078 + local.set $1 + br $for-loop|053 end end i32.const 0 end i32.eqz - br_if $folding-inner6 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - i32.const 4720 + i32.const 4912 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|081 + local.set $4 + loop $for-loop|0354 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - i32.load - local.set $0 + f32.load + local.set $9 i32.const 3 global.set $~argumentsLength i32.const 1 + local.get $9 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 4720 + i32.const 4912 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|081 + local.set $1 + br $for-loop|0354 end end i32.const 0 end - br_if $folding-inner7 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53136,127 +51447,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $3 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set + f64.const 6 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4752 + i32.const 4944 i32.store offset=4 - i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $3 + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $1 - local.get $3 + local.set $3 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|083 - local.get $0 - local.get $5 - i32.gt_s + local.set $4 + loop $for-loop|056 + local.get $1 + local.get $4 + i32.lt_s if - local.get $5 + local.get $1 i32.const 3 i32.shl - local.get $1 + local.get $3 i32.add - i64.load - local.set $9 + f64.load + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $9 - local.get $5 - local.get $3 - i32.const 4752 + local.get $10 + local.get $1 + local.get $0 + i32.const 4944 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 - br $for-loop|083 + local.set $1 + br $for-loop|056 end end i32.const 0 end i32.eqz - br_if $folding-inner6 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - i32.const 4784 + i32.const 4976 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.085 (result i32) - local.get $3 + local.set $1 + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $1 - local.get $3 + local.set $3 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|086 - local.get $0 - local.get $5 - i32.gt_s + local.set $4 + loop $for-loop|0357 + local.get $1 + local.get $4 + i32.lt_s if - local.get $5 + local.get $1 i32.const 3 i32.shl - local.get $1 + local.get $3 i32.add - i64.load - local.set $9 + f64.load + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $9 - local.get $5 - local.get $3 - i32.const 4784 + local.get $10 + local.get $1 + local.get $0 + i32.const 4976 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.085 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 - br $for-loop|086 + local.set $1 + br $for-loop|0357 end end i32.const 0 end - br_if $folding-inner7 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53264,127 +51575,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $3 i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4816 + i32.const 5008 i32.store offset=4 - i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $0 - loop $for-loop|088 + local.get $1 + i32.load offset=4 + local.set $2 + local.get $1 + i32.load offset=8 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + loop $for-loop|059 local.get $0 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $5 - i32.const 3 - i32.shl - local.get $1 + local.get $0 + local.get $2 i32.add - i64.load - local.set $9 + i32.load8_s i32.const 3 global.set $~argumentsLength - i32.const 1 - local.get $9 - local.get $5 - local.get $3 - i32.const 4816 + local.get $0 + local.get $1 + i32.const 5008 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 - drop - local.get $5 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|088 + local.set $0 + br $for-loop|059 end end - i32.const 0 + i32.const -1 + local.set $0 end - i32.eqz - br_if $folding-inner6 + local.get $0 + i32.const 1 + i32.ne + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 4848 + i32.const 5040 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.090 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $0 - loop $for-loop|091 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $2 + local.get $1 + i32.load offset=8 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 + loop $for-loop|0360 local.get $0 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $5 - i32.const 3 - i32.shl - local.get $1 + local.get $0 + local.get $2 i32.add - i64.load - local.set $9 + i32.load8_s i32.const 3 global.set $~argumentsLength - i32.const 1 - local.get $9 - local.get $5 - local.get $3 - i32.const 4848 + local.get $0 + local.get $1 + i32.const 5040 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.090 - drop - local.get $5 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|091 + local.set $0 + br $for-loop|0360 end end - i32.const 0 + i32.const -1 + local.set $0 end - br_if $folding-inner7 + local.get $0 + i32.const -1 + i32.ne + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53392,127 +51694,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $3 i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4880 + i32.const 5072 i32.store offset=4 - i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $0 - loop $for-loop|093 + local.get $1 + i32.load offset=4 + local.set $2 + local.get $1 + i32.load offset=8 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + loop $for-loop|062 local.get $0 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $5 - i32.const 2 - i32.shl - local.get $1 + local.get $0 + local.get $2 i32.add - f32.load - local.set $11 + i32.load8_u i32.const 3 global.set $~argumentsLength - i32.const 1 - local.get $11 - local.get $5 - local.get $3 - i32.const 4880 + local.get $0 + local.get $1 + i32.const 5072 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $5 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|093 + local.set $0 + br $for-loop|062 end end - i32.const 0 + i32.const -1 + local.set $0 end - i32.eqz - br_if $folding-inner6 + local.get $0 + i32.const 1 + i32.ne + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 4912 + i32.const 5104 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.095 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $0 - loop $for-loop|096 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $2 + local.get $1 + i32.load offset=8 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 + loop $for-loop|0363 local.get $0 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $5 - i32.const 2 - i32.shl - local.get $1 + local.get $0 + local.get $2 i32.add - f32.load - local.set $11 + i32.load8_u i32.const 3 global.set $~argumentsLength - i32.const 1 - local.get $11 - local.get $5 - local.get $3 - i32.const 4912 + local.get $0 + local.get $1 + i32.const 5104 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.095 - drop - local.get $5 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|096 + local.set $0 + br $for-loop|0363 end end - i32.const 0 + i32.const -1 + local.set $0 end - br_if $folding-inner7 + local.get $0 + i32.const -1 + i32.ne + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53520,127 +51813,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $3 i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 4944 + i32.const 5136 i32.store offset=4 - i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $0 - loop $for-loop|098 + local.get $1 + i32.load offset=4 + local.set $2 + local.get $1 + i32.load offset=8 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.064 + loop $for-loop|065 local.get $0 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $5 - i32.const 3 - i32.shl - local.get $1 + local.get $0 + local.get $2 i32.add - f64.load - local.set $12 + i32.load8_u i32.const 3 global.set $~argumentsLength - i32.const 1 - local.get $12 - local.get $5 - local.get $3 - i32.const 4944 + local.get $0 + local.get $1 + i32.const 5136 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $5 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.064 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|098 + local.set $0 + br $for-loop|065 end end - i32.const 0 + i32.const -1 + local.set $0 end - i32.eqz - br_if $folding-inner6 + local.get $0 + i32.const 1 + i32.ne + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 4976 + i32.const 5168 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0100 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $0 - loop $for-loop|0101 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $2 + local.get $1 + i32.load offset=8 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0166 + loop $for-loop|0367 local.get $0 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $5 - i32.const 3 - i32.shl - local.get $1 + local.get $0 + local.get $2 i32.add - f64.load - local.set $12 + i32.load8_u i32.const 3 global.set $~argumentsLength - i32.const 1 - local.get $12 - local.get $5 - local.get $3 - i32.const 4976 + local.get $0 + local.get $1 + i32.const 5168 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0100 - drop - local.get $5 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0166 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|0101 + local.set $0 + br $for-loop|0367 end end - i32.const 0 + i32.const -1 + local.set $0 end - br_if $folding-inner7 + local.get $0 + i32.const -1 + i32.ne + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53648,118 +51932,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 i32.store - local.get $4 + local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5008 + i32.const 5200 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $4 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|0103 - local.get $1 - local.get $2 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + loop $for-loop|068 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + i32.const 1 + i32.shl + local.get $2 i32.add - i32.load8_s + i32.load16_s i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5008 + i32.const 5200 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $1 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0103 + local.set $0 + br $for-loop|068 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 5040 + i32.const 5232 i32.store offset=4 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0105 - loop $for-loop|0106 - local.get $1 - local.get $2 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 + loop $for-loop|0369 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + i32.const 1 + i32.shl + local.get $2 i32.add - i32.load8_s + i32.load16_s i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5040 + i32.const 5232 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0105 - local.get $1 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0106 + local.set $0 + br $for-loop|0369 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53767,118 +52059,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 i32.store - local.get $4 + local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5072 + i32.const 5264 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $4 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|0108 - local.get $1 - local.get $2 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + loop $for-loop|071 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + i32.const 1 + i32.shl + local.get $2 i32.add - i32.load8_u + i32.load16_u i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5072 + i32.const 5264 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0108 + local.set $0 + br $for-loop|071 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 5104 + i32.const 5296 i32.store offset=4 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0110 - loop $for-loop|0111 - local.get $1 - local.get $2 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 + loop $for-loop|0372 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + i32.const 1 + i32.shl + local.get $2 i32.add - i32.load8_u + i32.load16_u i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5104 + i32.const 5296 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0110 - local.get $1 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0111 + local.set $0 + br $for-loop|0372 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -53886,118 +52186,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 i32.store - local.get $4 + local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + call $~lib/typedarray/Int32Array#__set + local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + call $~lib/typedarray/Int32Array#__set + local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5136 + i32.const 5328 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $4 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0114 - loop $for-loop|0115 - local.get $1 - local.get $2 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + loop $for-loop|073 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + i32.const 2 + i32.shl + local.get $2 i32.add - i32.load8_u + i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5136 + i32.const 5328 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0114 - local.get $1 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0115 + local.set $0 + br $for-loop|073 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 5168 + i32.const 5360 i32.store offset=4 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 - i32.load offset=8 local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 - loop $for-loop|0118 - local.get $1 - local.get $2 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 + loop $for-loop|0374 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + i32.const 2 + i32.shl + local.get $2 i32.add - i32.load8_u + i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5168 + i32.const 5360 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 - local.get $1 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0118 + local.set $0 + br $for-loop|0374 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54005,126 +52313,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 i32.store - local.get $4 + local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5200 + i32.const 5392 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $4 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|0120 - local.get $1 - local.get $2 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + loop $for-loop|075 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - i32.const 1 + local.get $0 + i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - i32.load16_s + i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5200 + i32.const 5392 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $1 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0120 + local.set $0 + br $for-loop|075 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 5232 + i32.const 5424 i32.store offset=4 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0122 - loop $for-loop|0123 - local.get $1 - local.get $2 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 + loop $for-loop|0376 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - i32.const 1 + local.get $0 + i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - i32.load16_s + i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5232 + i32.const 5424 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0122 - local.get $1 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0123 + local.set $0 + br $for-loop|0376 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54132,126 +52440,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 i32.store - local.get $4 + local.get $1 i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $4 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5264 + i32.const 5456 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $4 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|0125 - local.get $1 - local.get $2 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + loop $for-loop|077 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - i32.const 1 + local.get $0 + i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add - i32.load16_u + i64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5264 + i32.const 5456 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $1 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0125 + local.set $0 + br $for-loop|077 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 5296 + i32.const 5488 i32.store offset=4 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0127 - loop $for-loop|0128 - local.get $1 - local.get $2 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 + loop $for-loop|0378 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - i32.const 1 + local.get $0 + i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add - i32.load16_u + i64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5296 + i32.const 5488 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0127 - local.get $1 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0128 + local.set $0 + br $for-loop|0378 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54259,126 +52567,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 i32.store - local.get $4 + local.get $1 i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $4 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $4 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5328 + i32.const 5520 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $4 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $1 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|0130 - local.get $1 - local.get $2 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + loop $for-loop|079 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - i32.const 2 + local.get $0 + i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add - i32.load + i64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5328 + i32.const 5520 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $1 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0130 + local.set $0 + br $for-loop|079 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 5360 + i32.const 5552 i32.store offset=4 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $1 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0132 - loop $for-loop|0133 - local.get $1 - local.get $2 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 + loop $for-loop|0380 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - i32.const 2 + local.get $0 + i32.const 3 i32.shl - local.get $3 + local.get $2 i32.add - i32.load + i64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5360 + i32.const 5552 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0132 - local.get $1 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0133 + local.set $0 + br $for-loop|0380 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54386,126 +52694,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 i32.store - local.get $4 + local.get $1 i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $4 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5392 + i32.const 5584 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $4 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|0135 - local.get $1 - local.get $2 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + loop $for-loop|081 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - i32.load + f32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5392 + i32.const 5584 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $1 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0135 + local.set $0 + br $for-loop|081 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 5424 + i32.const 5616 i32.store offset=4 i32.const 0 - local.set $1 - local.get $4 + local.set $0 + local.get $1 i32.load offset=4 - local.set $3 - local.get $4 + local.set $2 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0137 - loop $for-loop|0138 - local.get $1 - local.get $2 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 + loop $for-loop|0382 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - i32.load + f32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $4 - i32.const 5424 + i32.const 5616 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0137 - local.get $1 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0138 + local.set $0 + br $for-loop|0382 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54513,122 +52821,120 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $3 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $3 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5456 + i32.const 5648 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|0140 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + loop $for-loop|083 local.get $0 - local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl local.get $2 i32.add - i64.load + f64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5456 + i32.const 5648 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0140 + local.set $0 + br $for-loop|083 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer - i32.const 5488 + i32.const 5680 i32.store offset=4 i32.const 0 - local.set $1 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0142 - loop $for-loop|0143 + local.set $3 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 + loop $for-loop|0384 local.get $0 - local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $1 + local.get $0 i32.const 3 i32.shl local.get $2 i32.add - i64.load + f64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5488 + i32.const 5680 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0142 - local.get $1 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|0143 + local.set $0 + br $for-loop|0384 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -54640,122 +52946,114 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $3 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5520 + i32.const 5712 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 3 - i32.shr_u + i32.const 1 + i32.sub local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|0145 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + loop $for-loop|085 local.get $0 - local.get $1 - i32.gt_s + i32.const 0 + i32.ge_s if - local.get $1 - i32.const 3 - i32.shl + local.get $0 local.get $2 i32.add - i64.load + i32.load8_s i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5520 + i32.const 5712 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $1 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $0 i32.const 1 - i32.add - local.set $1 - br $for-loop|0145 + i32.sub + local.set $0 + br $for-loop|085 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 5552 + i32.const 5744 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 3 - i32.shr_u + i32.const 1 + i32.sub local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0147 - loop $for-loop|0148 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 + loop $for-loop|0386 local.get $0 - local.get $1 - i32.gt_s + i32.const 0 + i32.ge_s if - local.get $1 - i32.const 3 - i32.shl + local.get $0 local.get $2 i32.add - i64.load + i32.load8_s i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5552 + i32.const 5744 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0147 - local.get $1 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 + local.get $0 i32.const 1 - i32.add - local.set $1 - br $for-loop|0148 + i32.sub + local.set $0 + br $for-loop|0386 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -54767,122 +53065,114 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $3 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5584 + i32.const 5776 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 2 - i32.shr_u + i32.const 1 + i32.sub local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|0150 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + loop $for-loop|087 local.get $0 - local.get $1 - i32.gt_s + i32.const 0 + i32.ge_s if - local.get $1 - i32.const 2 - i32.shl + local.get $0 local.get $2 i32.add - f32.load + i32.load8_u i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5584 + i32.const 5776 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $0 i32.const 1 - i32.add - local.set $1 - br $for-loop|0150 + i32.sub + local.set $0 + br $for-loop|087 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 5616 + i32.const 5808 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 2 - i32.shr_u + i32.const 1 + i32.sub local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0152 - loop $for-loop|0153 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 + loop $for-loop|0388 local.get $0 - local.get $1 - i32.gt_s + i32.const 0 + i32.ge_s if - local.get $1 - i32.const 2 - i32.shl + local.get $0 local.get $2 i32.add - f32.load + i32.load8_u i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5616 + i32.const 5808 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0152 - local.get $1 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 + local.get $0 i32.const 1 - i32.add - local.set $1 - br $for-loop|0153 + i32.sub + local.set $0 + br $for-loop|0388 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -54894,122 +53184,114 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $3 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 5648 + i32.const 5840 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 3 - i32.shr_u + i32.const 1 + i32.sub local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|0155 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.089 + loop $for-loop|090 local.get $0 - local.get $1 - i32.gt_s + i32.const 0 + i32.ge_s if - local.get $1 - i32.const 3 - i32.shl + local.get $0 local.get $2 i32.add - f64.load + i32.load8_u i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5648 + i32.const 5840 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.089 + local.get $0 i32.const 1 - i32.add - local.set $1 - br $for-loop|0155 + i32.sub + local.set $0 + br $for-loop|090 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner8 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 5680 + i32.const 5872 i32.store offset=4 - i32.const 0 - local.set $1 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 3 - i32.shr_u + i32.const 1 + i32.sub local.set $0 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0157 - loop $for-loop|0158 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0191 + loop $for-loop|0392 local.get $0 - local.get $1 - i32.gt_s + i32.const 0 + i32.ge_s if - local.get $1 - i32.const 3 - i32.shl + local.get $0 local.get $2 i32.add - f64.load + i32.load8_u i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5680 + i32.const 5872 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0157 - local.get $1 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0191 + local.get $0 i32.const 1 - i32.add - local.set $1 - br $for-loop|0158 + i32.sub + local.set $0 + br $for-loop|0392 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner9 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -55021,114 +53303,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $3 + call $~lib/typedarray/Int16Array#__set + local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $3 + call $~lib/typedarray/Int16Array#__set + local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5712 + i32.const 5904 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 i32.const 1 + i32.shr_u + i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|0160 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + loop $for-loop|093 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + i32.const 1 + i32.shl local.get $2 i32.add - i32.load8_s + i32.load16_s i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5712 + i32.const 5904 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $1 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0160 + local.set $0 + br $for-loop|093 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner10 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 5744 + i32.const 5936 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 i32.const 1 + i32.shr_u + i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0162 - loop $for-loop|0163 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 + loop $for-loop|0394 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + i32.const 1 + i32.shl local.get $2 i32.add - i32.load8_s + i32.load16_s i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5744 + i32.const 5936 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0162 - local.get $1 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0163 + local.set $0 + br $for-loop|0394 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -55140,114 +53430,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5776 + i32.const 5968 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 i32.const 1 + i32.shr_u + i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|0165 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + loop $for-loop|095 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + i32.const 1 + i32.shl local.get $2 i32.add - i32.load8_u + i32.load16_u i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5776 + i32.const 5968 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0165 + local.set $0 + br $for-loop|095 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner10 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 6000 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 i32.const 1 + i32.shr_u + i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0167 - loop $for-loop|0168 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 + loop $for-loop|0396 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + i32.const 1 + i32.shl local.get $2 i32.add - i32.load8_u + i32.load16_u i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5808 + i32.const 6000 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0167 - local.get $1 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0168 + local.set $0 + br $for-loop|0396 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -55259,114 +53557,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + call $~lib/typedarray/Int32Array#__set + local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + call $~lib/typedarray/Int32Array#__set + local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5840 + i32.const 6032 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 + i32.const 2 + i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0171 - loop $for-loop|0172 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + loop $for-loop|097 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + i32.const 2 + i32.shl local.get $2 i32.add - i32.load8_u + i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5840 + i32.const 6032 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0171 - local.get $1 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0172 + local.set $0 + br $for-loop|097 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner10 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 5872 + i32.const 6064 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 + i32.const 2 + i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0174 - loop $for-loop|0175 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 + loop $for-loop|0398 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + i32.const 2 + i32.shl local.get $2 i32.add - i32.load8_u + i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5872 + i32.const 6064 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0174 - local.get $1 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0175 + local.set $0 + br $for-loop|0398 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -55378,122 +53684,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5904 + i32.const 6096 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|0177 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + loop $for-loop|099 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - i32.const 1 + local.get $0 + i32.const 2 i32.shl local.get $2 i32.add - i32.load16_s + i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5904 + i32.const 6096 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $1 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0177 + local.set $0 + br $for-loop|099 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner10 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 5936 + i32.const 6128 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0179 - loop $for-loop|0180 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 + loop $for-loop|03100 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - i32.const 1 + local.get $0 + i32.const 2 i32.shl local.get $2 i32.add - i32.load16_s + i32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5936 + i32.const 6128 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0179 - local.get $1 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0180 + local.set $0 + br $for-loop|03100 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -55505,122 +53811,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $3 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5968 + i32.const 6160 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|0182 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + loop $for-loop|0101 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - i32.const 1 + local.get $0 + i32.const 3 i32.shl local.get $2 i32.add - i32.load16_u + i64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 5968 + i32.const 6160 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $1 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0182 + local.set $0 + br $for-loop|0101 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner10 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 6000 + i32.const 6192 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0184 - loop $for-loop|0185 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 + loop $for-loop|03102 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - i32.const 1 + local.get $0 + i32.const 3 i32.shl local.get $2 i32.add - i32.load16_u + i64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 6000 + i32.const 6192 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0184 - local.get $1 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0185 + local.set $0 + br $for-loop|03102 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -55632,122 +53938,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $3 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 6224 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|0187 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + loop $for-loop|0103 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - i32.const 2 + local.get $0 + i32.const 3 i32.shl local.get $2 i32.add - i32.load + i64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 6032 + i32.const 6224 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $1 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0187 + local.set $0 + br $for-loop|0103 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner10 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 6064 + i32.const 6256 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0189 - loop $for-loop|0190 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 + loop $for-loop|03104 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - i32.const 2 + local.get $0 + i32.const 3 i32.shl local.get $2 i32.add - i32.load + i64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 6064 + i32.const 6256 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0189 - local.get $1 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0190 + local.set $0 + br $for-loop|03104 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -55759,122 +54065,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $3 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $3 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6096 + i32.const 6288 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|0192 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + loop $for-loop|0105 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $2 i32.add - i32.load + f32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 6096 + i32.const 6288 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $1 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0192 + local.set $0 + br $for-loop|0105 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner10 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 6128 + i32.const 6320 i32.store offset=4 - local.get $3 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0194 - loop $for-loop|0195 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 + loop $for-loop|03106 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 2 i32.shl local.get $2 i32.add - i32.load + f32.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $3 - i32.const 6128 + i32.const 6320 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0194 - local.get $1 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0195 + local.set $0 + br $for-loop|03106 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -55886,126 +54192,128 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $2 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $2 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6160 + i32.const 6352 i32.store offset=4 - local.get $2 + local.get $1 i32.load offset=4 - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|0197 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + loop $for-loop|0107 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add - i64.load + f64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $2 - i32.const 6160 + i32.const 6352 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0197 + local.set $0 + br $for-loop|0107 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 1 i32.ne - br_if $folding-inner10 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 6192 + i32.const 6384 i32.store offset=4 - local.get $2 + local.get $1 i32.load offset=4 - local.set $0 - local.get $2 + local.set $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u i32.const 1 i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0199 - loop $for-loop|0200 - local.get $1 + local.set $0 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 + loop $for-loop|03108 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add - i64.load + f64.load i32.const 3 global.set $~argumentsLength + local.get $0 local.get $1 - local.get $2 - i32.const 6192 + i32.const 6384 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0199 - local.get $1 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|0200 + local.set $0 + br $for-loop|03108 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne - br_if $folding-inner11 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56013,126 +54321,121 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $2 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $2 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $0 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + i32.const 6 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6224 + i32.const 6416 i32.store offset=4 - local.get $2 - i32.load offset=4 - local.set $0 - local.get $2 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|0202 + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|0109 local.get $1 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if local.get $1 - i32.const 3 - i32.shl - local.get $0 + local.get $3 i32.add - i64.load + i32.load8_s + local.set $5 i32.const 3 global.set $~argumentsLength + i32.const 0 + local.get $5 local.get $1 - local.get $2 - i32.const 6224 + local.get $0 + i32.const 6416 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + drop local.get $1 i32.const 1 - i32.sub + i32.add local.set $1 - br $for-loop|0202 + br $for-loop|0109 end end - i32.const -1 - local.set $1 + i32.const 1 end - local.get $1 - i32.const 1 - i32.ne - br_if $folding-inner10 + i32.eqz + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6256 + i32.const 6448 i32.store offset=4 - local.get $2 - i32.load offset=4 - local.set $0 - local.get $2 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 1 - i32.sub + i32.const 0 local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0204 - loop $for-loop|0205 + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|03110 local.get $1 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if local.get $1 - i32.const 3 - i32.shl - local.get $0 + local.get $3 i32.add - i64.load + i32.load8_s + local.set $5 i32.const 3 global.set $~argumentsLength + i32.const 0 + local.get $5 local.get $1 - local.get $2 - i32.const 6256 + local.get $0 + i32.const 6448 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0204 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 + drop local.get $1 i32.const 1 - i32.sub + i32.add local.set $1 - br $for-loop|0205 + br $for-loop|03110 end end - i32.const -1 - local.set $1 + i32.const 1 end - local.get $1 - i32.const -1 - i32.ne - br_if $folding-inner11 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56140,126 +54443,121 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $2 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $0 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + i32.const 6 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6288 + i32.const 6480 i32.store offset=4 - local.get $2 - i32.load offset=4 - local.set $0 - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|0207 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|0111 local.get $1 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if local.get $1 - i32.const 2 - i32.shl - local.get $0 + local.get $3 i32.add - f32.load + i32.load8_u + local.set $5 i32.const 3 global.set $~argumentsLength + i32.const 0 + local.get $5 local.get $1 - local.get $2 - i32.const 6288 + local.get $0 + i32.const 6480 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + drop local.get $1 i32.const 1 - i32.sub + i32.add local.set $1 - br $for-loop|0207 + br $for-loop|0111 end end - i32.const -1 - local.set $1 + i32.const 1 end - local.get $1 - i32.const 1 - i32.ne - br_if $folding-inner10 + i32.eqz + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6320 + i32.const 6512 i32.store offset=4 - local.get $2 - i32.load offset=4 - local.set $0 - local.get $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.sub + i32.const 0 local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0209 - loop $for-loop|0210 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|03112 local.get $1 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if local.get $1 - i32.const 2 - i32.shl - local.get $0 + local.get $3 i32.add - f32.load + i32.load8_u + local.set $5 i32.const 3 global.set $~argumentsLength + i32.const 0 + local.get $5 local.get $1 - local.get $2 - i32.const 6320 + local.get $0 + i32.const 6512 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0209 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 + drop local.get $1 i32.const 1 - i32.sub + i32.add local.set $1 - br $for-loop|0210 + br $for-loop|03112 end end - i32.const -1 - local.set $1 + i32.const 1 end - local.get $1 - i32.const -1 - i32.ne - br_if $folding-inner11 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56267,126 +54565,121 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $2 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $2 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 6352 + i32.const 6544 i32.store offset=4 - local.get $2 - i32.load offset=4 - local.set $0 - local.get $2 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|0212 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0113 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|0114 local.get $1 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if local.get $1 - i32.const 3 - i32.shl - local.get $0 + local.get $3 i32.add - f64.load + i32.load8_u + local.set $5 i32.const 3 global.set $~argumentsLength + i32.const 0 + local.get $5 local.get $1 - local.get $2 - i32.const 6352 + local.get $0 + i32.const 6544 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0113 + drop local.get $1 i32.const 1 - i32.sub + i32.add local.set $1 - br $for-loop|0212 + br $for-loop|0114 end end - i32.const -1 - local.set $1 + i32.const 1 end - local.get $1 - i32.const 1 - i32.ne - br_if $folding-inner10 + i32.eqz + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6384 + i32.const 6576 i32.store offset=4 - local.get $2 - i32.load offset=4 - local.set $0 - local.get $2 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 1 - i32.sub + i32.const 0 local.set $1 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0214 - loop $for-loop|0215 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01115 (result i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + loop $for-loop|03116 local.get $1 - i32.const 0 - i32.ge_s + local.get $4 + i32.lt_s if local.get $1 - i32.const 3 - i32.shl - local.get $0 + local.get $3 i32.add - f64.load + i32.load8_u + local.set $5 i32.const 3 global.set $~argumentsLength + i32.const 0 + local.get $5 local.get $1 - local.get $2 - i32.const 6384 + local.get $0 + i32.const 6576 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0214 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01115 + drop local.get $1 i32.const 1 - i32.sub + i32.add local.set $1 - br $for-loop|0215 + br $for-loop|03116 end end - i32.const -1 - local.set $1 + i32.const 1 end - local.get $1 - i32.const -1 - i32.ne - br_if $folding-inner11 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56394,121 +54687,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $4 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 1 i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $4 + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 2 i32.const 6 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6416 + i32.const 6608 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|0217 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|0117 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 1 + i32.shl + local.get $3 i32.add - i32.load8_s - local.set $0 + i32.load16_s + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 6416 + i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0217 + local.set $1 + br $for-loop|0117 end end i32.const 1 end i32.eqz - br_if $folding-inner12 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6448 + i32.const 6640 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|0220 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|03118 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 1 + i32.shl + local.get $3 i32.add - i32.load8_s - local.set $0 + i32.load16_s + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 6448 + i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0220 + local.set $1 + br $for-loop|03118 end end i32.const 1 end - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56516,121 +54817,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + call $~lib/typedarray/Uint16Array#__set + local.get $0 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6480 + i32.const 6672 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|0222 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|0119 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 1 + i32.shl + local.get $3 i32.add - i32.load8_u - local.set $0 + i32.load16_u + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 6480 + i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0222 + local.set $1 + br $for-loop|0119 end end i32.const 1 end i32.eqz - br_if $folding-inner12 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6512 + i32.const 6704 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|0225 + i32.const 1 + i32.shr_u + local.set $4 + loop $for-loop|03120 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 1 + i32.shl + local.get $3 i32.add - i32.load8_u - local.set $0 + i32.load16_u + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 6512 + i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0225 + local.set $1 + br $for-loop|03120 end end i32.const 1 end - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56638,121 +54947,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $4 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + call $~lib/typedarray/Int32Array#__set + local.get $0 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $4 + call $~lib/typedarray/Int32Array#__set + local.get $0 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6544 + i32.const 6736 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 (result i32) - local.get $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|0229 + i32.const 2 + i32.shr_u + local.set $4 + loop $for-loop|0121 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 2 + i32.shl + local.get $3 i32.add - i32.load8_u - local.set $0 + i32.load + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 6544 + i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0229 + local.set $1 + br $for-loop|0121 end end i32.const 1 end i32.eqz - br_if $folding-inner12 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6576 + i32.const 6768 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - local.set $1 - loop $for-loop|0232 + i32.const 2 + i32.shr_u + local.set $4 + loop $for-loop|03122 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $2 - local.get $6 + local.get $1 + i32.const 2 + i32.shl + local.get $3 i32.add - i32.load8_u - local.set $0 + i32.load + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 6576 + i32.const 6768 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0232 + local.set $1 + br $for-loop|03122 end end i32.const 1 end - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56760,129 +55077,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 1 i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $4 + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 2 i32.const 6 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6608 + i32.const 6800 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|0234 + local.set $4 + loop $for-loop|0123 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 1 + local.get $1 + i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - i32.load16_s - local.set $0 + i32.load + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 6608 + i32.const 6800 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0234 + local.set $1 + br $for-loop|0123 end end i32.const 1 end i32.eqz - br_if $folding-inner12 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6640 + i32.const 6832 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|0237 + local.set $4 + loop $for-loop|03124 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 1 + local.get $1 + i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - i32.load16_s - local.set $0 + i32.load + local.set $5 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $5 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 6640 + i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0237 + local.set $1 + br $for-loop|03124 end end i32.const 1 end - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -56890,129 +55207,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $4 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $4 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set + i64.const 6 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6672 + i32.const 6864 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|0239 + local.set $4 + loop $for-loop|0125 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 1 + local.get $1 + i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add - i32.load16_u - local.set $0 + i64.load + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $0 local.get $6 - local.get $4 - i32.const 6672 + local.get $1 + local.get $0 + i32.const 6864 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) + call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0239 + local.set $1 + br $for-loop|0125 end end i32.const 1 end i32.eqz - br_if $folding-inner12 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6704 + i32.const 6896 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|0242 + local.set $4 + loop $for-loop|03126 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 1 + local.get $1 + i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add - i32.load16_u - local.set $0 + i64.load + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $0 local.get $6 - local.get $4 - i32.const 6704 + local.get $1 + local.get $0 + i32.const 6896 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) + call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0242 + local.set $1 + br $for-loop|03126 end end i32.const 1 end - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -57020,129 +55337,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $4 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $4 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $4 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set + i64.const 6 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6736 + i32.const 6928 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|0244 + local.set $4 + loop $for-loop|0127 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 2 + local.get $1 + i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add - i32.load - local.set $0 + i64.load + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $0 local.get $6 - local.get $4 - i32.const 6736 + local.get $1 + local.get $0 + i32.const 6928 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) + call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0244 + local.set $1 + br $for-loop|0127 end end i32.const 1 end i32.eqz - br_if $folding-inner12 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6768 + i32.const 6960 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|0247 + local.set $4 + loop $for-loop|03128 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 - i32.const 2 + local.get $1 + i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add - i32.load - local.set $0 + i64.load + local.set $6 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $0 local.get $6 - local.get $4 - i32.const 6768 + local.get $1 + local.get $0 + i32.const 6960 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) + call_indirect $0 (type $i64_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0247 + local.set $1 + br $for-loop|03128 end end i32.const 1 end - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -57150,129 +55467,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $4 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 i32.store - local.get $4 + local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $4 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set + f32.const 6 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6800 + i32.const 6992 i32.store offset=4 - i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $4 + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|0249 + local.set $4 + loop $for-loop|0129 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - i32.load - local.set $0 + f32.load + local.set $9 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $9 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 6800 + i32.const 6992 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) + call_indirect $0 (type $f32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0249 + local.set $1 + br $for-loop|0129 end end i32.const 1 end i32.eqz - br_if $folding-inner12 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6832 + i32.const 7024 i32.store offset=4 i32.const 0 - local.set $6 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 (result i32) - local.get $4 + local.set $1 + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $2 - local.get $4 + local.set $3 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|0252 + local.set $4 + loop $for-loop|03130 local.get $1 - local.get $6 - i32.gt_s + local.get $4 + i32.lt_s if - local.get $6 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - i32.load - local.set $0 + f32.load + local.set $9 i32.const 3 global.set $~argumentsLength i32.const 0 + local.get $9 + local.get $1 local.get $0 - local.get $6 - local.get $4 - i32.const 6832 + i32.const 7024 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) + call_indirect $0 (type $f32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 drop - local.get $6 + local.get $1 i32.const 1 i32.add - local.set $6 - br $for-loop|0252 + local.set $1 + br $for-loop|03130 end end i32.const 1 end - br_if $folding-inner13 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -57280,517 +55597,719 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $3 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set + f64.const 6 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6864 + i32.const 7056 i32.store offset=4 - i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $3 + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $0 i32.load offset=4 - local.set $1 - local.get $3 + local.set $3 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|0254 - local.get $0 - local.get $5 - i32.gt_s + local.set $4 + loop $for-loop|0131 + local.get $1 + local.get $4 + i32.lt_s if - local.get $5 + local.get $1 i32.const 3 i32.shl - local.get $1 + local.get $3 i32.add - i64.load - local.set $9 + f64.load + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $9 - local.get $5 - local.get $3 - i32.const 6864 + local.get $10 + local.get $1 + local.get $0 + i32.const 7056 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $f64_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 - br $for-loop|0254 + local.set $1 + br $for-loop|0131 end end i32.const 1 end i32.eqz - br_if $folding-inner12 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer - i32.const 6896 + i32.const 7088 i32.store offset=4 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 (result i32) - local.get $3 + local.set $1 + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) + local.get $0 i32.load offset=4 - local.set $1 - local.get $3 + local.set $3 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 - loop $for-loop|0257 - local.get $0 - local.get $5 - i32.gt_s + local.set $4 + loop $for-loop|03132 + local.get $1 + local.get $4 + i32.lt_s if - local.get $5 + local.get $1 i32.const 3 i32.shl - local.get $1 + local.get $3 i32.add - i64.load - local.set $9 + f64.load + local.set $10 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $9 - local.get $5 - local.get $3 - i32.const 6896 + local.get $10 + local.get $1 + local.get $0 + i32.const 7088 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $f64_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 - br $for-loop|0257 + local.set $1 + br $for-loop|03132 end end - i32.const 1 + i32.const 1 + end + br_if $folding-inner16 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7200 + i32.store offset=8 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + local.set $3 + loop $for-loop|073133 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_s + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + i32.const 7200 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|073133 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner17 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7232 + i32.store offset=8 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + local.set $3 + loop $for-loop|076 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength + local.get $2 + local.get $0 + i32.const 7232 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|076 + end end - br_if $folding-inner13 + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 i32.store - local.get $3 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set + local.get $0 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - i32.const 6928 + i32.const 7152 i32.store offset=4 + local.get $0 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 - local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $0 - loop $for-loop|0259 - local.get $0 - local.get $5 - i32.gt_s - if - local.get $5 - i32.const 3 - i32.shl - local.get $1 - i32.add - i64.load - local.set $9 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $9 - local.get $5 - local.get $3 - i32.const 6928 - i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 - drop - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0259 - end - end - i32.const 1 - end - i32.eqz - br_if $folding-inner12 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 6960 + i32.const 7152 i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + i32.const 7264 + i32.store offset=8 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + local.set $3 + loop $for-loop|080 + local.get $2 local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $0 - loop $for-loop|0262 + i32.lt_s + if + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.const 3 + global.set $~argumentsLength + local.get $2 local.get $0 - local.get $5 - i32.gt_s - if - local.get $5 - i32.const 3 - i32.shl - local.get $1 - i32.add - i64.load - local.set $9 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $9 - local.get $5 - local.get $3 - i32.const 6960 - i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 - drop - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0262 - end + i32.const 7264 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|080 end - i32.const 1 end - br_if $folding-inner13 + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 i32.store - local.get $3 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $3 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $3 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set + local.get $0 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - i32.const 6992 + i32.const 7152 i32.store offset=4 + local.get $0 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $0 - loop $for-loop|0264 - local.get $0 - local.get $5 - i32.gt_s - if - local.get $5 - i32.const 2 - i32.shl - local.get $1 - i32.add - f32.load - local.set $11 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $11 - local.get $5 - local.get $3 - i32.const 6992 - i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 - drop - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0264 - end - end - i32.const 1 - end - i32.eqz - br_if $folding-inner12 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 7152 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7296 + i32.store offset=8 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + loop $for-loop|083134 + local.get $2 local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $0 - loop $for-loop|0267 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.load16_s + i32.const 3 + global.set $~argumentsLength + local.get $2 local.get $0 - local.get $5 - i32.gt_s - if - local.get $5 - i32.const 2 - i32.shl - local.get $1 - i32.add - f32.load - local.set $11 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $11 - local.get $5 - local.get $3 - i32.const 7024 - i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 - drop - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0267 - end + i32.const 7296 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|083134 end - i32.const 1 end - br_if $folding-inner13 + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 i32.store - local.get $3 + local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $3 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $3 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7056 + i32.const 7152 i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store offset=8 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + loop $for-loop|086 + local.get $2 local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $0 - loop $for-loop|0269 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.load16_u + i32.const 3 + global.set $~argumentsLength + local.get $2 local.get $0 - local.get $5 - i32.gt_s - if - local.get $5 - i32.const 3 - i32.shl - local.get $1 - i32.add - f64.load - local.set $12 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $12 - local.get $5 - local.get $3 - i32.const 7056 - i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 - drop - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0269 - end + i32.const 7328 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|086 end - i32.const 1 end - i32.eqz - br_if $folding-inner12 + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner17 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - i32.const 7088 + i32.const 7152 i32.store offset=4 + local.get $0 i32.const 0 - local.set $5 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 (result i32) - local.get $3 - i32.load offset=4 - local.set $1 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7360 + i32.store offset=8 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|089 + local.get $2 local.get $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $0 - loop $for-loop|0272 + i32.lt_s + if + local.get $2 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $2 local.get $0 - local.get $5 - i32.gt_s - if - local.get $5 - i32.const 3 - i32.shl - local.get $1 - i32.add - f64.load - local.set $12 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - local.get $12 - local.get $5 - local.get $3 - i32.const 7088 - i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 - drop - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0272 - end + i32.const 7360 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|089 end - i32.const 1 end - br_if $folding-inner13 + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -57800,7 +56319,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57812,79 +56331,80 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 i32.store - local.get $3 + local.get $0 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $0 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $0 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $0 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7200 + i32.const 7392 i32.store offset=8 i32.const 0 - local.set $5 - local.get $3 - i32.load offset=4 local.set $2 - local.get $3 - i32.load offset=8 + local.get $0 + i32.load offset=4 local.set $1 - loop $for-loop|054274 - local.get $1 - local.get $5 - i32.gt_s + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $3 + loop $for-loop|092 + local.get $2 + local.get $3 + i32.lt_s if local.get $2 - local.get $5 + i32.const 2 + i32.shl + local.get $1 i32.add - i32.load8_s + i32.load i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $3 - i32.const 7200 + local.get $2 + local.get $0 + i32.const 7392 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $5 + local.get $2 i32.const 1 i32.add - local.set $5 - br $for-loop|054274 + local.set $2 + br $for-loop|092 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner14 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -57896,7 +56416,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -57908,82 +56428,83 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7232 + i32.const 7424 i32.store offset=8 i32.const 0 - local.set $5 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - local.set $1 - loop $for-loop|056 - local.get $1 - local.get $5 - i32.gt_s + i32.const 3 + i32.shr_u + local.set $3 + loop $for-loop|095135 + local.get $0 + local.get $3 + i32.lt_s if + local.get $0 + i32.const 3 + i32.shl local.get $2 - local.get $5 i32.add - i32.load8_u + i64.load i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $3 - i32.const 7232 + local.get $0 + local.get $1 + i32.const 7424 i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $5 + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|056 + local.set $0 + br $for-loop|095135 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner14 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -57995,7 +56516,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58007,82 +56528,83 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7264 + i32.const 7456 i32.store offset=8 i32.const 0 - local.set $5 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - local.set $1 - loop $for-loop|059 - local.get $1 - local.get $5 - i32.gt_s + i32.const 3 + i32.shr_u + local.set $3 + loop $for-loop|098 + local.get $0 + local.get $3 + i32.lt_s if + local.get $0 + i32.const 3 + i32.shl local.get $2 - local.get $5 i32.add - i32.load8_u + i64.load i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $3 - i32.const 7264 + local.get $0 + local.get $1 + i32.const 7456 i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $5 + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|059 + local.set $0 + br $for-loop|098 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner14 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58094,7 +56616,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58106,83 +56628,83 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7296 + i32.const 7488 i32.store offset=8 i32.const 0 - local.set $5 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 2 i32.shr_u - local.set $1 - loop $for-loop|061278 - local.get $1 - local.get $5 - i32.gt_s + local.set $3 + loop $for-loop|0101136 + local.get $0 + local.get $3 + i32.lt_s if - local.get $5 - i32.const 1 + local.get $0 + i32.const 2 i32.shl local.get $2 i32.add - i32.load16_s + f32.load i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $3 - i32.const 7296 + local.get $0 + local.get $1 + i32.const 7488 i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $5 + call_indirect $0 (type $f32_i32_i32_=>_none) + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|061278 + local.set $0 + br $for-loop|0101136 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner14 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -58194,7 +56716,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -58206,686 +56728,990 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 i32.store - local.get $3 + local.get $1 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $3 + local.get $1 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7328 + i32.const 7520 i32.store offset=8 i32.const 0 - local.set $5 - local.get $3 + local.set $0 + local.get $1 i32.load offset=4 local.set $2 - local.get $3 + local.get $1 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - local.set $1 - loop $for-loop|063280 - local.get $1 - local.get $5 - i32.gt_s + local.set $3 + loop $for-loop|0104 + local.get $0 + local.get $3 + i32.lt_s if - local.get $5 - i32.const 1 + local.get $0 + i32.const 3 i32.shl local.get $2 i32.add - i32.load16_u + f64.load i32.const 3 global.set $~argumentsLength - local.get $5 - local.get $3 - i32.const 7328 + local.get $0 + local.get $1 + i32.const 7520 i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $5 + call_indirect $0 (type $f64_i32_i32_=>_none) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0104 + end + end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner17 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 7616 + i32.store + local.get $1 + i32.const 7628 + i32.load + local.tee $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 + i32.store offset=8 + loop $for-loop|0106 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0106 + end + end + local.get $2 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Int8Array#__get + i32.const 7616 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.extend8_s + i32.ne + br_if $folding-inner18 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|063280 + local.set $0 + br $for-loop|1 end end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int8Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 8 + i32.ne + br_if $folding-inner19 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 7 + i32.ne + br_if $folding-inner20 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 6 + i32.ne + br_if $folding-inner21 + local.get $0 i32.const 3 + call $~lib/typedarray/Int8Array#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 + i32.store offset=16 + local.get $1 + i32.const 7616 i32.store - local.get $3 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $1 + i32.const 7628 + i32.load + local.tee $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7360 + local.get $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 i32.store offset=8 - i32.const 0 - local.set $5 - local.get $3 - i32.load offset=4 - local.set $2 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $1 - loop $for-loop|065 + loop $for-loop|020137 + local.get $0 local.get $1 - local.get $5 - i32.gt_s + i32.lt_s if - local.get $5 - i32.const 2 - i32.shl local.get $2 - i32.add - i32.load - i32.const 3 - global.set $~argumentsLength - local.get $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set local.get $3 - i32.const 7360 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|065 + local.set $0 + br $for-loop|020137 end end - global.get $std/typedarray/forEachCallCount + local.get $2 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|121 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8Array#__get + i32.const 7616 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + br_if $folding-inner18 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|121 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 8 + call $~lib/typedarray/Uint8Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 8 + i32.ne + br_if $folding-inner19 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 7 + i32.ne + br_if $folding-inner20 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 6 + i32.ne + br_if $folding-inner21 + local.get $0 i32.const 3 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + i32.store offset=16 + local.get $1 + i32.const 7616 i32.store - local.get $3 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $3 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $1 + i32.const 7628 + i32.load + local.tee $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 i32.store offset=4 - local.get $3 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7392 + local.get $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 i32.store offset=8 - i32.const 0 - local.set $5 - local.get $3 - i32.load offset=4 - local.set $2 - local.get $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $1 - loop $for-loop|067 + loop $for-loop|024108 + local.get $0 local.get $1 - local.get $5 - i32.gt_s + i32.lt_s if - local.get $5 - i32.const 2 - i32.shl local.get $2 - i32.add - i32.load - i32.const 3 - global.set $~argumentsLength - local.get $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set local.get $3 - i32.const 7392 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|067 + local.set $0 + br $for-loop|024108 end end - global.get $std/typedarray/forEachCallCount + local.get $2 + call $~lib/typedarray/Int8Array#reverse + drop + i32.const 0 + local.set $0 + loop $for-loop|125 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7616 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 255 + i32.and + i32.ne + br_if $folding-inner18 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|125 + end + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 8 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 8 + i32.ne + br_if $folding-inner19 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7 + i32.ne + br_if $folding-inner20 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 6 + i32.ne + br_if $folding-inner21 + local.get $0 i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 + i32.store offset=16 + local.get $1 + i32.const 7616 i32.store - local.get $2 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $1 + i32.const 7628 + i32.load + local.tee $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7424 + local.get $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 i32.store offset=8 - i32.const 0 - local.set $5 - local.get $2 - i32.load offset=4 - local.set $1 + loop $for-loop|028138 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|028138 + end + end local.get $2 - i32.load offset=8 - i32.const 3 - i32.shr_u + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 local.set $0 - loop $for-loop|069 + loop $for-loop|129 local.get $0 - local.get $5 - i32.gt_s + local.get $1 + i32.lt_s if - local.get $5 - i32.const 3 - i32.shl - local.get $1 - i32.add - i64.load - i32.const 3 - global.set $~argumentsLength - local.get $5 local.get $2 - i32.const 7424 - i32.load - call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $5 + local.get $0 + call $~lib/typedarray/Int16Array#__get + i32.const 7616 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.extend16_s + i32.ne + br_if $folding-inner18 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|069 + local.set $0 + br $for-loop|129 end end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 8 + call $~lib/typedarray/Int16Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner19 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner20 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner21 + local.get $0 i32.const 3 + call $~lib/typedarray/Int16Array#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + i32.store offset=16 + local.get $1 + i32.const 7616 i32.store - local.get $2 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $1 + i32.const 7628 + i32.load + local.tee $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7456 + local.get $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 i32.store offset=8 - i32.const 0 - local.set $5 - local.get $2 - i32.load offset=4 - local.set $1 + loop $for-loop|032 + local.get $0 + local.get $1 + i32.lt_s + if + local.get $2 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|032 + end + end local.get $2 - i32.load offset=8 - i32.const 3 - i32.shr_u + call $~lib/typedarray/Int16Array#reverse + drop + i32.const 0 local.set $0 - loop $for-loop|071285 + loop $for-loop|133 local.get $0 - local.get $5 - i32.gt_s + local.get $1 + i32.lt_s if - local.get $5 - i32.const 3 - i32.shl - local.get $1 - i32.add - i64.load - i32.const 3 - global.set $~argumentsLength - local.get $5 local.get $2 - i32.const 7456 - i32.load - call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $5 + local.get $0 + call $~lib/typedarray/Uint16Array#__get + i32.const 7616 + local.get $1 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.const 65535 + i32.and + i32.ne + br_if $folding-inner18 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|071285 + local.set $0 + br $for-loop|133 end end - global.get $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 8 + call $~lib/typedarray/Uint16Array#subarray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner19 + local.get $0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner20 + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner21 + local.get $0 i32.const 3 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 - i32.const 0 - i32.store offset=8 + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $2 + i32.store offset=16 + local.get $1 + i32.const 7616 i32.store - local.get $2 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 + local.get $1 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 local.get $2 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7488 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 i32.store offset=8 + loop $for-loop|036 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $3 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|036 + end + end i32.const 0 - local.set $5 - local.get $2 + local.set $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $2 + local.set $4 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $8 + i32.load + local.set $11 + local.get $8 + local.get $5 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $8 + i32.load + i32.store + local.get $8 + local.get $11 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 local.set $0 - loop $for-loop|073287 + loop $for-loop|137 local.get $0 - local.get $5 - i32.gt_s + local.get $2 + i32.lt_s if - local.get $5 - i32.const 2 - i32.shl local.get $1 - i32.add - f32.load - i32.const 3 - global.set $~argumentsLength - local.get $5 + local.get $0 + call $~lib/typedarray/Int32Array#__get + i32.const 7616 local.get $2 - i32.const 7488 - i32.load - call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $5 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.ne + br_if $folding-inner18 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|073287 + local.set $0 + br $for-loop|137 end end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner14 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner23 + local.get $3 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store local.get $0 + i32.store offset=12 i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount + local.set $2 local.get $0 - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $2 - i32.store - local.get $2 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7520 - i32.store offset=8 - i32.const 0 - local.set $5 - local.get $2 i32.load offset=4 - local.set $1 - local.get $2 + local.set $3 + local.get $0 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $0 - loop $for-loop|075 - local.get $0 - local.get $5 - i32.gt_s - if - local.get $5 - i32.const 3 - i32.shl - local.get $1 - i32.add - f64.load - i32.const 3 - global.set $~argumentsLength - local.get $5 + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0140 local.get $2 - i32.const 7520 - i32.load - call_indirect $0 (type $f64_i32_i32_=>_none) local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|075 + i32.lt_u + if + local.get $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + i32.load + local.set $8 + local.get $7 + local.get $4 + local.get $2 + i32.sub + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0140 + end end end - global.get $std/typedarray/forEachCallCount + local.get $0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.ne + br_if $folding-inner19 + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.ne + br_if $folding-inner20 + local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.ne + br_if $folding-inner21 + local.get $0 i32.const 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 i32.ne - br_if $folding-inner14 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58893,131 +57719,234 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 7616 i32.store - local.get $0 + local.get $1 i32.const 7628 i32.load local.tee $2 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 i32.store offset=8 - loop $for-loop|028 + loop $for-loop|040141 + local.get $0 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $3 i32.const 7616 - local.get $3 + local.get $0 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $1 + call $~lib/typedarray/Uint32Array#__set local.get $3 + local.get $0 i32.const 7616 - local.get $3 + local.get $0 call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $3 + call $~lib/typedarray/Uint32Array#__set + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|028 + local.set $0 + br $for-loop|040141 end end - local.get $0 - call $~lib/typedarray/Int8Array#reverse - drop i32.const 0 - local.set $3 - loop $for-loop|1 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $4 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0143 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $8 + i32.load + local.set $11 + local.get $8 + local.get $5 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $8 + i32.load + i32.store + local.get $8 + local.get $11 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0143 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|141 + local.get $0 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $3 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 7616 local.get $2 i32.const 1 i32.sub - local.get $3 + local.get $0 i32.sub call $~lib/array/Array#__get - i32.extend8_s i32.ne - br_if $folding-inner24 - local.get $3 + br_if $folding-inner18 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|1 + local.set $0 + br $for-loop|141 end end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 4 + local.get $3 i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.set $1 + call $~lib/typedarray/Uint32Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 - local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0145 + local.get $2 + local.get $5 + i32.lt_u + if + local.get $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + i32.load + local.set $8 + local.get $7 + local.get $4 + local.get $2 + i32.sub + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0145 + end + end + end + local.get $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 8 i32.ne - br_if $folding-inner25 + br_if $folding-inner19 local.get $0 i32.const 1 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 7 i32.ne - br_if $folding-inner26 + br_if $folding-inner20 local.get $0 i32.const 2 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 6 i32.ne - br_if $folding-inner27 + br_if $folding-inner21 local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#__get + call $~lib/typedarray/Uint32Array#__get i32.const 5 i32.ne - br_if $folding-inner28 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59025,133 +57954,237 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 7616 i32.store - local.get $0 + local.get $1 i32.const 7628 i32.load local.tee $2 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store offset=8 - loop $for-loop|030 + loop $for-loop|044 + local.get $0 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $3 i32.const 7616 - local.get $3 + local.get $0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $1 + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set local.get $3 + local.get $0 i32.const 7616 - local.get $3 + local.get $0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $3 + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|030 + local.set $0 + br $for-loop|044 end end - local.get $0 - call $~lib/typedarray/Int8Array#reverse - drop i32.const 0 - local.set $3 - loop $for-loop|131 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $4 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0146 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $8 + i64.load + local.set $6 + local.get $8 + local.get $5 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $8 + i64.load + i64.store + local.get $8 + local.get $6 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0146 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|145 + local.get $0 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $3 - call $~lib/typedarray/Uint8Array#__get + call $~lib/typedarray/Int64Array#__get i32.const 7616 local.get $2 i32.const 1 i32.sub - local.get $3 + local.get $0 i32.sub call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - br_if $folding-inner24 - local.get $3 + i64.extend_i32_s + i64.ne + br_if $folding-inner18 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|131 + local.set $0 + br $for-loop|145 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.const 8 - call $~lib/typedarray/Uint8Array#subarray - local.set $1 + call $~lib/typedarray/Int64Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 - local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0148 + local.get $2 + local.get $5 + i32.lt_u + if + local.get $2 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + i64.load + local.set $6 + local.get $7 + local.get $4 + local.get $2 + i32.sub + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + i64.load + i64.store + local.get $7 + local.get $6 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0148 + end + end + end + local.get $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 - i32.ne - br_if $folding-inner25 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.ne + br_if $folding-inner19 local.get $0 i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7 - i32.ne - br_if $folding-inner26 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.ne + br_if $folding-inner20 local.get $0 i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 6 - i32.ne - br_if $folding-inner27 + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.ne + br_if $folding-inner21 local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 - i32.ne - br_if $folding-inner28 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59159,133 +58192,237 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 7616 i32.store - local.get $0 + local.get $1 i32.const 7628 i32.load local.tee $2 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 i32.store offset=8 - loop $for-loop|032 + loop $for-loop|048 + local.get $0 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $3 i32.const 7616 - local.get $3 + local.get $0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set local.get $3 + local.get $0 i32.const 7616 - local.get $3 + local.get $0 call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|032 + local.set $0 + br $for-loop|048 end end - local.get $0 - call $~lib/typedarray/Int8Array#reverse - drop i32.const 0 - local.set $3 - loop $for-loop|133 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $4 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0150 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $8 + i64.load + local.set $6 + local.get $8 + local.get $5 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $8 + i64.load + i64.store + local.get $8 + local.get $6 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0150 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|149 + local.get $0 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#__get + call $~lib/typedarray/Uint64Array#__get i32.const 7616 local.get $2 i32.const 1 i32.sub - local.get $3 + local.get $0 i32.sub call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - br_if $folding-inner24 - local.get $3 + i64.extend_i32_s + i64.ne + br_if $folding-inner18 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|133 + local.set $0 + br $for-loop|149 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $1 + call $~lib/typedarray/Uint64Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 - local.get $1 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0152 + local.get $2 + local.get $5 + i32.lt_u + if + local.get $2 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + i64.load + local.set $6 + local.get $7 + local.get $4 + local.get $2 + i32.sub + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + i64.load + i64.store + local.get $7 + local.get $6 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0152 + end + end + end + local.get $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 - i32.ne - br_if $folding-inner25 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.ne + br_if $folding-inner19 local.get $0 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7 - i32.ne - br_if $folding-inner26 + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.ne + br_if $folding-inner20 local.get $0 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 6 - i32.ne - br_if $folding-inner27 + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.ne + br_if $folding-inner21 local.get $0 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 - i32.ne - br_if $folding-inner28 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59293,130 +58430,237 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 7616 i32.store - local.get $0 + local.get $1 i32.const 7628 i32.load local.tee $2 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 i32.store offset=8 - loop $for-loop|034 + loop $for-loop|052110 + local.get $0 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $3 i32.const 7616 - local.get $3 + local.get $0 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $1 + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set local.get $3 + local.get $0 i32.const 7616 - local.get $3 + local.get $0 call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $3 + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|034 + local.set $0 + br $for-loop|052110 end end - local.get $0 - call $~lib/typedarray/Int16Array#reverse - drop i32.const 0 - local.set $3 - loop $for-loop|135 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $4 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0153 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $8 + f32.load + local.set $9 + local.get $8 + local.get $5 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $4 + i32.add + local.tee $8 + f32.load + f32.store + local.get $8 + local.get $9 + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0153 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|153 + local.get $0 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $3 - call $~lib/typedarray/Int16Array#__get + call $~lib/typedarray/Float32Array#__get i32.const 7616 local.get $2 i32.const 1 i32.sub - local.get $3 + local.get $0 i32.sub call $~lib/array/Array#__get - i32.extend16_s - i32.ne - br_if $folding-inner24 - local.get $3 + f32.convert_i32_s + f32.ne + br_if $folding-inner18 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|135 + local.set $0 + br $for-loop|153 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.set $1 + call $~lib/typedarray/Float32Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 - local.get $1 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0155 + local.get $2 + local.get $5 + i32.lt_u + if + local.get $2 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + f32.load + local.set $9 + local.get $7 + local.get $4 + local.get $2 + i32.sub + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + f32.load + f32.store + local.get $7 + local.get $9 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0155 + end + end + end + local.get $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 - i32.ne - br_if $folding-inner25 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.ne + br_if $folding-inner19 local.get $0 i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 7 - i32.ne - br_if $folding-inner26 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.ne + br_if $folding-inner20 local.get $0 i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 6 - i32.ne - br_if $folding-inner27 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.ne + br_if $folding-inner21 local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#__get - i32.const 5 - i32.ne - br_if $folding-inner28 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -59424,137 +58668,236 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 7616 i32.store - local.get $0 + local.get $1 i32.const 7628 i32.load local.tee $2 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 i32.store offset=8 - loop $for-loop|037 + loop $for-loop|056156 + local.get $0 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $3 i32.const 7616 - local.get $3 + local.get $0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $1 + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set local.get $3 + local.get $0 i32.const 7616 - local.get $3 + local.get $0 call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $3 + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|037 + local.set $0 + br $for-loop|056156 end end - local.get $0 - call $~lib/typedarray/Int16Array#reverse - drop i32.const 0 - local.set $3 - loop $for-loop|138 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $4 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $5 + i32.const 1 + i32.gt_u + if + local.get $5 + i32.const 1 + i32.shr_u + local.set $7 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + loop $while-continue|0157 + local.get $0 + local.get $7 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $8 + f64.load + local.set $10 + local.get $8 + local.get $5 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $4 + i32.add + local.tee $8 + f64.load + f64.store + local.get $8 + local.get $10 + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0157 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|157 + local.get $0 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s if + local.get $1 local.get $0 - local.get $3 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Float64Array#__get i32.const 7616 local.get $2 i32.const 1 i32.sub - local.get $3 + local.get $0 i32.sub call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.ne - br_if $folding-inner24 - local.get $3 + f64.convert_i32_s + f64.ne + br_if $folding-inner18 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|138 + local.set $0 + br $for-loop|157 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 + i32.const 4 i32.const 8 - call $~lib/typedarray/Uint16Array#subarray - local.set $1 + call $~lib/typedarray/Float64Array#subarray + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 - local.get $1 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 + i32.const 0 + local.set $2 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0159 + local.get $2 + local.get $5 + i32.lt_u + if + local.get $2 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + f64.load + local.set $10 + local.get $7 + local.get $4 + local.get $2 + i32.sub + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + f64.load + f64.store + local.get $7 + local.get $10 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0159 + end + end + end + local.get $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 8 - i32.ne - br_if $folding-inner25 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.ne + br_if $folding-inner19 local.get $0 i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 7 - i32.ne - br_if $folding-inner26 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.ne + br_if $folding-inner20 local.get $0 i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 6 - i32.ne - br_if $folding-inner27 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.ne + br_if $folding-inner21 local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 - i32.ne - br_if $folding-inner28 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> @@ -59569,18 +58912,18 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float64Array#constructor - local.tee $4 + local.tee $2 i32.store offset=12 - local.get $4 + local.get $2 i32.const 0 f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -59590,35 +58933,35 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 - loop $while-continue|0 - local.get $0 + local.set $4 + loop $while-continue|0160 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 3 i32.shl - local.get $2 + local.get $4 i32.add f64.load f64.const nan:0x8000000000000 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|0 + local.set $1 + br $while-continue|0160 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -59630,50 +58973,50 @@ unreachable end i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) i32.const 0 - local.get $4 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $3 i32.const 0 - local.get $1 + local.get $3 select i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $4 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|0289 + local.set $2 + loop $while-continue|060 local.get $1 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if i32.const 1 i32.const 1 - local.get $5 + local.get $1 i32.const 3 i32.shl - local.get $0 + local.get $2 i32.add f64.load - local.tee $12 - local.get $12 + local.tee $10 + local.get $10 f64.ne - local.get $12 + local.get $10 f64.const nan:0x8000000000000 f64.eq select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 - br $while-continue|0289 + local.set $1 + br $while-continue|060 end end i32.const 0 @@ -59690,18 +59033,18 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float32Array#constructor - local.tee $4 + local.tee $2 i32.store offset=24 - local.get $4 + local.get $2 i32.const 0 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set i32.const 0 - local.set $0 - i32.const -1 local.set $1 + i32.const -1 + local.set $0 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -59711,35 +59054,35 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $4 + local.get $2 i32.load offset=4 - local.set $2 - loop $while-continue|0290 - local.get $0 + local.set $4 + loop $while-continue|062 + local.get $1 local.get $3 i32.lt_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add f32.load f32.const nan:0x400000 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $0 - br $while-continue|0290 + local.set $1 + br $while-continue|062 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -59751,50 +59094,50 @@ unreachable end i32.const 0 - local.set $5 + local.set $1 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) i32.const 0 - local.get $4 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $3 i32.const 0 - local.get $1 + local.get $3 select i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $4 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|078 + local.set $2 + loop $while-continue|064 local.get $1 - local.get $5 - i32.gt_s + local.get $3 + i32.lt_s if i32.const 1 i32.const 1 - local.get $5 + local.get $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add f32.load - local.tee $11 - local.get $11 + local.tee $9 + local.get $9 f32.ne - local.get $11 + local.get $9 f32.const nan:0x400000 f32.eq select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $5 + local.get $1 i32.const 1 i32.add - local.set $5 - br $while-continue|078 + local.set $1 + br $while-continue|064 end end i32.const 0 @@ -59815,7 +59158,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59826,45 +59169,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int8Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Int8Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59872,33 +59215,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9584 i32.store - local.get $1 + local.get $0 call $~lib/typedarray/Int8Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59910,7 +59253,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59921,60 +59264,60 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Uint8Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 - local.get $1 + br_if $folding-inner23 + local.get $0 call $~lib/typedarray/Uint8Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59986,7 +59329,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59997,60 +59340,60 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Uint8Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 - local.get $1 + br_if $folding-inner23 + local.get $0 call $~lib/typedarray/Uint8Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60062,7 +59405,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60073,45 +59416,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Int16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60119,33 +59462,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9584 i32.store - local.get $1 + local.get $0 call $~lib/typedarray/Int16Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60157,7 +59500,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60168,45 +59511,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Uint16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60214,33 +59557,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9584 i32.store - local.get $1 + local.get $0 call $~lib/typedarray/Uint16Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60252,7 +59595,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60263,45 +59606,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Int32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60309,33 +59652,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9584 i32.store - local.get $1 + local.get $0 call $~lib/typedarray/Int32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60347,7 +59690,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60358,45 +59701,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Uint32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60404,33 +59747,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9584 i32.store - local.get $1 + local.get $0 call $~lib/typedarray/Uint32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60442,7 +59785,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60453,45 +59796,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 4 i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60499,33 +59842,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9584 i32.store - local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60537,7 +59880,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60548,45 +59891,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 4 i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Uint64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner15 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60594,33 +59937,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9584 i32.store - local.get $1 + local.get $0 call $~lib/typedarray/Uint64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner16 + br_if $folding-inner24 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60632,7 +59975,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60643,45 +59986,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 4 f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Float32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10800 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner17 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60689,33 +60032,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9584 i32.store - local.get $1 + local.get $0 call $~lib/typedarray/Float32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 10800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner18 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60727,7 +60070,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60738,45 +60081,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Float64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 4 f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $1 + local.get $0 call $~lib/typedarray/Float64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10800 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner17 + br_if $folding-inner25 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60784,33 +60127,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 9584 i32.store - local.get $1 + local.get $0 call $~lib/typedarray/Float64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store offset=4 + local.tee $1 local.get $0 + i32.store offset=4 + local.get $1 i32.const 10800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner18 + br_if $folding-inner26 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60862,7 +60205,7 @@ unreachable end i32.const 0 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60870,66 +60213,66 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load - local.tee $3 + local.tee $4 call $~lib/typedarray/Int8Array#constructor - local.tee $6 + local.tee $2 i32.store offset=4 - loop $for-loop|041 - local.get $2 - local.get $3 + loop $for-loop|069 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 local.get $2 + local.get $0 i32.const 10928 - local.get $2 + local.get $0 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|041 + local.set $0 + br $for-loop|069 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load local.tee $0 + local.get $2 + i32.load + local.tee $1 i32.store offset=8 - local.get $1 local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.load offset=4 - local.get $6 + local.get $2 i32.load i32.sub local.tee $0 - local.get $6 + local.get $2 i32.load offset=8 local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -60941,12 +60284,12 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -60958,16 +60301,16 @@ local.tee $1 i32.store local.get $1 - local.get $4 + local.get $3 i32.store local.get $1 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -60976,25 +60319,25 @@ local.get $1 i32.store offset=16 i32.const 0 - local.set $2 - loop $for-loop|142 - local.get $2 - local.get $3 + local.set $0 + loop $for-loop|171 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 local.get $2 + local.get $0 call $~lib/typedarray/Int8Array#__get local.get $1 - local.get $2 + local.get $0 call $~lib/typedarray/Int8Array#__get i32.ne - br_if $folding-inner29 - local.get $2 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|142 + local.set $0 + br $for-loop|171 end end global.get $~lib/memory/__stack_pointer @@ -61002,7 +60345,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61010,64 +60353,64 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load local.tee $2 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $1 i32.store offset=4 - loop $for-loop|043 - local.get $1 + loop $for-loop|074 + local.get $0 local.get $2 i32.lt_s if - local.get $3 local.get $1 + local.get $0 i32.const 10928 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|043 + local.set $0 + br $for-loop|074 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $3 - i32.load local.tee $0 - i32.store offset=8 local.get $1 + i32.load + local.tee $3 + i32.store offset=8 local.get $0 local.get $3 + local.get $1 i32.load offset=4 - local.get $3 + local.get $1 i32.load i32.sub local.tee $0 - local.get $0 - local.get $3 + local.get $1 i32.load offset=8 + local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $0 @@ -61078,28 +60421,28 @@ local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 + local.tee $3 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|144 - local.get $1 + local.set $0 + loop $for-loop|177 + local.get $0 local.get $2 i32.lt_s if - local.get $3 local.get $1 + local.get $0 call $~lib/typedarray/Uint8Array#__get + local.get $3 local.get $0 - local.get $1 call $~lib/typedarray/Uint8Array#__get i32.ne - br_if $folding-inner29 - local.get $1 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|144 + local.set $0 + br $for-loop|177 end end global.get $~lib/memory/__stack_pointer @@ -61107,7 +60450,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61115,67 +60458,67 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load - local.tee $3 + local.tee $4 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 + local.tee $2 i32.store offset=4 - loop $for-loop|047 - local.get $2 - local.get $3 + loop $for-loop|080131 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 local.get $2 + local.get $0 i32.const 10928 - local.get $2 + local.get $0 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|047 + local.set $0 + br $for-loop|080131 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load local.tee $0 + local.get $2 + i32.load + local.tee $1 i32.store offset=8 - local.get $1 local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.load offset=4 - local.get $6 + local.get $2 i32.load i32.sub local.tee $0 - local.get $6 + local.get $2 i32.load offset=8 local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $4 + local.tee $3 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -61187,12 +60530,12 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store - local.get $4 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -61204,16 +60547,16 @@ local.tee $1 i32.store local.get $1 - local.get $4 + local.get $3 i32.store local.get $1 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $4 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -61222,25 +60565,25 @@ local.get $1 i32.store offset=16 i32.const 0 - local.set $2 - loop $for-loop|148 - local.get $2 - local.get $3 + local.set $0 + loop $for-loop|183 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 local.get $2 + local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get local.get $1 - local.get $2 + local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get i32.ne - br_if $folding-inner29 - local.get $2 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|148 + local.set $0 + br $for-loop|183 end end global.get $~lib/memory/__stack_pointer @@ -61248,7 +60591,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61256,61 +60599,61 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load - local.tee $2 + local.tee $4 call $~lib/typedarray/Int16Array#constructor - local.tee $6 + local.tee $2 i32.store offset=4 - loop $for-loop|053 - local.get $1 - local.get $2 + loop $for-loop|086138 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 10928 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|053 + local.set $0 + br $for-loop|086138 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load local.tee $0 + local.get $2 + i32.load + local.tee $1 i32.store offset=8 - local.get $1 local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.load offset=4 - local.get $6 + local.get $2 i32.load i32.sub local.tee $0 - local.get $6 + local.get $2 i32.load offset=8 local.get $0 i32.add @@ -61327,7 +60670,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61338,51 +60681,51 @@ local.tee $0 i32.const 1 i32.and - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 local.get $3 i32.store - local.get $4 + local.get $1 local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 local.get $0 i32.store offset=8 - local.get $4 + local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|154 - local.get $1 - local.get $2 + local.set $0 + loop $for-loop|189 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 call $~lib/typedarray/Int16Array#__get - local.get $4 local.get $1 + local.get $0 call $~lib/typedarray/Int16Array#__get i32.ne - br_if $folding-inner29 - local.get $1 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|154 + local.set $0 + br $for-loop|189 end end global.get $~lib/memory/__stack_pointer @@ -61390,7 +60733,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61398,62 +60741,62 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load - local.tee $2 + local.tee $4 call $~lib/typedarray/Uint16Array#constructor - local.tee $6 + local.tee $2 i32.store offset=4 - loop $for-loop|057 - local.get $1 - local.get $2 + loop $for-loop|092145 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 10928 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|057 + local.set $0 + br $for-loop|092145 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load local.tee $0 + local.get $2 + i32.load + local.tee $1 i32.store offset=8 - local.get $1 local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.load offset=4 - local.get $6 + local.get $2 i32.load i32.sub local.tee $0 - local.get $6 + local.get $2 i32.load offset=8 local.get $0 i32.add @@ -61470,7 +60813,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61481,51 +60824,51 @@ local.tee $0 i32.const 1 i32.and - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 local.get $3 i32.store - local.get $4 + local.get $1 local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 local.get $0 i32.store offset=8 - local.get $4 + local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|158 - local.get $1 - local.get $2 + local.set $0 + loop $for-loop|195 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 call $~lib/typedarray/Uint16Array#__get - local.get $4 local.get $1 + local.get $0 call $~lib/typedarray/Uint16Array#__get i32.ne - br_if $folding-inner29 - local.get $1 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|158 + local.set $0 + br $for-loop|195 end end global.get $~lib/memory/__stack_pointer @@ -61533,7 +60876,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61541,60 +60884,60 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load - local.tee $2 + local.tee $4 call $~lib/typedarray/Int32Array#constructor - local.tee $6 + local.tee $2 i32.store offset=4 - loop $for-loop|060 - local.get $1 - local.get $2 + loop $for-loop|098152 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 10928 - local.get $1 + local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|060 + local.set $0 + br $for-loop|098152 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load local.tee $0 + local.get $2 + i32.load + local.tee $1 i32.store offset=8 - local.get $1 local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.load offset=4 - local.get $6 + local.get $2 i32.load i32.sub local.tee $0 - local.get $6 + local.get $2 i32.load offset=8 local.get $0 i32.add @@ -61611,7 +60954,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61622,51 +60965,51 @@ local.tee $0 i32.const 3 i32.and - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 local.get $3 i32.store - local.get $4 + local.get $1 local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 local.get $0 i32.store offset=8 - local.get $4 + local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|161 - local.get $1 - local.get $2 + local.set $0 + loop $for-loop|1101 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 call $~lib/typedarray/Int32Array#__get - local.get $4 local.get $1 + local.get $0 call $~lib/typedarray/Int32Array#__get i32.ne - br_if $folding-inner29 - local.get $1 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|161 + local.set $0 + br $for-loop|1101 end end global.get $~lib/memory/__stack_pointer @@ -61674,7 +61017,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61682,60 +61025,60 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load - local.tee $2 + local.tee $4 call $~lib/typedarray/Uint32Array#constructor - local.tee $6 + local.tee $2 i32.store offset=4 - loop $for-loop|064 - local.get $1 - local.get $2 + loop $for-loop|0104159 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 10928 - local.get $1 + local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|064 + local.set $0 + br $for-loop|0104159 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load local.tee $0 + local.get $2 + i32.load + local.tee $1 i32.store offset=8 - local.get $1 local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.load offset=4 - local.get $6 + local.get $2 i32.load i32.sub local.tee $0 - local.get $6 + local.get $2 i32.load offset=8 local.get $0 i32.add @@ -61752,7 +61095,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61763,51 +61106,51 @@ local.tee $0 i32.const 3 i32.and - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 local.get $3 i32.store - local.get $4 + local.get $1 local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 local.get $0 i32.store offset=8 - local.get $4 + local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|165 - local.get $1 - local.get $2 + local.set $0 + loop $for-loop|1107 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 call $~lib/typedarray/Uint32Array#__get - local.get $4 local.get $1 + local.get $0 call $~lib/typedarray/Uint32Array#__get i32.ne - br_if $folding-inner29 - local.get $1 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|165 + local.set $0 + br $for-loop|1107 end end global.get $~lib/memory/__stack_pointer @@ -61815,7 +61158,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61823,61 +61166,61 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load - local.tee $2 + local.tee $4 call $~lib/typedarray/Int64Array#constructor - local.tee $6 + local.tee $2 i32.store offset=4 - loop $for-loop|070 - local.get $1 - local.get $2 + loop $for-loop|0110 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 10928 - local.get $1 + local.get $0 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|070 + local.set $0 + br $for-loop|0110 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load local.tee $0 + local.get $2 + i32.load + local.tee $1 i32.store offset=8 - local.get $1 local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.load offset=4 - local.get $6 + local.get $2 i32.load i32.sub local.tee $0 - local.get $6 + local.get $2 i32.load offset=8 local.get $0 i32.add @@ -61894,7 +61237,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61905,51 +61248,51 @@ local.tee $0 i32.const 7 i32.and - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 local.get $3 i32.store - local.get $4 + local.get $1 local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 local.get $0 i32.store offset=8 - local.get $4 + local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|171 - local.get $1 - local.get $2 + local.set $0 + loop $for-loop|1113 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 call $~lib/typedarray/Int64Array#__get - local.get $4 local.get $1 + local.get $0 call $~lib/typedarray/Int64Array#__get i64.ne - br_if $folding-inner29 - local.get $1 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|171 + local.set $0 + br $for-loop|1113 end end global.get $~lib/memory/__stack_pointer @@ -61957,7 +61300,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61965,61 +61308,61 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load - local.tee $2 + local.tee $4 call $~lib/typedarray/Uint64Array#constructor - local.tee $6 + local.tee $2 i32.store offset=4 - loop $for-loop|074 - local.get $1 - local.get $2 + loop $for-loop|0116 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 10928 - local.get $1 + local.get $0 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|074 + local.set $0 + br $for-loop|0116 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load local.tee $0 + local.get $2 + i32.load + local.tee $1 i32.store offset=8 - local.get $1 local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.load offset=4 - local.get $6 + local.get $2 i32.load i32.sub local.tee $0 - local.get $6 + local.get $2 i32.load offset=8 local.get $0 i32.add @@ -62036,7 +61379,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62047,51 +61390,51 @@ local.tee $0 i32.const 7 i32.and - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 local.get $3 i32.store - local.get $4 + local.get $1 local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 local.get $0 i32.store offset=8 - local.get $4 + local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|175 - local.get $1 - local.get $2 + local.set $0 + loop $for-loop|1119 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 call $~lib/typedarray/Uint64Array#__get - local.get $4 local.get $1 + local.get $0 call $~lib/typedarray/Uint64Array#__get i64.ne - br_if $folding-inner29 - local.get $1 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|175 + local.set $0 + br $for-loop|1119 end end global.get $~lib/memory/__stack_pointer @@ -62099,7 +61442,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -62107,61 +61450,61 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load - local.tee $2 + local.tee $4 call $~lib/typedarray/Float32Array#constructor - local.tee $6 + local.tee $2 i32.store offset=4 - loop $for-loop|077 - local.get $1 - local.get $2 + loop $for-loop|0122 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 10928 - local.get $1 + local.get $0 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|077 + local.set $0 + br $for-loop|0122 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load local.tee $0 + local.get $2 + i32.load + local.tee $1 i32.store offset=8 - local.get $1 local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.load offset=4 - local.get $6 + local.get $2 i32.load i32.sub local.tee $0 - local.get $6 + local.get $2 i32.load offset=8 local.get $0 i32.add @@ -62178,7 +61521,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62189,51 +61532,51 @@ local.tee $0 i32.const 3 i32.and - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 local.get $3 i32.store - local.get $4 + local.get $1 local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 local.get $0 i32.store offset=8 - local.get $4 + local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|178 - local.get $1 - local.get $2 + local.set $0 + loop $for-loop|1125 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 call $~lib/typedarray/Float32Array#__get - local.get $4 local.get $1 + local.get $0 call $~lib/typedarray/Float32Array#__get f32.ne - br_if $folding-inner29 - local.get $1 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|178 + local.set $0 + br $for-loop|1125 end end global.get $~lib/memory/__stack_pointer @@ -62241,7 +61584,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -62249,61 +61592,61 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 - local.get $0 + local.get $1 i32.const 10928 i32.store - local.get $0 + local.get $1 i32.const 10940 i32.load - local.tee $2 + local.tee $4 call $~lib/typedarray/Float64Array#constructor - local.tee $6 + local.tee $2 i32.store offset=4 - loop $for-loop|080 - local.get $1 - local.get $2 + loop $for-loop|0128 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 i32.const 10928 - local.get $1 + local.get $0 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|080 + local.set $0 + br $for-loop|0128 end end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $6 - i32.load local.tee $0 + local.get $2 + i32.load + local.tee $1 i32.store offset=8 - local.get $1 local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.load offset=4 - local.get $6 + local.get $2 i32.load i32.sub local.tee $0 - local.get $6 + local.get $2 i32.load offset=8 local.get $0 i32.add @@ -62320,7 +61663,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62331,51 +61674,51 @@ local.tee $0 i32.const 7 i32.and - br_if $folding-inner30 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 local.get $3 i32.store - local.get $4 + local.get $1 local.get $3 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 local.get $0 i32.store offset=8 - local.get $4 + local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=16 i32.const 0 - local.set $1 - loop $for-loop|181 - local.get $1 - local.get $2 + local.set $0 + loop $for-loop|1131 + local.get $0 + local.get $4 i32.lt_s if - local.get $6 - local.get $1 + local.get $2 + local.get $0 call $~lib/typedarray/Float64Array#__get - local.get $4 local.get $1 + local.get $0 call $~lib/typedarray/Float64Array#__get f64.ne - br_if $folding-inner29 - local.get $1 + br_if $folding-inner27 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|181 + local.set $0 + br $for-loop|1131 end end global.get $~lib/memory/__stack_pointer @@ -62396,7 +61739,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $7 + local.tee $0 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 3 @@ -62418,38 +61761,38 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $5 + local.tee $2 i32.store offset=8 - local.get $5 + local.get $2 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $2 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $2 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $5 + local.get $2 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/typedarray/Int32Array#constructor - local.tee $0 + local.tee $4 i32.store offset=16 - local.get $0 + local.get $4 i32.const 0 i32.const 300 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $4 i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $7 + local.get $0 i32.load offset=8 local.get $1 i32.load offset=8 @@ -62458,43 +61801,43 @@ i32.const 1 i32.add i32.lt_s - br_if $folding-inner19 - local.get $7 + br_if $folding-inner29 + local.get $0 i32.load offset=4 i32.const 1 i32.add - local.set $4 + local.set $3 local.get $1 i32.load offset=4 - local.set $3 + local.set $5 local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $2 - loop $for-loop|082 - local.get $2 - local.get $16 + local.set $7 + loop $for-loop|0135 + local.get $7 + local.get $12 i32.gt_s if - local.get $4 - local.get $16 + local.get $3 + local.get $12 i32.add - local.get $16 + local.get $12 i32.const 2 i32.shl - local.get $3 + local.get $5 i32.add f32.load - local.tee $11 - local.get $11 + local.tee $9 + local.get $9 f32.sub f32.const 0 f32.eq if (result i32) f32.const 0 f32.const 255 - local.get $11 + local.get $9 f32.min f32.max i32.trunc_f32_u @@ -62502,75 +61845,75 @@ i32.const 0 end i32.store8 - local.get $16 + local.get $12 i32.const 1 i32.add - local.set $16 - br $for-loop|082 + local.set $12 + br $for-loop|0135 end end - local.get $7 - local.get $5 + local.get $0 + local.get $2 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 0 - local.set $6 - local.get $7 - i32.load offset=8 + local.set $3 local.get $0 i32.load offset=8 + local.get $4 + i32.load offset=8 i32.const 2 i32.shr_u i32.const 8 i32.add i32.lt_s - br_if $folding-inner19 - local.get $7 + br_if $folding-inner29 + local.get $0 i32.load offset=4 i32.const 8 i32.add local.set $2 - local.get $0 + local.get $4 i32.load offset=4 - local.set $1 - local.get $0 + local.set $12 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 - loop $for-loop|086311 - local.get $0 - local.get $6 - i32.gt_s + local.set $4 + loop $for-loop|0139 + local.get $3 + local.get $4 + i32.lt_s if local.get $2 - local.get $6 + local.get $3 i32.add - local.get $6 + i32.const 255 + local.get $3 i32.const 2 i32.shl - local.get $1 + local.get $12 i32.add i32.load - local.tee $3 - i32.const 255 - local.get $3 + local.tee $1 i32.sub i32.const 31 i32.shr_s + local.get $1 i32.or - local.get $3 + local.get $1 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.and i32.store8 - local.get $6 + local.get $3 i32.const 1 i32.add - local.set $6 - br $for-loop|086311 + local.set $3 + br $for-loop|0139 end end i32.const 10 @@ -62578,106 +61921,106 @@ i32.const 63 i32.const 15280 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $7 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + local.tee $1 i32.store offset=28 - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 300 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 100 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 3 i32.const -1 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int16Array#constructor - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 0 i32.const -10 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $2 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $2 i32.const 2 i32.const 10 call $~lib/typedarray/Int16Array#__set - local.get $4 + local.get $2 i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set i32.const 0 - local.set $6 - local.get $7 - i32.load offset=8 + local.set $12 local.get $0 i32.load offset=8 + local.get $1 + i32.load offset=8 i32.const 2 i32.shr_u i32.lt_s - br_if $folding-inner19 - local.get $7 + br_if $folding-inner29 + local.get $0 i32.load offset=4 local.set $3 - local.get $0 + local.get $1 i32.load offset=4 - local.set $2 - local.get $0 + local.set $4 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|090 + loop $for-loop|0143 local.get $1 - local.get $6 + local.get $12 i32.gt_s if local.get $3 - local.get $6 + local.get $12 i32.add i32.const 255 - local.get $6 + local.get $12 i32.const 2 i32.shl - local.get $2 + local.get $4 i32.add i32.load - local.tee $0 - local.get $0 + local.tee $5 + local.get $5 i32.const 255 i32.gt_u select i32.store8 - local.get $6 + local.get $12 i32.const 1 i32.add - local.set $6 - br $for-loop|090 + local.set $12 + br $for-loop|0143 end end - local.get $7 - local.get $4 + local.get $0 + local.get $2 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> i32.const 10 @@ -62685,12 +62028,12 @@ i32.const 63 i32.const 15312 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $7 local.get $0 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 local.set $1 @@ -62701,7 +62044,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62712,17 +62055,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 2 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $2 + local.get $0 i32.const 0 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -62736,7 +62079,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62754,9 +62097,9 @@ i32.const 15344 i32.store end - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 local.get $1 call $~lib/util/sort/SORT @@ -62764,53 +62107,53 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner31 - local.get $2 + br_if $folding-inner30 + local.get $0 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner32 - local.get $2 + br_if $folding-inner31 + local.get $0 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15376 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 i32.const 15376 call $~lib/util/sort/SORT - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner34 - local.get $2 + br_if $folding-inner33 + local.get $0 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner35 - local.get $2 + br_if $folding-inner34 + local.get $0 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62824,7 +62167,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62835,17 +62178,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 2 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $2 + local.get $0 i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -62859,15 +62202,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of184 - block $0of185 - block $outOfRange86 + block $1of1161 + block $0of1162 + block $outOfRange163 global.get $~argumentsLength - br_table $0of185 $1of184 $outOfRange86 + br_table $0of1162 $1of1161 $outOfRange163 end unreachable end @@ -62877,9 +62220,9 @@ i32.const 15408 i32.store end - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 local.get $1 call $~lib/util/sort/SORT @@ -62887,53 +62230,53 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner31 - local.get $2 + br_if $folding-inner30 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner32 - local.get $2 + br_if $folding-inner31 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15440 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 i32.const 15440 call $~lib/util/sort/SORT - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner34 - local.get $2 + br_if $folding-inner33 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner35 - local.get $2 + br_if $folding-inner34 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62947,7 +62290,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62958,17 +62301,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + local.get $0 i32.const 0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -62982,15 +62325,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of188 - block $0of189 - block $outOfRange90 + block $1of1164 + block $0of1165 + block $outOfRange166 global.get $~argumentsLength - br_table $0of189 $1of188 $outOfRange90 + br_table $0of1165 $1of1164 $outOfRange166 end unreachable end @@ -63000,9 +62343,9 @@ i32.const 15472 i32.store end - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 local.get $1 call $~lib/util/sort/SORT @@ -63010,59 +62353,57 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner31 - local.get $2 + br_if $folding-inner30 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner32 - local.get $2 + br_if $folding-inner31 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15504 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 i32.const 15504 call $~lib/util/sort/SORT - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner34 - local.get $2 + br_if $folding-inner33 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner35 - local.get $2 + br_if $folding-inner34 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -63070,7 +62411,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63081,23 +62422,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $1 i32.const 0 i32.const 3 call $~lib/typedarray/Int16Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63105,91 +62448,90 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of192 - block $0of193 - block $outOfRange94 + block $1of1167 + block $0of1168 + block $outOfRange190 global.get $~argumentsLength - br_table $0of193 $1of192 $outOfRange94 + br_table $0of1168 $1of1167 $outOfRange190 end unreachable end i32.const 15536 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15536 i32.store end - local.get $2 + local.get $1 i32.load offset=4 - local.get $2 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner31 - local.get $2 + br_if $folding-inner30 + local.get $0 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner32 - local.get $2 + br_if $folding-inner31 + local.get $0 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15568 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u i32.const 15568 call $~lib/util/sort/SORT - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner34 - local.get $2 + br_if $folding-inner33 + local.get $0 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner35 - local.get $2 + br_if $folding-inner34 + local.get $0 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -63197,7 +62539,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63208,23 +62550,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $2 + local.get $1 i32.const 0 i32.const 3 call $~lib/typedarray/Uint16Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63232,91 +62576,90 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of196 - block $0of197 - block $outOfRange98 + block $1of1193 + block $0of1194 + block $outOfRange195 global.get $~argumentsLength - br_table $0of197 $1of196 $outOfRange98 + br_table $0of1194 $1of1193 $outOfRange195 end unreachable end i32.const 15600 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15600 i32.store end - local.get $2 + local.get $1 i32.load offset=4 - local.get $2 + local.get $1 i32.load offset=8 i32.const 1 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner31 - local.get $2 + br_if $folding-inner30 + local.get $0 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner32 - local.get $2 + br_if $folding-inner31 + local.get $0 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15632 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u i32.const 15632 call $~lib/util/sort/SORT - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner34 - local.get $2 + br_if $folding-inner33 + local.get $0 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner35 - local.get $2 + br_if $folding-inner34 + local.get $0 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -63324,7 +62667,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63335,23 +62678,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $1 i32.const 0 i32.const 3 call $~lib/typedarray/Int32Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63359,91 +62704,90 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1100 - block $0of1101 - block $outOfRange102 + block $1of1198 + block $0of1199 + block $outOfRange200 global.get $~argumentsLength - br_table $0of1101 $1of1100 $outOfRange102 + br_table $0of1199 $1of1198 $outOfRange200 end unreachable end i32.const 15664 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15664 i32.store end - local.get $2 + local.get $1 i32.load offset=4 - local.get $2 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner31 - local.get $2 + br_if $folding-inner30 + local.get $0 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner32 - local.get $2 + br_if $folding-inner31 + local.get $0 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15696 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.const 15696 call $~lib/util/sort/SORT - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner34 - local.get $2 + br_if $folding-inner33 + local.get $0 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner35 - local.get $2 + br_if $folding-inner34 + local.get $0 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -63451,7 +62795,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63462,23 +62806,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $2 + local.get $1 i32.const 0 i32.const 3 call $~lib/typedarray/Uint32Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63486,91 +62832,90 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1104 - block $0of1105 - block $outOfRange106 + block $1of1203 + block $0of1204 + block $outOfRange205 global.get $~argumentsLength - br_table $0of1105 $1of1104 $outOfRange106 + br_table $0of1204 $1of1203 $outOfRange205 end unreachable end i32.const 15728 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15728 i32.store end - local.get $2 + local.get $1 i32.load offset=4 - local.get $2 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner31 - local.get $2 + br_if $folding-inner30 + local.get $0 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner32 - local.get $2 + br_if $folding-inner31 + local.get $0 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15760 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.const 15760 call $~lib/util/sort/SORT - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner34 - local.get $2 + br_if $folding-inner33 + local.get $0 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner35 - local.get $2 + br_if $folding-inner34 + local.get $0 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -63578,7 +62923,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63589,23 +62934,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $1 i32.const 0 i64.const 3 call $~lib/typedarray/Int64Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63613,91 +62960,90 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1108 - block $0of1109 - block $outOfRange110 + block $1of1208 + block $0of1209 + block $outOfRange210 global.get $~argumentsLength - br_table $0of1109 $1of1108 $outOfRange110 + br_table $0of1209 $1of1208 $outOfRange210 end unreachable end i32.const 15792 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15792 i32.store end - local.get $2 + local.get $1 i32.load offset=4 - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner31 - local.get $2 + br_if $folding-inner30 + local.get $0 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner32 - local.get $2 + br_if $folding-inner31 + local.get $0 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15824 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u i32.const 15824 call $~lib/util/sort/SORT - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner34 - local.get $2 + br_if $folding-inner33 + local.get $0 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner35 - local.get $2 + br_if $folding-inner34 + local.get $0 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -63705,7 +63051,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63716,23 +63062,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $2 + local.get $1 i32.const 0 i64.const 3 call $~lib/typedarray/Uint64Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63740,91 +63088,90 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1112 - block $0of1113 - block $outOfRange114 + block $1of1213 + block $0of1214 + block $outOfRange215 global.get $~argumentsLength - br_table $0of1113 $1of1112 $outOfRange114 + br_table $0of1214 $1of1213 $outOfRange215 end unreachable end i32.const 15856 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15856 i32.store end - local.get $2 + local.get $1 i32.load offset=4 - local.get $2 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner31 - local.get $2 + br_if $folding-inner30 + local.get $0 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner32 - local.get $2 + br_if $folding-inner31 + local.get $0 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15888 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u i32.const 15888 call $~lib/util/sort/SORT - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner34 - local.get $2 + br_if $folding-inner33 + local.get $0 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner35 - local.get $2 + br_if $folding-inner34 + local.get $0 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -63832,7 +63179,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63843,23 +63190,25 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 2 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $1 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $2 + local.get $1 i32.const 0 f32.const 3 call $~lib/typedarray/Float32Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63867,85 +63216,86 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1116 - block $0of1117 - block $outOfRange118 + block $1of1218 + block $0of1219 + block $outOfRange220 global.get $~argumentsLength - br_table $0of1117 $1of1116 $outOfRange118 + br_table $0of1219 $1of1218 $outOfRange220 end unreachable end i32.const 15920 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 15920 i32.store end - local.get $2 + local.get $1 i32.load offset=4 - local.get $2 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner31 - local.get $2 + br_if $folding-inner30 + local.get $0 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner32 - local.get $2 + br_if $folding-inner31 + local.get $0 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15952 i32.store offset=8 - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.const 15952 call $~lib/util/sort/SORT - local.get $2 + local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner34 - local.get $2 + br_if $folding-inner33 + local.get $0 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner35 - local.get $2 + br_if $folding-inner34 + local.get $0 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63957,7 +63307,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner23 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63994,19 +63344,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner31 + br_if $folding-inner30 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner32 + br_if $folding-inner31 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner33 + br_if $folding-inner32 global.get $~lib/memory/__stack_pointer i32.const 15984 i32.store offset=8 @@ -64023,19 +63373,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner34 + br_if $folding-inner33 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner35 + br_if $folding-inner34 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner36 + br_if $folding-inner35 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -64046,12 +63396,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|091 + loop $while-continue|0145176 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|091 + br $while-continue|0145176 end end end @@ -64081,213 +63431,213 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 0 - i32.const 1568 - i32.const 323 - i32.const 3 + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 344 + i32.const 323 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 345 + i32.const 344 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 346 + i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 367 + i32.const 346 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 438 + i32.const 367 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 440 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 461 + i32.const 389 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 463 + i32.const 390 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 484 + i32.const 438 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 486 + i32.const 440 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 507 + i32.const 461 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 509 + i32.const 463 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 541 + i32.const 484 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 675 - i32.const 5 + i32.const 486 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 676 - i32.const 5 + i32.const 507 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 672 - i32.const 5 + i32.const 509 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 673 - i32.const 5 + i32.const 541 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1360 - i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 388 + i32.const 575 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 389 + i32.const 576 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 390 + i32.const 577 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 570 + i32.const 675 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 575 - i32.const 3 + i32.const 676 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 576 - i32.const 3 + i32.const 672 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 577 - i32.const 3 + i32.const 673 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 578 - i32.const 3 + i32.const 730 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 730 - i32.const 5 + i32.const 1056 + i32.const 1632 + i32.const 1875 + i32.const 9 call $~lib/builtins/abort unreachable end - i32.const 1056 + i32.const 1360 i32.const 1632 - i32.const 1875 - i32.const 9 + i32.const 1909 + i32.const 47 call $~lib/builtins/abort unreachable end @@ -65131,7 +64481,6 @@ (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -65151,39 +64500,40 @@ local.tee $5 i32.const 0 i32.store + local.get $5 local.get $0 local.get $1 i32.shl - local.tee $4 - local.set $6 - local.get $4 + local.tee $1 + local.set $5 + local.get $1 i32.const 0 call $~lib/rt/itcms/__new - local.set $1 + local.set $4 local.get $3 if - local.get $1 + local.get $4 local.get $3 - local.get $6 + local.get $5 call $~lib/memory/memory.copy end - local.get $5 - local.get $1 + local.get $4 + local.tee $3 i32.store i32.const 16 local.get $2 call $~lib/rt/itcms/__new local.tee $2 - local.get $1 + local.get $3 i32.store local.get $2 - local.get $1 + local.get $3 call $~lib/rt/itcms/__link local.get $2 - local.get $1 + local.get $3 i32.store offset=4 local.get $2 - local.get $4 + local.get $1 i32.store offset=8 local.get $2 local.get $0 @@ -65440,15 +64790,105 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 + local.get $2 + i32.load offset=4 i32.const 4 local.get $4 local.get $4 i32.const 4 i32.gt_s select + local.tee $2 + i32.add + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select + end + local.tee $1 + local.get $2 + local.get $1 + local.get $2 + i32.gt_s + select + local.get $2 + i32.sub + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $3 + i32.const 0 + i32.store + local.get $0 + local.tee $2 + i32.load offset=8 + local.set $4 + local.get $3 + i32.const 12 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + i32.load local.tee $3 + i32.store + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + local.get $0 local.get $2 i32.load offset=4 + i32.const 4 + local.get $4 + local.get $4 + i32.const 4 + i32.gt_s + select + local.tee $2 i32.add i32.store offset=4 local.get $0 @@ -65474,12 +64914,12 @@ select end local.tee $1 - local.get $3 + local.get $2 local.get $1 - local.get $3 + local.get $2 i32.gt_s select - local.get $3 + local.get $2 i32.sub i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -65488,7 +64928,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -65514,10 +64954,12 @@ local.get $0 local.tee $2 i32.load offset=8 + i32.const 1 + i32.shr_u local.set $4 local.get $3 i32.const 12 - i32.const 5 + i32.const 6 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -65530,15 +64972,113 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 + local.get $2 + i32.load offset=4 i32.const 4 local.get $4 local.get $4 i32.const 4 + i32.gt_u + select + local.tee $2 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $4 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $4 + local.get $1 + local.get $4 + i32.lt_s + select + end + local.tee $1 + local.get $2 + local.get $1 + local.get $2 i32.gt_s select + local.get $2 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer local.tee $3 + i32.const 0 + i32.store + local.get $0 + local.tee $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $4 + local.get $3 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + i32.load + local.tee $3 + i32.store + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + local.get $0 local.get $2 i32.load offset=4 + i32.const 4 + local.get $4 + local.get $4 + i32.const 4 + i32.gt_u + select + local.tee $2 + i32.const 1 + i32.shl i32.add i32.store offset=4 local.get $0 @@ -65564,196 +65104,6 @@ select end local.tee $1 - local.get $3 - local.get $1 - local.get $3 - i32.gt_s - select - local.get $3 - i32.sub - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $0 - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $3 - local.get $4 - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - i32.load - local.tee $4 - i32.store - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 4 - local.get $3 - local.get $3 - i32.const 4 - i32.gt_u - select - local.tee $2 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select - end - local.tee $1 - local.get $2 - local.get $1 - local.get $2 - i32.gt_s - select - local.get $2 - i32.sub - i32.const 1 - i32.shl - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - local.get $0 - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $3 - local.get $4 - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - i32.load - local.tee $4 - i32.store - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - local.get $0 - local.get $2 - i32.load offset=4 - i32.const 4 - local.get $3 - local.get $3 - i32.const 4 - i32.gt_u - select - local.tee $2 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $3 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $3 - local.get $1 - local.get $3 - i32.lt_s - select - end - local.tee $1 local.get $2 local.get $1 local.get $2 @@ -65790,7 +65140,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store local.get $0 @@ -65798,8 +65148,8 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new @@ -65808,17 +65158,17 @@ local.get $0 local.get $2 i32.load - local.tee $4 + local.tee $3 i32.store local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 local.get $2 i32.load offset=4 i32.const 4 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 4 i32.gt_u select @@ -65833,7 +65183,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -65843,9 +65193,9 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end @@ -65886,7 +65236,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store local.get $0 @@ -65894,8 +65244,8 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new @@ -65904,17 +65254,17 @@ local.get $0 local.get $2 i32.load - local.tee $4 + local.tee $3 i32.store local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 local.get $2 i32.load offset=4 i32.const 4 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 4 i32.gt_u select @@ -65929,7 +65279,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -65939,9 +65289,9 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end @@ -65982,7 +65332,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store local.get $0 @@ -65990,8 +65340,8 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new @@ -66000,17 +65350,17 @@ local.get $0 local.get $2 i32.load - local.tee $4 + local.tee $3 i32.store local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 local.get $2 i32.load offset=4 i32.const 4 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 4 i32.gt_u select @@ -66025,7 +65375,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -66035,9 +65385,9 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end @@ -66078,7 +65428,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store local.get $0 @@ -66086,8 +65436,8 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 - local.get $4 + local.set $4 + local.get $3 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new @@ -66096,17 +65446,17 @@ local.get $0 local.get $2 i32.load - local.tee $4 + local.tee $3 i32.store local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 local.get $2 i32.load offset=4 i32.const 4 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 4 i32.gt_u select @@ -66121,7 +65471,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -66131,9 +65481,9 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end @@ -66194,71 +65544,71 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $1 - select local.tee $2 + select local.tee $0 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.get $1 + local.get $2 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + local.get $1 local.get $0 - local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $2 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -66266,7 +65616,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -66299,6 +65649,8 @@ i32.shr_u local.tee $2 local.get $2 + i32.const 0 + i32.gt_s select local.tee $3 local.get $1 @@ -66455,7 +65807,7 @@ i32.add end end - local.tee $0 + local.tee $1 i32.const 1 i32.shl i32.const 1 @@ -66463,8 +65815,8 @@ local.tee $2 i32.store local.get $2 - local.get $1 local.get $0 + local.get $1 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index 9dfea1e60b..77e4ebd7b4 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -239,6 +239,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -246,10 +247,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 20748 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -263,7 +264,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -288,8 +289,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -297,10 +299,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 4336 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1376 i32.const 1440 @@ -309,7 +312,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 4340 @@ -324,16 +327,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -341,11 +344,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1615,8 +1618,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -3434,25 +3437,25 @@ if (result i32) i32.const 1 else + local.get $0 local.get $3 i32.const 1 i32.add i32.const 1 i32.shl - local.get $0 i32.add - local.tee $4 + local.tee $5 i32.load16_u - local.set $5 - local.get $4 - i32.load16_u offset=2 local.set $4 local.get $5 + i32.load16_u offset=2 + local.set $5 + local.get $4 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $5 + local.get $4 i32.const 32 i32.or i32.const 97 @@ -3461,12 +3464,12 @@ i32.lt_u i32.or if (result i32) - local.get $4 + local.get $5 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $4 + local.get $5 i32.const 32 i32.or i32.const 97 @@ -3478,14 +3481,14 @@ i32.const 0 end if (result i32) - local.get $4 + local.get $5 i32.const 32 i32.or i32.const 39 i32.rem_u i32.const 9 i32.sub - local.get $5 + local.get $4 i32.const 32 i32.or i32.const 39 @@ -3559,7 +3562,7 @@ i32.const 56 i32.lt_u select - local.tee $9 + local.tee $10 i32.const 17 i32.mul i32.const 2 @@ -3567,23 +3570,23 @@ i32.const 1 i32.sub i32.shl - local.set $10 + local.set $4 i32.const 128 - local.get $9 + local.get $10 i32.shr_u i32.const 1 i32.sub i32.const 0 - local.get $9 + local.get $10 select local.get $5 i32.and local.set $5 loop $while-continue|2 - local.get $9 + local.get $10 i32.const 1 i32.sub - local.tee $9 + local.tee $10 if block $while-break|2 local.get $1 @@ -3606,25 +3609,25 @@ if (result i32) i32.const 1 else + local.get $0 local.get $3 i32.const 1 i32.add i32.const 1 i32.shl - local.get $0 i32.add - local.tee $7 + local.tee $9 i32.load16_u - local.set $4 - local.get $7 - i32.load16_u offset=2 local.set $7 - local.get $4 + local.get $9 + i32.load16_u offset=2 + local.set $9 + local.get $7 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $4 + local.get $7 i32.const 32 i32.or i32.const 97 @@ -3633,12 +3636,12 @@ i32.lt_u i32.or if (result i32) - local.get $7 + local.get $9 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $7 + local.get $9 i32.const 32 i32.or i32.const 97 @@ -3650,14 +3653,14 @@ i32.const 0 end if (result i32) - local.get $7 + local.get $9 i32.const 32 i32.or i32.const 39 i32.rem_u i32.const 9 i32.sub - local.get $4 + local.get $7 i32.const 32 i32.or i32.const 39 @@ -3713,12 +3716,12 @@ i32.const 1114111 i32.gt_u i32.const 1 - local.get $10 + local.get $4 i32.const -1 i32.eq + local.get $4 local.get $5 - local.get $10 - i32.lt_u + i32.gt_u select select if (result i32) diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index 5f28c3de51..ab6c805e70 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -132,6 +132,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -139,10 +140,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17868 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -156,7 +157,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -181,8 +182,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -190,10 +192,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1440 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1248 i32.const 1312 @@ -202,7 +205,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1444 @@ -217,16 +220,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -234,11 +237,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1218,17 +1221,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $3 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $2 + local.tee $1 i32.const 4 - local.get $3 - i32.load offset=1568 local.get $2 + i32.load offset=1568 + local.get $1 i32.const 16 i32.shl i32.const 4 @@ -1241,16 +1244,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $1 + local.tee $3 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s select memory.grow i32.const 0 i32.lt_s if - local.get $1 + local.get $3 memory.grow i32.const 0 i32.lt_s @@ -1258,15 +1261,15 @@ unreachable end end - local.get $3 local.get $2 + local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $3 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1293,12 +1296,12 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $2 + local.tee $3 i32.const -4 i32.and i32.const 28 @@ -1308,7 +1311,7 @@ i32.ge_u if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.and i32.const 28 @@ -1317,19 +1320,19 @@ local.get $1 i32.const 32 i32.add - local.tee $2 + local.tee $3 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $3 local.get $2 + local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $2 + local.get $3 i32.const -2 i32.and i32.store @@ -1355,26 +1358,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $0 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $0 local.get $1 + local.get $2 global.get $~lib/rt/itcms/white - local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $0 i32.store offset=8 - local.get $2 - local.get $2 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1424,11 +1427,11 @@ ) (func $~start (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index fb837cd23e..e5535111bd 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -1,7 +1,7 @@ (module + (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_none (func)) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) @@ -318,6 +318,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -325,10 +326,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 21964 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -342,7 +343,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -367,19 +368,21 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $0 i32.const 1 i32.le_u if (result i32) i32.const 1 else + local.get $0 + local.tee $2 i32.const 5536 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1408 i32.const 1472 @@ -388,7 +391,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 5540 @@ -403,28 +406,28 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.load offset=8 - local.set $1 - local.get $0 + local.set $0 + local.get $1 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $0 local.get $1 + local.get $0 i32.store offset=8 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $1 i32.or i32.store offset=4 - local.get $2 - local.get $0 + local.get $3 + local.get $1 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1713,8 +1716,8 @@ i32.load offset=8 local.set $3 local.get $2 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $2 @@ -2889,40 +2892,40 @@ (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5580 - i32.lt_s - if - i32.const 21984 - i32.const 22032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $5 - i64.const 0 - i64.store - local.get $5 - i32.const 0 - i32.store offset=8 - block $__inlined_func$~lib/util/string/joinStringArray - local.get $3 + block $__inlined_func$~lib/util/string/joinStringArray (result i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5580 + i32.lt_s + if + i32.const 21984 + i32.const 22032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i64.const 0 + i64.store + local.get $4 + i32.const 0 + i32.store offset=8 + local.get $5 i32.const 1 i32.sub - local.tee $5 + local.tee $6 i32.const 0 i32.lt_s if @@ -2931,19 +2934,18 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1184 - local.set $3 br $__inlined_func$~lib/util/string/joinStringArray end - local.get $5 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.load local.tee $0 i32.store - local.get $3 + local.get $2 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -2951,26 +2953,25 @@ i32.const 1184 local.get $0 select - local.set $3 br $__inlined_func$~lib/util/string/joinStringArray end loop $for-loop|0 local.get $3 - local.get $4 - i32.gt_s + local.get $5 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 2 i32.shl local.get $0 i32.add i32.load - local.tee $6 + local.tee $4 i32.store offset=4 - local.get $6 + local.get $4 if - local.get $6 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -2980,20 +2981,20 @@ i32.add local.set $2 end - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer - local.get $5 i32.const 1180 i32.load i32.const 1 i32.shr_u - local.tee $6 + local.tee $5 + local.get $6 i32.mul local.get $2 i32.add @@ -3001,17 +3002,17 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 i32.const 0 - local.set $4 + local.set $3 loop $for-loop|1 - local.get $4 - local.get $5 + local.get $3 + local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.const 2 i32.shl local.get $0 @@ -3024,7 +3025,7 @@ local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add local.get $2 local.get $2 @@ -3042,32 +3043,32 @@ i32.add local.set $1 end - local.get $6 + local.get $5 if local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.const 1184 - local.get $6 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $6 + local.get $5 i32.add local.set $1 end - local.get $4 + local.get $3 i32.const 1 i32.add - local.set $4 + local.set $3 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $6 i32.const 2 i32.shl local.get $0 @@ -3080,7 +3081,7 @@ local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add local.get $0 local.get $0 @@ -3097,8 +3098,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 end - local.get $3 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3208,25 +3209,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5580 - i32.lt_s - if - i32.const 21984 - i32.const 22032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa32 + block $__inlined_func$~lib/util/number/itoa32 (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5580 + i32.lt_s + if + i32.const 21984 + i32.const 22032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 i32.eqz if @@ -3235,7 +3236,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 2032 - local.set $0 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -3246,71 +3246,71 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $1 - select local.tee $2 + select local.tee $0 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.get $1 + local.get $2 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store + local.get $1 local.get $0 - local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $2 if - local.get $0 + local.get $1 i32.const 45 i32.store16 end @@ -3318,8 +3318,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 end - local.get $0 ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) (local $5 i32) @@ -3354,8 +3354,7 @@ i64.shr_u i32.wrap_i64 local.tee $2 - local.set $5 - local.get $2 + local.tee $5 i32.const 100000 i32.lt_u if (result i32) @@ -3578,7 +3577,7 @@ i32.shl i32.const 3918 i32.add - local.tee $8 + local.tee $7 i32.load16_u local.set $5 loop $while-continue|3 @@ -3623,7 +3622,7 @@ br $while-continue|3 end end - local.get $8 + local.get $7 local.get $5 i32.store16 local.get $4 @@ -3703,7 +3702,7 @@ i32.shl i32.const 3918 i32.add - local.tee $8 + local.tee $7 i32.load16_u local.set $5 loop $while-continue|6 @@ -3748,7 +3747,7 @@ br $while-continue|6 end end - local.get $8 + local.get $7 local.get $5 i32.store16 local.get $4 @@ -3756,8 +3755,6 @@ (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) local.get $2 i32.eqz if @@ -3858,7 +3855,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $5 + local.tee $2 i32.const 1 i32.shl local.get $0 @@ -3872,28 +3869,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $2 + local.set $4 loop $for-loop|1 local.get $2 - local.get $5 - i32.lt_s + local.get $4 + i32.gt_s if - local.get $2 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|1 end end local.get $1 - local.get $5 + local.get $2 i32.add else local.get $1 @@ -3921,6 +3918,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -3967,12 +3965,9 @@ i32.add end end - local.set $1 - local.get $0 - local.get $1 i32.const 1 i32.add - local.tee $0 + local.tee $1 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -3980,7 +3975,7 @@ local.get $2 select i32.store16 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.add else @@ -4016,7 +4011,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -4024,6 +4019,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -4070,21 +4066,18 @@ i32.add end end - local.set $2 - local.get $0 - local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $2 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select i32.store16 offset=4 - local.get $0 local.get $1 + local.get $2 i32.add i32.const 2 i32.add @@ -4377,25 +4370,25 @@ (func $~lib/number/F64#toString (param $0 f64) (result i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5580 - i32.lt_s - if - i32.const 21984 - i32.const 22032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/dtoa + block $__inlined_func$~lib/util/number/dtoa (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5580 + i32.lt_s + if + i32.const 21984 + i32.const 22032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store local.get $0 f64.const 0 f64.eq @@ -4405,7 +4398,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3776 - local.set $1 br $__inlined_func$~lib/util/number/dtoa end local.get $0 @@ -4423,7 +4415,6 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3808 - local.set $1 br $__inlined_func$~lib/util/number/dtoa end global.get $~lib/memory/__stack_pointer @@ -4436,73 +4427,72 @@ f64.const 0 f64.lt select - local.set $1 br $__inlined_func$~lib/util/number/dtoa end local.get $0 call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 - i32.const 3920 local.get $2 + i32.const 3920 + local.get $1 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 end - local.get $1 ) (func $start:templateliteral (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) - memory.size - i32.const 16 - i32.shl - i32.const 21964 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/pinSpace - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/toSpace - i32.const 1508 - i32.const 1504 - i32.store - i32.const 1512 - i32.const 1504 - i32.store - i32.const 1504 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer block $folding-inner0 + memory.size + i32.const 16 + i32.shl + i32.const 21964 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1332 + i32.const 1328 + i32.store + i32.const 1336 + i32.const 1328 + i32.store + i32.const 1328 + global.set $~lib/rt/itcms/pinSpace + i32.const 1364 + i32.const 1360 + i32.store + i32.const 1368 + i32.const 1360 + i32.store + i32.const 1360 + global.set $~lib/rt/itcms/toSpace + i32.const 1508 + i32.const 1504 + i32.store + i32.const 1512 + i32.const 1504 + i32.store + i32.const 1504 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 5580 i32.lt_s @@ -4866,208 +4856,7 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5580 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 1088 - i32.store - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5072 - i32.store offset=8 - local.get $0 - i32.const 5072 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 31 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=8 - i32.const 1088 - i32.const 1088 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=12 - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - i32.const 5104 - local.get $0 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5136 - i32.store offset=8 - local.get $0 - i32.const 5136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=12 - i32.const 5104 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store offset=8 - local.get $0 - i32.const 5168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 5200 - i32.store offset=16 - local.get $0 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5232 - i32.store offset=8 - local.get $0 - i32.const 5232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.store offset=16 - i32.const 1088 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5264 - i32.store offset=8 - local.get $0 - i32.const 5264 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5296 - i32.store offset=8 - local.get $0 - i32.const 5296 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer + call $templateliteral/test_fast_paths_string global.get $~lib/memory/__stack_pointer i32.const 28 i32.sub @@ -5092,14 +4881,14 @@ local.get $0 i32.const 1 call $templateliteral/Ref#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 2 call $templateliteral/Ref#constructor - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $0 + local.get $1 call $templateliteral/Ref#toString local.set $2 global.get $~lib/memory/__stack_pointer @@ -5120,13 +4909,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $templateliteral/Ref#toString local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=16 - local.get $1 + local.get $0 call $templateliteral/Ref#toString local.set $3 global.get $~lib/memory/__stack_pointer @@ -5157,20 +4946,20 @@ global.get $~lib/memory/__stack_pointer i32.const 5440 i32.store offset=16 - local.get $0 + local.get $1 call $templateliteral/Ref#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=24 i32.const 5440 i32.const 1 - local.get $0 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset global.get $~lib/memory/__stack_pointer i32.const 5440 i32.store offset=16 - local.get $1 + local.get $0 call $templateliteral/Ref#toString local.set $0 global.get $~lib/memory/__stack_pointer @@ -5289,6 +5078,219 @@ global.set $~started call $start:templateliteral ) + (func $templateliteral/test_fast_paths_string + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5580 + i32.lt_s + if + i32.const 21984 + i32.const 22032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 1088 + i32.store + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5072 + i32.store offset=8 + local.get $0 + i32.const 5072 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=8 + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5104 + i32.store offset=12 + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 5104 + local.get $0 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5136 + i32.store offset=8 + local.get $0 + i32.const 5136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5104 + i32.store offset=12 + i32.const 5104 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5168 + i32.store offset=8 + local.get $0 + i32.const 5168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 5200 + i32.store offset=16 + local.get $0 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5232 + i32.store offset=8 + local.get $0 + i32.const 5232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5200 + i32.store offset=16 + i32.const 1088 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5264 + i32.store offset=8 + local.get $0 + i32.const 5264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5296 + i32.store offset=8 + local.get $0 + i32.const 5296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $templateliteral/Ref#toString (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index 4d5708a9b9..b642240692 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -132,7 +132,7 @@ i32.load offset=4 i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.eqz if i32.const 0 @@ -165,7 +165,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -173,22 +173,22 @@ i32.load offset=4 i32.const 3 i32.and - local.get $3 + local.get $2 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $3 local.get $0 - local.tee $1 - i32.load offset=12 local.tee $2 + i32.load offset=12 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $2 + local.get $1 local.tee $0 i32.const 1728 i32.load @@ -219,25 +219,25 @@ local.set $0 local.get $3 i32.load offset=8 - local.set $2 - local.get $1 + local.set $1 + local.get $2 local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $2 i32.or i32.store offset=4 local.get $3 - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1123,146 +1123,144 @@ (func $~start (local $0 i32) (local $1 i32) - block $__inlined_func$start:throw + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1756 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 1056 + i32.store + local.get $0 + i32.const 1216 + i32.store offset=8 + local.get $0 i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1756 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1216 - i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1756 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 1056 + i32.store + loop $while-continue|0 local.get $0 - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1756 + local.tee $0 + i32.const 10 i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 1056 - i32.store - loop $while-continue|0 + if + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=4 local.get $0 - i32.const 1 - i32.add - local.tee $0 i32.const 10 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 - local.get $0 - i32.const 10 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 1216 - i32.store offset=8 - i32.const 1248 - i32.const 1168 - i32.const 23 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1296 + i32.const 1216 i32.store offset=8 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1328 - i32.store offset=12 - local.get $0 - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/pinSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/toSpace - i32.const 1588 - i32.const 1584 - i32.store - i32.const 1592 - i32.const 1584 - i32.store - i32.const 1584 - global.set $~lib/rt/itcms/fromSpace - memory.size - drop - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|00 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - br $while-continue|00 - end + i32.const 1248 + i32.const 1168 + i32.const 23 + i32.const 7 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 1296 + i32.store offset=8 + br $while-continue|0 end - call $~lib/rt/itcms/step - loop $while-continue|1 + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1328 + i32.store offset=12 + local.get $0 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/pinSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/toSpace + i32.const 1588 + i32.const 1584 + i32.store + i32.const 1592 + i32.const 1584 + i32.store + i32.const 1584 + global.set $~lib/rt/itcms/fromSpace + memory.size + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|07 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step - br $while-continue|1 + br $while-continue|07 end end - br $__inlined_func$start:throw end - i32.const 18160 - i32.const 18208 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + call $~lib/rt/itcms/step + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + br $while-continue|1 + end + end + return end + i32.const 18160 + i32.const 18208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index 51d427ca80..7490a5871a 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -263,6 +263,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -270,10 +271,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 18220 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -287,7 +288,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -312,8 +313,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -321,10 +323,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1792 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1552 i32.const 1616 @@ -333,7 +336,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1796 @@ -348,16 +351,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -365,11 +368,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1933,8 +1936,8 @@ i32.load offset=8 local.set $4 local.get $1 - global.get $~lib/rt/itcms/white local.get $2 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index 883d189a7b..f9244a6592 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -1172,39 +1172,38 @@ ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) (local $6 i32) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 i64) - (local $11 i32) - (local $12 i64) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i32) (local $13 i64) local.get $2 local.get $1 i64.sub - local.set $10 + local.set $9 local.get $2 i64.const 1 i32.const 0 local.get $3 i32.sub - local.tee $11 + local.tee $12 i64.extend_i32_s local.tee $1 i64.shl - local.tee $12 + local.tee $11 i64.const 1 i64.sub local.tee $13 i64.and - local.set $7 + local.set $8 local.get $2 local.get $1 i64.shr_u i32.wrap_i64 local.tee $6 - local.set $3 - local.get $6 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) @@ -1250,9 +1249,9 @@ i32.add end end - local.set $9 + local.set $10 loop $while-continue|0 - local.get $9 + local.get $10 i32.const 0 i32.gt_s if @@ -1268,7 +1267,7 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $9 + local.get $10 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 @@ -1276,7 +1275,7 @@ local.get $6 i32.const 1000000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 1000000000 i32.rem_u @@ -1286,7 +1285,7 @@ local.get $6 i32.const 100000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 100000000 i32.rem_u @@ -1296,7 +1295,7 @@ local.get $6 i32.const 10000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 10000000 i32.rem_u @@ -1306,7 +1305,7 @@ local.get $6 i32.const 1000000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 1000000 i32.rem_u @@ -1316,7 +1315,7 @@ local.get $6 i32.const 100000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 100000 i32.rem_u @@ -1326,7 +1325,7 @@ local.get $6 i32.const 10000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 10000 i32.rem_u @@ -1336,7 +1335,7 @@ local.get $6 i32.const 1000 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 1000 i32.rem_u @@ -1346,7 +1345,7 @@ local.get $6 i32.const 100 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 100 i32.rem_u @@ -1356,7 +1355,7 @@ local.get $6 i32.const 10 i32.div_u - local.set $3 + local.set $7 local.get $6 i32.const 10 i32.rem_u @@ -1364,64 +1363,64 @@ br $break|1 end local.get $6 - local.set $3 + local.set $7 i32.const 0 local.set $6 br $break|1 end i32.const 0 - local.set $3 + local.set $7 end - local.get $3 local.get $5 + local.get $7 i32.or if local.get $5 - local.tee $8 + local.tee $3 i32.const 1 i32.add local.set $5 - local.get $8 + local.get $3 i32.const 1 i32.shl local.get $0 i32.add - local.get $3 + local.get $7 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $9 + local.get $10 i32.const 1 i32.sub - local.set $9 - local.get $7 + local.set $10 + local.get $4 + local.get $8 local.get $6 i64.extend_i32_u - local.get $11 + local.get $12 i64.extend_i32_s i64.shl i64.add local.tee $1 - local.get $4 - i64.le_u + i64.ge_u if - local.get $9 + local.get $10 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $9 + local.get $10 i32.const 2 i32.shl i32.const 2200 i32.add i64.load32_u - local.get $11 + local.get $12 i64.extend_i32_s i64.shl - local.set $2 + local.set $11 local.get $5 i32.const 1 i32.sub @@ -1429,53 +1428,53 @@ i32.shl local.get $0 i32.add - local.tee $6 + local.tee $0 i32.load16_u - local.set $3 + local.set $7 loop $while-continue|3 - local.get $2 + local.get $11 local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $10 + local.get $9 i64.lt_u select if (result i32) i32.const 1 - local.get $10 + local.get $9 local.get $1 i64.sub local.get $1 - local.get $2 + local.get $11 i64.add - local.tee $7 - local.get $10 + local.tee $2 + local.get $9 i64.sub i64.gt_u - local.get $7 - local.get $10 + local.get $2 + local.get $9 i64.lt_u select else i32.const 0 end if - local.get $3 + local.get $7 i32.const 1 i32.sub - local.set $3 + local.set $7 local.get $1 - local.get $2 + local.get $11 i64.add local.set $1 br $while-continue|3 end end - local.get $6 - local.get $3 + local.get $0 + local.get $7 i32.store16 local.get $5 return @@ -1483,19 +1482,19 @@ br $while-continue|0 end end - loop $while-continue|4 + loop $while-continue|4 (result i32) local.get $4 i64.const 10 i64.mul local.set $4 - local.get $7 + local.get $8 i64.const 10 i64.mul - local.tee $1 - local.get $11 + local.tee $2 + local.get $12 i64.extend_i32_s i64.shr_u - local.tee $2 + local.tee $1 local.get $5 i64.extend_i32_s i64.or @@ -1512,7 +1511,7 @@ i32.shl local.get $0 i32.add - local.get $2 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -1520,91 +1519,91 @@ i32.add i32.store16 end - local.get $9 + local.get $10 i32.const 1 i32.sub - local.set $9 - local.get $4 - local.get $1 + local.set $10 + local.get $2 local.get $13 i64.and - local.tee $7 - i64.le_u - br_if $while-continue|4 - end - local.get $9 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $7 - local.set $1 - i32.const 0 - local.get $9 - i32.sub - i32.const 2 - i32.shl - i32.const 2200 - i32.add - i64.load32_u - local.get $10 - i64.mul - local.set $2 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - local.get $0 - i32.add - local.tee $6 - i32.load16_u - local.set $3 - loop $while-continue|6 - local.get $12 + local.tee $8 local.get $4 - local.get $1 - i64.sub - i64.le_u + i64.ge_u + br_if $while-continue|4 + local.get $10 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $8 + local.set $1 i32.const 0 - local.get $1 - local.get $2 - i64.lt_u - select - if (result i32) - i32.const 1 - local.get $2 - local.get $1 - i64.sub + local.get $10 + i32.sub + i32.const 2 + i32.shl + i32.const 2200 + i32.add + i64.load32_u + local.get $9 + i64.mul + local.set $9 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $0 + i32.load16_u + local.set $7 + loop $while-continue|6 + local.get $11 + local.get $4 local.get $1 - local.get $12 - i64.add - local.tee $7 - local.get $2 i64.sub - i64.gt_u - local.get $2 - local.get $7 - i64.gt_u - select - else + i64.le_u i32.const 0 - end - if - local.get $3 - i32.const 1 - i32.sub - local.set $3 local.get $1 - local.get $12 - i64.add - local.set $1 - br $while-continue|6 + local.get $9 + i64.lt_u + select + if (result i32) + i32.const 1 + local.get $9 + local.get $1 + i64.sub + local.get $1 + local.get $11 + i64.add + local.tee $2 + local.get $9 + i64.sub + i64.gt_u + local.get $2 + local.get $9 + i64.lt_u + select + else + i32.const 0 + end + if + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $1 + local.get $11 + i64.add + local.set $1 + br $while-continue|6 + end end + local.get $0 + local.get $7 + i32.store16 + local.get $5 end - local.get $6 - local.get $3 - i32.store16 - local.get $5 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2614,8 +2613,6 @@ (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) local.get $2 i32.eqz if @@ -2716,7 +2713,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $5 + local.tee $2 i32.const 1 i32.shl local.get $0 @@ -2730,28 +2727,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $2 + local.set $4 loop $for-loop|1 local.get $2 - local.get $5 - i32.lt_s + local.get $4 + i32.gt_s if - local.get $2 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|1 end end local.get $1 - local.get $5 + local.get $2 i32.add else local.get $1 @@ -2779,6 +2776,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -2825,12 +2823,9 @@ i32.add end end - local.set $1 - local.get $0 - local.get $1 i32.const 1 i32.add - local.tee $0 + local.tee $1 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -2838,7 +2833,7 @@ local.get $2 select i32.store16 offset=4 - local.get $0 + local.get $1 i32.const 2 i32.add else @@ -2874,7 +2869,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $5 + local.tee $4 if i32.const 0 local.get $0 @@ -2882,6 +2877,7 @@ local.set $0 end local.get $0 + local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -2928,21 +2924,18 @@ i32.add end end - local.set $2 - local.get $0 - local.get $2 i32.const 1 i32.add - local.tee $0 + local.tee $2 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $5 + local.get $4 select i32.store16 offset=4 - local.get $0 local.get $1 + local.get $2 i32.add i32.const 2 i32.add diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index 995f0147ed..f3abeed2cb 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -120,6 +120,7 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 + local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -127,10 +128,10 @@ i32.eqz if i32.const 0 - local.get $0 + local.get $1 i32.const 17908 i32.lt_u - local.get $0 + local.get $1 i32.load offset=8 select i32.eqz @@ -144,7 +145,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $0 + local.get $1 i32.load offset=8 local.tee $1 i32.eqz @@ -169,8 +170,9 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $2 + local.set $3 local.get $0 + local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -178,10 +180,11 @@ if (result i32) i32.const 1 else + local.get $1 + local.tee $0 i32.const 1488 i32.load - local.get $1 - i32.lt_u + i32.gt_u if i32.const 1296 i32.const 1360 @@ -190,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1492 @@ -205,16 +208,16 @@ else i32.const 2 end - local.set $3 - local.get $2 + local.set $0 + local.get $3 i32.load offset=8 local.set $1 - local.get $0 local.get $2 + local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $0 + local.get $2 local.get $1 i32.store offset=8 local.get $1 @@ -222,11 +225,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $0 + local.get $2 i32.or i32.store offset=4 + local.get $3 local.get $2 - local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1154,348 +1157,348 @@ (local $0 i32) (local $1 i32) (local $2 i32) - i32.const 10 - local.set $0 - loop $while-continue|0 + block $folding-inner0 + i32.const 10 + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 + end + end local.get $0 if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 + i32.const 0 + i32.const 1056 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - local.get $0 - if - i32.const 0 - i32.const 1056 + local.get $2 i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 10 - i32.ne - if + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1056 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $2 - i32.const 10 - local.set $0 - loop $while-continue|00 + local.set $2 + i32.const 10 + local.set $0 + loop $while-continue|00 + local.get $0 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + loop $while-continue|1 + local.get $0 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|1 + end + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + br $while-continue|00 + end + end local.get $0 if + i32.const 0 + i32.const 1056 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $2 + i32.const 1 + local.set $0 + loop $while-continue|01 local.get $0 + local.tee $1 i32.const 1 i32.sub local.set $0 local.get $1 - i32.const 1 - i32.add - local.set $1 - loop $while-continue|1 - local.get $0 - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|1 - end - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 29 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 9 - i32.ne - if + if (result i32) + local.get $2 + i32.const 1 + i32.add + local.tee $2 + else i32.const 0 - i32.const 1056 - i32.const 30 - i32.const 5 - call $~lib/builtins/abort - unreachable end - br $while-continue|00 + br_if $while-continue|01 end - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $2 - i32.const 1 - local.set $0 - loop $while-continue|01 local.get $0 - local.tee $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 i32.const 1 - i32.sub + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 local.set $0 - local.get $1 - if (result i32) - local.get $2 + loop $while-continue|02 + local.get $0 i32.const 1 i32.add - local.tee $2 - else - i32.const 0 + local.tee $0 + i32.const 10 + i32.ne + br_if $while-continue|02 end - br_if $while-continue|01 - end - local.get $0 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $while-continue|02 local.get $0 - i32.const 1 - i32.add - local.tee $0 i32.const 10 i32.ne - br_if $while-continue|02 - end - local.get $0 - i32.const 10 - i32.ne - if + if + i32.const 0 + i32.const 1056 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1056 - i32.const 58 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $while-continue|03 - local.get $0 - i32.const 1 - i32.add - local.tee $0 + local.set $0 + loop $while-continue|03 (result i32) + local.get $0 + i32.const 1 + i32.add + local.tee $0 + i32.const 10 + i32.ne + br_if $while-continue|03 + local.get $0 + end i32.const 10 i32.ne - br_if $while-continue|03 - end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 72 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - loop $while-continue|04 - local.get $0 if - local.get $0 + i32.const 0 + i32.const 1056 + i32.const 72 i32.const 1 - i32.sub - local.set $0 - br $while-continue|04 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $while-continue|04 + local.get $0 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|04 + end end - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 117 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - i32.const 10 - local.set $2 - loop $while-continue|05 local.get $0 if - loop $while-continue|16 - local.get $2 - if + i32.const 0 + i32.const 1056 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const 10 + local.set $2 + loop $while-continue|05 + local.get $0 + if + loop $while-continue|16 local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|16 + if + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|16 + end end + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|05 end - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|05 end - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - if + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + if + i32.const 0 + i32.const 1056 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 17908 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace i32.const 0 - i32.const 1056 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - memory.size - i32.const 16 - i32.shl - i32.const 17908 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1524 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 call $while/Ref#constructor - local.tee $0 + local.tee $2 i32.store - loop $while-continue|07 - local.get $0 + loop $while-continue|06 + local.get $2 if - local.get $2 + local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $1 i32.const 10 i32.eq if i32.const 0 - local.set $0 + local.set $2 else global.get $~lib/memory/__stack_pointer call $while/Ref#constructor - local.tee $0 + local.tee $2 i32.store end - br $while-continue|07 + br $while-continue|06 end end - local.get $2 + local.get $1 i32.const 10 i32.ne if @@ -1506,7 +1509,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 if i32.const 0 i32.const 1056 @@ -1520,7 +1523,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1530,33 +1533,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 call $while/Ref#constructor - local.tee $0 + local.tee $2 i32.store - loop $while-continue|06 + loop $while-continue|08 call $while/Ref#constructor if - block $while-break|07 - local.get $2 + block $while-break|09 + local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $1 i32.const 10 i32.eq if i32.const 0 - local.set $0 - br $while-break|07 + local.set $2 + br $while-break|09 end - br $while-continue|06 + br $while-continue|08 end end end - local.get $2 + local.get $1 i32.const 10 i32.ne if @@ -1567,7 +1570,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 if i32.const 0 i32.const 1056 @@ -1582,47 +1585,47 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - loop $while-continue|08 + loop $while-continue|07 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 1 i32.lt_s - br_if $while-continue|08 + br_if $while-continue|07 end i32.const 0 local.set $0 - loop $while-continue|010 + loop $while-continue|09 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 1 i32.lt_s - br_if $while-continue|010 + br_if $while-continue|09 end global.get $~lib/rt/itcms/state i32.const 0 i32.gt_s if - loop $while-continue|012 + loop $while-continue|011 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|012 + br $while-continue|011 end end end call $~lib/rt/itcms/step drop - loop $while-continue|113 + loop $while-continue|112 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|113 + br $while-continue|112 end end global.get $~lib/rt/itcms/total @@ -1893,8 +1896,8 @@ i32.load offset=8 local.set $3 local.get $0 - global.get $~lib/rt/itcms/white local.get $1 + global.get $~lib/rt/itcms/white i32.or i32.store offset=4 local.get $0 From bf9afc8933ca56013cf62526687bedcc7f5bf453 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sun, 22 Aug 2021 13:59:34 +0300 Subject: [PATCH 25/32] Revert "better?" This reverts commit a4f2b511e4012167769d6e0c1d5248d3d4be6eee. --- src/module.ts | 3 +- tests/compiler/assert-nonnull.optimized.wat | 116 +- tests/compiler/call-super.optimized.wat | 853 +- tests/compiler/class-implements.optimized.wat | 84 +- .../class-overloading-cast.optimized.wat | 164 +- .../compiler/class-overloading.optimized.wat | 419 +- tests/compiler/class.optimized.wat | 158 +- tests/compiler/comma.optimized.wat | 30 +- tests/compiler/constructor.optimized.wat | 103 +- tests/compiler/do.optimized.wat | 540 +- .../empty-exportruntime.optimized.wat | 36 +- tests/compiler/empty-new.optimized.wat | 31 +- tests/compiler/exports.optimized.wat | 107 +- .../exportstar-rereexport.optimized.wat | 267 +- .../extends-baseaggregate.optimized.wat | 733 +- .../compiler/extends-recursive.optimized.wat | 110 +- tests/compiler/features/simd.optimized.wat | 151 +- .../field-initialization.optimized.wat | 311 +- tests/compiler/for.optimized.wat | 527 +- tests/compiler/function-call.optimized.wat | 31 +- .../function-expression.optimized.wat | 810 +- tests/compiler/function-types.optimized.wat | 11 +- tests/compiler/getter-call.optimized.wat | 503 +- tests/compiler/heap.optimized.wat | 16 +- .../implicit-getter-setter.optimized.wat | 117 +- tests/compiler/infer-array.optimized.wat | 199 +- tests/compiler/infer-generic.optimized.wat | 587 +- tests/compiler/inlining.optimized.wat | 370 +- tests/compiler/instanceof-class.optimized.wat | 169 +- tests/compiler/issues/1095.optimized.wat | 567 +- tests/compiler/issues/1225.optimized.wat | 41 +- tests/compiler/issues/1699.optimized.wat | 746 +- tests/compiler/logical.optimized.wat | 31 +- tests/compiler/loop-flow.optimized.wat | 36 +- tests/compiler/managed-cast.optimized.wat | 148 +- tests/compiler/memmove.optimized.wat | 251 +- tests/compiler/new.optimized.wat | 75 +- tests/compiler/number.optimized.wat | 413 +- tests/compiler/object-literal.optimized.wat | 926 +- .../optional-typeparameters.optimized.wat | 89 +- tests/compiler/reexport.optimized.wat | 99 +- tests/compiler/rereexport.optimized.wat | 39 +- tests/compiler/resolve-access.optimized.wat | 676 +- tests/compiler/resolve-binary.optimized.wat | 280 +- .../resolve-elementaccess.optimized.wat | 257 +- .../resolve-function-expression.optimized.wat | 289 +- tests/compiler/resolve-nested.optimized.wat | 91 +- tests/compiler/resolve-new.optimized.wat | 31 +- .../resolve-propertyaccess.optimized.wat | 101 +- tests/compiler/resolve-ternary.optimized.wat | 350 +- tests/compiler/resolve-unary.optimized.wat | 206 +- tests/compiler/rt/finalize.optimized.wat | 31 +- tests/compiler/rt/instanceof.optimized.wat | 75 +- .../runtime-incremental-export.optimized.wat | 36 +- .../rt/runtime-minimal-export.optimized.wat | 75 +- tests/compiler/std-wasi/console.optimized.wat | 1170 +- tests/compiler/std-wasi/crypto.optimized.wat | 531 +- tests/compiler/std-wasi/process.optimized.wat | 395 +- tests/compiler/std/array-access.optimized.wat | 43 +- .../compiler/std/array-literal.optimized.wat | 41 +- tests/compiler/std/array.optimized.wat | 10287 +++-- tests/compiler/std/arraybuffer.optimized.wat | 247 +- tests/compiler/std/dataview.optimized.wat | 275 +- tests/compiler/std/date.optimized.wat | 1217 +- tests/compiler/std/map.optimized.wat | 13264 +++--- tests/compiler/std/math.optimized.wat | 2783 +- tests/compiler/std/mod.optimized.wat | 278 +- tests/compiler/std/new.optimized.wat | 63 +- .../std/operator-overloading.optimized.wat | 257 +- tests/compiler/std/set.optimized.wat | 9112 ++-- tests/compiler/std/static-array.optimized.wat | 43 +- tests/compiler/std/staticarray.optimized.wat | 1247 +- .../std/string-casemapping.optimized.wat | 1266 +- .../std/string-encoding.optimized.wat | 1074 +- tests/compiler/std/string.optimized.wat | 1809 +- tests/compiler/std/symbol.optimized.wat | 691 +- tests/compiler/std/typedarray.optimized.wat | 34378 ++++++++-------- tests/compiler/std/uri.optimized.wat | 91 +- tests/compiler/super-inline.optimized.wat | 83 +- tests/compiler/templateliteral.optimized.wat | 846 +- tests/compiler/throw.optimized.wat | 264 +- tests/compiler/typeof.optimized.wat | 31 +- tests/compiler/wasi/trace.optimized.wat | 305 +- tests/compiler/while.optimized.wat | 639 +- 84 files changed, 48177 insertions(+), 48068 deletions(-) diff --git a/src/module.ts b/src/module.ts index a800440878..c966666b96 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2273,10 +2273,9 @@ export class Module { } if (optimizeLevel >= 3) { passes.push("simplify-locals-nostructure"); - passes.push("vacuum"); passes.push("flatten"); - passes.push("simplify-locals-notee-nostructure"); passes.push("vacuum"); + passes.push("simplify-locals-notee-nostructure"); passes.push("licm"); passes.push("merge-locals"); passes.push("reorder-locals"); diff --git a/tests/compiler/assert-nonnull.optimized.wat b/tests/compiler/assert-nonnull.optimized.wat index 2a632a59f7..7974350127 100644 --- a/tests/compiler/assert-nonnull.optimized.wat +++ b/tests/compiler/assert-nonnull.optimized.wat @@ -146,11 +146,11 @@ ) (func $export:assert-nonnull/testProp (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s @@ -206,11 +206,11 @@ ) (func $export:assert-nonnull/testArr (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s @@ -306,11 +306,11 @@ ) (func $export:assert-nonnull/testElem (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s @@ -366,9 +366,21 @@ ) (func $export:assert-nonnull/testAll (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1404 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -377,21 +389,9 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $0 - i32.store - block $__inlined_func$assert-nonnull/testAll (result i32) - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store + i64.const 0 + i64.store + block $__inlined_func$assert-nonnull/testAll block $folding-inner0 local.get $0 i32.eqz @@ -419,7 +419,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 br $__inlined_func$assert-nonnull/testAll end i32.const 1056 @@ -433,6 +432,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 17808 @@ -444,9 +444,21 @@ ) (func $export:assert-nonnull/testAll2 (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1404 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store + local.get $1 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -455,21 +467,9 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $0 - i32.store - block $__inlined_func$assert-nonnull/testAll2 (result i32) - local.get $1 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store + i64.const 0 + i64.store + block $__inlined_func$assert-nonnull/testAll2 block $folding-inner0 local.get $0 i32.eqz @@ -497,7 +497,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 br $__inlined_func$assert-nonnull/testAll2 end i32.const 1056 @@ -511,6 +510,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 17808 @@ -549,11 +549,11 @@ ) (func $export:assert-nonnull/testFn2 (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s @@ -609,11 +609,11 @@ ) (func $export:assert-nonnull/testRet (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s @@ -698,11 +698,11 @@ ) (func $export:assert-nonnull/testObjRet (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1404 i32.lt_s diff --git a/tests/compiler/call-super.optimized.wat b/tests/compiler/call-super.optimized.wat index 72456d2d0c..c1a35f7016 100644 --- a/tests/compiler/call-super.optimized.wat +++ b/tests/compiler/call-super.optimized.wat @@ -120,7 +120,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -128,10 +127,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17980 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -145,7 +144,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -170,9 +169,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -180,11 +178,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -193,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -208,16 +205,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -225,11 +222,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1499,8 +1496,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1802,11 +1799,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -1818,7 +1815,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -1840,7 +1837,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1596 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1938,435 +1935,437 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 i32.const 4 - i32.const 6 - call $~lib/rt/itcms/__new + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer local.tee $0 - i32.store - end - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 38 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if i32.const 0 - i32.const 1056 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.store + local.get $0 i32.const 8 + i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store - end - local.get $0 - i32.const 1 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 56 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1056 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + i32.store global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 10 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 38 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 7 call $~lib/rt/itcms/__new local.tee $0 i32.store - end - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1056 - i32.const 85 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 8 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 56 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 9 call $~lib/rt/itcms/__new local.tee $0 i32.store - end - local.get $0 - i32.const 1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - local.get $0 - i32.load - i32.const 1 - i32.ne - if + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1056 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $1 i32.const 0 - i32.const 1056 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store + local.get $1 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1596 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end i32.const 18000 i32.const 18048 diff --git a/tests/compiler/class-implements.optimized.wat b/tests/compiler/class-implements.optimized.wat index f5d697f39d..3bb34d32c7 100644 --- a/tests/compiler/class-implements.optimized.wat +++ b/tests/compiler/class-implements.optimized.wat @@ -142,7 +142,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -150,10 +149,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17948 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -167,7 +166,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -192,9 +191,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -202,11 +200,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1504 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -215,7 +212,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -230,16 +227,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -247,11 +244,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1231,17 +1228,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1254,16 +1251,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1271,15 +1268,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1306,12 +1303,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1321,7 +1318,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1330,19 +1327,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1368,26 +1365,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1545,11 +1542,12 @@ ) (func $class-implements/C#constructor (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1564 i32.lt_s diff --git a/tests/compiler/class-overloading-cast.optimized.wat b/tests/compiler/class-overloading-cast.optimized.wat index 6634bbe2fe..2a0569c480 100644 --- a/tests/compiler/class-overloading-cast.optimized.wat +++ b/tests/compiler/class-overloading-cast.optimized.wat @@ -156,7 +156,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -164,10 +163,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18084 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -181,7 +180,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -206,9 +205,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -216,11 +214,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1616 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -229,7 +226,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1620 @@ -244,16 +241,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -261,11 +258,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1245,17 +1242,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1268,16 +1265,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1285,15 +1282,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1320,12 +1317,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1335,7 +1332,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1344,19 +1341,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1382,26 +1379,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1592,21 +1589,20 @@ (func $start:class-overloading-cast (local $0 i32) (local $1 i32) - (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1700 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 memory.size @@ -1641,7 +1637,7 @@ i32.store i32.const 1344 global.set $~lib/rt/itcms/fromSpace - local.get $1 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1650,24 +1646,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 call $class-overloading-cast/A#constructor - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $class-overloading-cast/v global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1678,24 +1674,24 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 call $class-overloading-cast/A#constructor - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $class-overloading-cast/v2 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1706,13 +1702,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1726,45 +1722,45 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 7 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $class-overloading-cast/v3 global.get $~lib/memory/__stack_pointer global.get $class-overloading-cast/v - local.tee $1 + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 block $__inlined_func$class-overloading-cast/A#foo@virtual (result i32) block $default block $case1 - local.get $1 + local.get $0 i32.const 8 i32.sub i32.load - local.tee $1 + local.tee $0 i32.const 3 i32.ne if - local.get $1 + local.get $0 i32.const 5 i32.eq br_if $case1 @@ -1778,12 +1774,12 @@ end i32.const 1456 end - local.tee $1 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1488 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1488 call $~lib/string/String.__eq i32.eqz @@ -1858,13 +1854,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1878,34 +1874,33 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 9 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 global.set $class-overloading-cast/c global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $2 global.get $class-overloading-cast/c local.tee $1 i32.store offset=8 - local.get $2 + local.get $0 i32.const 1600 i32.store offset=12 local.get $1 @@ -1933,11 +1928,10 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.tee $2 global.get $class-overloading-cast/c local.tee $1 i32.store offset=8 - local.get $2 + local.get $0 i32.const 1600 i32.store offset=12 local.get $1 diff --git a/tests/compiler/class-overloading.optimized.wat b/tests/compiler/class-overloading.optimized.wat index 435966d3b4..80ec4e221b 100644 --- a/tests/compiler/class-overloading.optimized.wat +++ b/tests/compiler/class-overloading.optimized.wat @@ -180,7 +180,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -188,10 +187,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18316 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -205,7 +204,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -230,9 +229,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -240,11 +238,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1792 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -253,7 +250,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -268,16 +265,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -285,11 +282,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1269,17 +1266,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1292,16 +1289,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1309,15 +1306,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1344,12 +1341,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1359,7 +1356,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1368,19 +1365,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1406,26 +1403,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1712,11 +1709,11 @@ (func $start:class-overloading (local $0 i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s @@ -1819,14 +1816,14 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1520 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -1873,14 +1870,14 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1520 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -1927,14 +1924,14 @@ global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1520 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2002,15 +1999,15 @@ i32.const 1056 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $1 + local.get $0 i32.const 1616 i32.store - local.get $1 + local.get $0 i32.const 1616 i32.store offset=4 i32.const 1616 @@ -2028,15 +2025,15 @@ i32.const 1056 global.set $class-overloading/which global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $1 + local.get $0 i32.const 1616 i32.store - local.get $1 + local.get $0 i32.const 1616 i32.store offset=4 i32.const 1616 @@ -2052,15 +2049,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $class-overloading/c i32.store i32.const 1616 global.set $class-overloading/which - local.get $1 + local.get $0 i32.const 1616 i32.store - local.get $1 + local.get $0 i32.const 1616 i32.store offset=4 i32.const 1616 @@ -2111,43 +2108,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual22 - block $default23 - block $case224 - block $case125 - block $case026 + block $__inlined_func$class-overloading/A#b@virtual21 + block $default22 + block $case223 + block $case124 + block $case025 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case026 $case125 $case026 $case026 $case224 $default23 + br_table $case025 $case124 $case025 $case025 $case223 $default22 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual22 + br $__inlined_func$class-overloading/A#b@virtual21 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual22 + br $__inlined_func$class-overloading/A#b@virtual21 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual22 + br $__inlined_func$class-overloading/A#b@virtual21 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1520 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2165,43 +2162,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@virtual31 - block $default32 - block $case233 - block $case134 - block $case035 + block $__inlined_func$class-overloading/A#get:c@virtual30 + block $default31 + block $case232 + block $case133 + block $case034 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case035 $case134 $case035 $case035 $case233 $default32 + br_table $case034 $case133 $case034 $case034 $case232 $default31 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual31 + br $__inlined_func$class-overloading/A#get:c@virtual30 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual31 + br $__inlined_func$class-overloading/A#get:c@virtual30 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual31 + br $__inlined_func$class-overloading/A#get:c@virtual30 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1520 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2217,43 +2214,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual40 - block $default41 - block $case242 - block $case143 - block $case044 + block $__inlined_func$class-overloading/A#b@virtual39 + block $default40 + block $case241 + block $case142 + block $case043 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case044 $case143 $case044 $case044 $case242 $default41 + br_table $case043 $case142 $case043 $case043 $case241 $default40 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual40 + br $__inlined_func$class-overloading/A#b@virtual39 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual40 + br $__inlined_func$class-overloading/A#b@virtual39 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual40 + br $__inlined_func$class-overloading/A#b@virtual39 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1520 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2301,43 +2298,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual49 - block $default50 - block $case251 - block $case152 - block $case053 + block $__inlined_func$class-overloading/A#b@virtual48 + block $default49 + block $case250 + block $case151 + block $case052 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case053 $case152 $case053 $case053 $case251 $default50 + br_table $case052 $case151 $case052 $case052 $case250 $default49 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual49 + br $__inlined_func$class-overloading/A#b@virtual48 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual49 + br $__inlined_func$class-overloading/A#b@virtual48 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual49 + br $__inlined_func$class-overloading/A#b@virtual48 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1520 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2355,43 +2352,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@virtual58 - block $default59 - block $case260 - block $case161 - block $case062 + block $__inlined_func$class-overloading/A#get:c@virtual57 + block $default58 + block $case259 + block $case160 + block $case061 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case062 $case161 $case062 $case062 $case260 $default59 + br_table $case061 $case160 $case061 $case061 $case259 $default58 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual58 + br $__inlined_func$class-overloading/A#get:c@virtual57 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual58 + br $__inlined_func$class-overloading/A#get:c@virtual57 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual58 + br $__inlined_func$class-overloading/A#get:c@virtual57 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1520 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2407,43 +2404,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual67 - block $default68 - block $case269 - block $case170 - block $case071 + block $__inlined_func$class-overloading/A#b@virtual66 + block $default67 + block $case268 + block $case169 + block $case070 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case071 $case170 $case071 $case071 $case269 $default68 + br_table $case070 $case169 $case070 $case070 $case268 $default67 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual67 + br $__inlined_func$class-overloading/A#b@virtual66 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual67 + br $__inlined_func$class-overloading/A#b@virtual66 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual67 + br $__inlined_func$class-overloading/A#b@virtual66 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1520 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1520 call $~lib/string/String.__eq i32.eqz @@ -2516,43 +2513,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual77 - block $default78 - block $case279 - block $case180 - block $case081 + block $__inlined_func$class-overloading/A#b@virtual75 + block $default76 + block $case277 + block $case178 + block $case079 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case081 $case180 $case081 $case081 $case279 $default78 + br_table $case079 $case178 $case079 $case079 $case277 $default76 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual77 + br $__inlined_func$class-overloading/A#b@virtual75 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual77 + br $__inlined_func$class-overloading/A#b@virtual75 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual77 + br $__inlined_func$class-overloading/A#b@virtual75 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1648 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -2570,43 +2567,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#get:c@virtual86 - block $default87 - block $case288 - block $case189 - block $case090 + block $__inlined_func$class-overloading/A#get:c@virtual84 + block $default85 + block $case286 + block $case187 + block $case088 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case090 $case189 $case090 $case090 $case288 $default87 + br_table $case088 $case187 $case088 $case088 $case286 $default85 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual86 + br $__inlined_func$class-overloading/A#get:c@virtual84 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual86 + br $__inlined_func$class-overloading/A#get:c@virtual84 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@virtual86 + br $__inlined_func$class-overloading/A#get:c@virtual84 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1648 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -2624,43 +2621,43 @@ global.get $class-overloading/a local.tee $0 i32.store - block $__inlined_func$class-overloading/A#b@virtual95 - block $default96 - block $case297 - block $case198 - block $case099 + block $__inlined_func$class-overloading/A#b@virtual93 + block $default94 + block $case295 + block $case196 + block $case097 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case099 $case198 $case099 $case099 $case297 $default96 + br_table $case097 $case196 $case097 $case097 $case295 $default94 end i32.const 1520 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual95 + br $__inlined_func$class-overloading/A#b@virtual93 end i32.const 1616 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual95 + br $__inlined_func$class-overloading/A#b@virtual93 end i32.const 1648 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@virtual95 + br $__inlined_func$class-overloading/A#b@virtual93 end i32.const 1488 global.set $class-overloading/which end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1648 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1648 call $~lib/string/String.__eq i32.eqz @@ -2702,8 +2699,8 @@ local.tee $0 i32.store block $__inlined_func$class-overloading/IA#foo@virtual - block $default105 - block $case1106 + block $default102 + block $case1103 local.get $0 i32.const 8 i32.sub @@ -2715,8 +2712,8 @@ local.get $0 i32.const 12 i32.eq - br_if $case1106 - br $default105 + br_if $case1103 + br $default102 end i32.const 1680 global.set $class-overloading/which @@ -2729,14 +2726,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1680 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1680 call $~lib/string/String.__eq i32.eqz @@ -2777,9 +2774,9 @@ global.get $class-overloading/ic local.tee $0 i32.store - block $__inlined_func$class-overloading/IA#foo@virtual109 - block $default110 - block $case1111 + block $__inlined_func$class-overloading/IA#foo@virtual105 + block $default106 + block $case1107 local.get $0 i32.const 8 i32.sub @@ -2791,28 +2788,28 @@ local.get $0 i32.const 12 i32.eq - br_if $case1111 - br $default110 + br_if $case1107 + br $default106 end i32.const 1680 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual109 + br $__inlined_func$class-overloading/IA#foo@virtual105 end i32.const 1712 global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@virtual109 + br $__inlined_func$class-overloading/IA#foo@virtual105 end unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $class-overloading/which local.tee $0 + global.get $class-overloading/which + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1712 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1712 call $~lib/string/String.__eq i32.eqz @@ -2878,7 +2875,7 @@ global.get $class-overloading/b2 local.tee $0 i32.store - block $__inlined_func$class-overloading/A2#foo@virtual (result i32) + block $__inlined_func$class-overloading/A2#foo@virtual local.get $0 i32.const 8 i32.sub @@ -2967,7 +2964,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 3 br $__inlined_func$class-overloading/A2#foo@virtual end i32.const 1744 @@ -2977,16 +2973,6 @@ call $~lib/builtins/abort unreachable end - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1552 - i32.const 209 - i32.const 1 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -3002,11 +2988,12 @@ ) (func $class-overloading/B#constructor (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1932 i32.lt_s diff --git a/tests/compiler/class.optimized.wat b/tests/compiler/class.optimized.wat index 2b77481469..6b28ef8193 100644 --- a/tests/compiler/class.optimized.wat +++ b/tests/compiler/class.optimized.wat @@ -113,7 +113,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -121,10 +120,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17972 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -138,7 +137,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -163,21 +162,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1536 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -186,7 +183,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1540 @@ -201,28 +198,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1485,7 +1482,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1513,11 +1510,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1536,9 +1533,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1554,7 +1551,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1569,18 +1566,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1591,7 +1588,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1605,16 +1602,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1627,89 +1621,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1717,7 +1711,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1784,24 +1778,24 @@ (local $0 i32) (local $1 i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1588 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -1840,19 +1834,19 @@ i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 32 call $~lib/memory/memory.fill local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 call $~lib/rt/itcms/__link local.get $0 - local.get $2 + local.get $1 i32.store offset=4 local.get $0 i32.const 32 @@ -1864,10 +1858,10 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 local.get $0 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/comma.optimized.wat b/tests/compiler/comma.optimized.wat index 23ce049407..30a6004906 100644 --- a/tests/compiler/comma.optimized.wat +++ b/tests/compiler/comma.optimized.wat @@ -75,36 +75,12 @@ global.set $comma/a i32.const 1 global.set $comma/b - global.get $comma/a - i32.const 1 - i32.add - global.set $comma/a - global.get $comma/a - global.set $comma/b - global.get $comma/b + i32.const 2 global.set $comma/a - global.get $comma/a i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $comma/b + global.set $comma/b i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 19 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + global.set $comma/a loop $for-loop|0 global.get $comma/a local.get $0 diff --git a/tests/compiler/constructor.optimized.wat b/tests/compiler/constructor.optimized.wat index a306bb39a8..8681487ce4 100644 --- a/tests/compiler/constructor.optimized.wat +++ b/tests/compiler/constructor.optimized.wat @@ -197,7 +197,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -205,10 +204,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17988 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -222,7 +221,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -247,9 +246,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -257,11 +255,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -270,7 +267,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -285,16 +282,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -302,11 +299,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1576,8 +1573,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1785,43 +1782,43 @@ ) (func $start:constructor (local $0 i32) + memory.size + i32.const 16 + i32.shl + i32.const 17988 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - memory.size - i32.const 16 - i32.shl - i32.const 17988 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1604 i32.lt_s diff --git a/tests/compiler/do.optimized.wat b/tests/compiler/do.optimized.wat index 2998791caa..769ebdd80b 100644 --- a/tests/compiler/do.optimized.wat +++ b/tests/compiler/do.optimized.wat @@ -120,7 +120,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -128,10 +127,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17892 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -145,7 +144,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -170,9 +169,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -180,11 +178,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1472 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -193,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -208,16 +205,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -225,11 +222,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1157,306 +1154,307 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - i32.const 10 - local.set $0 - loop $do-continue|0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - br_if $do-continue|0 - end + (local $3 i32) + i32.const 10 + local.set $0 + loop $do-continue|0 + local.get $2 + i32.const 1 + i32.add + local.set $2 local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 1 + i32.sub + local.tee $0 + br_if $do-continue|0 + end + local.get $0 + if + i32.const 0 + i32.const 1056 i32.const 10 - local.set $0 - loop $do-continue|00 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - br_if $do-continue|00 - end + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $do-continue|00 local.get $0 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.tee $1 + i32.const 1 + i32.sub + local.set $0 + local.get $1 + br_if $do-continue|00 + end + local.get $0 + i32.const -1 + i32.ne + if i32.const 0 - local.set $1 - i32.const 10 + i32.const 1056 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $2 + i32.const 10 + local.set $0 + loop $do-continue|01 + local.get $0 + i32.const 1 + i32.sub local.set $0 - loop $do-continue|01 - local.get $0 - i32.const 1 - i32.sub - local.set $0 + local.get $3 + i32.const 1 + i32.add + local.set $3 + loop $do-continue|1 local.get $2 i32.const 1 i32.add local.set $2 - loop $do-continue|1 - local.get $1 - i32.const 1 - i32.add - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - br_if $do-continue|1 - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 40 - i32.const 5 - call $~lib/builtins/abort - unreachable - end local.get $0 - br_if $do-continue|01 + i32.const 1 + i32.sub + local.tee $0 + br_if $do-continue|1 end local.get $0 if i32.const 0 i32.const 1056 - i32.const 42 - i32.const 3 + i32.const 39 + i32.const 5 call $~lib/builtins/abort unreachable end local.get $2 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 i32.const 9 i32.ne if i32.const 0 i32.const 1056 - i32.const 44 - i32.const 3 + i32.const 40 + i32.const 5 call $~lib/builtins/abort unreachable end + local.get $0 + br_if $do-continue|01 + end + local.get $0 + if i32.const 0 - local.set $0 - loop $do-continue|02 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $do-continue|02 - end + i32.const 1056 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $do-continue|02 local.get $0 + i32.const 1 + i32.add + local.tee $0 i32.const 10 i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + br_if $do-continue|02 + end + local.get $0 + i32.const 10 + i32.ne + if i32.const 0 - local.set $0 - loop $do-continue|03 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $do-continue|03 - end + i32.const 1056 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $do-continue|03 local.get $0 + i32.const 1 + i32.add + local.tee $0 i32.const 10 i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 70 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + br_if $do-continue|03 + end + local.get $0 + i32.const 10 + i32.ne + if i32.const 0 - local.set $0 - loop $do-continue|04 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $do-continue|04 - end + i32.const 1056 + i32.const 70 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $do-continue|04 local.get $0 + i32.const 1 + i32.add + local.tee $0 i32.const 10 i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 116 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 + br_if $do-continue|04 + end + local.get $0 + i32.const 10 + i32.ne + if i32.const 0 - local.set $1 - loop $do-continue|05 - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 10 - i32.ne - if - loop $do-continue|17 - local.get $1 - i32.const 1 - i32.add - local.tee $1 - i32.const 10 - i32.rem_s - br_if $do-continue|17 - end - br $do-continue|05 - end - end + i32.const 1056 + i32.const 116 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + i32.const 0 + local.set $2 + loop $do-continue|05 local.get $0 + i32.const 1 + i32.add + local.tee $0 i32.const 10 i32.ne if - i32.const 0 - i32.const 1056 - i32.const 134 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 90 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable + loop $do-continue|17 + local.get $2 + i32.const 1 + i32.add + local.tee $2 + i32.const 10 + i32.rem_s + br_if $do-continue|17 + end + br $do-continue|05 end - memory.size - i32.const 16 - i32.shl - i32.const 17892 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace + end + local.get $0 + i32.const 10 + i32.ne + if i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 134 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 90 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 17892 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1508 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 call $do/Ref#constructor i32.store - loop $do-continue|06 - local.get $1 + loop $do-continue|08 + local.get $2 i32.const 1 i32.add - local.tee $1 + local.tee $2 i32.const 10 i32.eq if @@ -1469,9 +1467,9 @@ i32.store end local.get $0 - br_if $do-continue|06 + br_if $do-continue|08 end - local.get $1 + local.get $2 i32.const 10 i32.ne if @@ -1506,15 +1504,15 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 call $do/Ref#constructor - local.tee $1 + local.tee $0 i32.store - loop $do-continue|08 - block $do-break|09 + loop $do-continue|06 + block $do-break|07 local.get $2 i32.const 1 i32.add @@ -1523,11 +1521,11 @@ i32.eq if i32.const 0 - local.set $1 - br $do-break|09 + local.set $0 + br $do-break|07 end call $do/Ref#constructor - br_if $do-continue|08 + br_if $do-continue|06 end end local.get $2 @@ -1541,7 +1539,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 if i32.const 0 i32.const 1056 @@ -1845,8 +1843,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/empty-exportruntime.optimized.wat b/tests/compiler/empty-exportruntime.optimized.wat index 4ebea25e78..1fe41540de 100644 --- a/tests/compiler/empty-exportruntime.optimized.wat +++ b/tests/compiler/empty-exportruntime.optimized.wat @@ -168,21 +168,19 @@ local.get $0 call $~lib/rt/itcms/Object#unlink global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1568 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -191,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1572 @@ -206,28 +204,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1516,8 +1514,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1813,8 +1811,8 @@ i32.load offset=8 local.set $1 local.get $0 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/empty-new.optimized.wat b/tests/compiler/empty-new.optimized.wat index 6c059cde77..53bb82de6d 100644 --- a/tests/compiler/empty-new.optimized.wat +++ b/tests/compiler/empty-new.optimized.wat @@ -116,7 +116,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -124,10 +123,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17852 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -141,7 +140,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -166,9 +165,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -176,11 +174,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -189,7 +186,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -204,16 +201,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -221,11 +218,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1404,8 +1401,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/exports.optimized.wat b/tests/compiler/exports.optimized.wat index d74685608f..c891abccb7 100644 --- a/tests/compiler/exports.optimized.wat +++ b/tests/compiler/exports.optimized.wat @@ -170,7 +170,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -178,10 +177,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17868 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -195,7 +194,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -220,9 +219,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -230,11 +228,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -243,7 +240,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -258,16 +255,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -275,11 +272,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1259,17 +1256,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1282,16 +1279,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1299,15 +1296,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1334,12 +1331,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1349,7 +1346,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1358,19 +1355,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1396,26 +1393,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1430,34 +1427,34 @@ local.get $1 i32.const 20 i32.add - local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 + local.tee $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 ) (func $export/mul (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -1610,11 +1607,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:exports/Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s @@ -1704,11 +1701,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:exports/vehicles.Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s diff --git a/tests/compiler/exportstar-rereexport.optimized.wat b/tests/compiler/exportstar-rereexport.optimized.wat index 04be352f01..98532485b9 100644 --- a/tests/compiler/exportstar-rereexport.optimized.wat +++ b/tests/compiler/exportstar-rereexport.optimized.wat @@ -171,7 +171,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -179,10 +178,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17956 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -196,7 +195,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -221,9 +220,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -231,11 +229,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1536 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -244,7 +241,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1540 @@ -259,16 +256,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -276,11 +273,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1243,132 +1240,134 @@ ) (func $~start (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 + block $__inlined_func$start:exportstar-rereexport global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1572 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - memory.size - i32.const 16 - i32.shl - i32.const 17956 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - call $exports/Car#constructor - global.set $reexport/car - global.get $~lib/memory/__stack_pointer - global.get $reexport/car - local.tee $0 - i32.store - local.get $0 - i32.load - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 40 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - call $exports/Car#constructor - global.set $rereexport/car - global.get $~lib/memory/__stack_pointer - global.get $rereexport/car - local.tee $0 - i32.store - local.get $0 - i32.load - i32.const 2 - i32.ne - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 0 - i32.const 1504 - i32.const 18 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - call $exports/Car#constructor - global.set $rereexport/exportsNamespaceCar - global.get $~lib/memory/__stack_pointer - global.get $rereexport/exportsNamespaceCar - local.tee $0 - i32.store - local.get $0 - i32.load - i32.const 2 - i32.ne - if + i32.store + local.get $0 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1572 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1504 - i32.const 24 + i32.store + memory.size + i32.const 16 + i32.shl + i32.const 17956 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + call $exports/Car#constructor + global.set $reexport/car + global.get $~lib/memory/__stack_pointer + global.get $reexport/car + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 40 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + call $exports/Car#constructor + global.set $rereexport/car + global.get $~lib/memory/__stack_pointer + global.get $rereexport/car + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 18 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + call $exports/Car#constructor + global.set $rereexport/exportsNamespaceCar + global.get $~lib/memory/__stack_pointer + global.get $rereexport/exportsNamespaceCar + local.tee $0 + i32.store + local.get $0 + i32.load + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$start:exportstar-rereexport end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 17984 + i32.const 18032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 17984 - i32.const 18032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) (func $exports/Car#constructor (result i32) (local $0 i32) @@ -1587,8 +1586,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/extends-baseaggregate.optimized.wat b/tests/compiler/extends-baseaggregate.optimized.wat index f60d9086f9..3c00c1f698 100644 --- a/tests/compiler/extends-baseaggregate.optimized.wat +++ b/tests/compiler/extends-baseaggregate.optimized.wat @@ -119,7 +119,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -127,10 +126,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18156 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -144,7 +143,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -169,21 +168,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1696 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1408 i32.const 1472 @@ -192,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1700 @@ -207,28 +204,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1491,7 +1488,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1519,11 +1516,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1542,9 +1539,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1560,7 +1557,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1575,18 +1572,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1597,7 +1594,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1611,16 +1608,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1633,89 +1627,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1723,7 +1717,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2501,230 +2495,332 @@ i32.store8 end ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (param $0 i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - local.get $0 - i32.const 20 - i32.sub - local.tee $2 + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + i32.const 1180 i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u + local.tee $8 + i32.const 1 + i32.add + local.tee $7 + local.tee $5 + i32.const 1176 + i32.load + local.tee $10 + i32.const 2 + i32.shr_u + i32.gt_u if - local.get $2 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $4 - local.get $1 - local.get $2 - i32.load offset=16 - local.tee $2 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $5 - block $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.tee $1 - local.get $0 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $1 - i32.sub - local.get $5 - i32.sub - i32.const 0 local.get $5 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $1 - local.get $0 - local.get $5 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - local.get $1 + i32.const 268435455 i32.gt_u if - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 + i32.const 1616 + i32.const 1664 + i32.const 18 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + block $__inlined_func$~lib/rt/itcms/__renew + local.get $10 + i32.const 1 + i32.shl + local.tee $4 + i32.const 1073741820 + local.get $4 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + local.get $5 + i32.const 8 + local.get $5 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $4 + local.get $2 + local.get $4 + i32.gt_u + select + local.tee $9 + local.tee $11 + i32.const 1168 + i32.load + local.tee $6 + local.tee $1 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 i32.and - i32.eq + i32.const 16 + i32.sub + i32.le_u if - loop $while-continue|0 + local.get $3 + local.get $11 + i32.store offset=16 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $11 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $5 + local.set $4 + local.get $11 + local.get $3 + i32.load offset=16 + local.tee $2 + local.get $2 + local.get $11 + i32.gt_u + select + local.set $11 + block $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $4 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $4 + i32.sub + local.get $11 + i32.sub + i32.const 0 + local.get $11 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $4 + local.get $1 + local.get $11 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $1 + local.get $4 + i32.gt_u + if local.get $1 i32.const 7 i32.and + local.get $4 + i32.const 7 + i32.and + i32.eq if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - br $while-continue|0 + loop $while-continue|0 + local.get $4 + i32.const 7 + i32.and + if + local.get $11 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $11 + i32.const 1 + i32.sub + local.set $11 + local.get $4 + local.tee $3 + i32.const 1 + i32.add + local.set $4 + local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $11 + i32.const 8 + i32.ge_u + if + local.get $4 + local.get $1 + i64.load + i64.store + local.get $11 + i32.const 8 + i32.sub + local.set $11 + local.get $4 + i32.const 8 + i32.add + local.set $4 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end end - end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $1 - local.get $0 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 8 - i32.add - local.set $0 - br $while-continue|1 + loop $while-continue|2 + local.get $11 + if + local.get $4 + local.tee $3 + i32.const 1 + i32.add + local.set $4 + local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + local.get $11 + i32.const 1 + i32.sub + local.set $11 + br $while-continue|2 + end end - end - end - loop $while-continue|2 - local.get $5 - if - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 + else local.get $1 - local.get $5 - i32.add i32.const 7 i32.and + local.get $4 + i32.const 7 + i32.and + i32.eq if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 + loop $while-continue|3 + local.get $4 + local.get $11 + i32.add + i32.const 7 + i32.and + if + local.get $11 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + local.get $11 + i32.const 1 + i32.sub + local.tee $11 + i32.add + local.get $1 + local.get $11 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $11 + i32.const 8 + i32.ge_u + if + local.get $4 + local.get $11 + i32.const 8 + i32.sub + local.tee $11 + i32.add + local.get $1 + local.get $11 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i64.load - i64.store - br $while-continue|4 + loop $while-continue|5 + local.get $11 + if + local.get $4 + local.get $11 + i32.const 1 + i32.sub + local.tee $11 + i32.add + local.get $1 + local.get $11 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end end end end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end + local.get $5 + local.set $1 end + local.get $1 + local.get $10 + i32.add + local.get $9 + local.get $10 + i32.sub + call $~lib/memory/memory.fill + local.get $1 + local.get $6 + i32.ne + if + i32.const 1168 + local.get $1 + i32.store + i32.const 1172 + local.get $1 + i32.store + i32.const 1168 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + end + i32.const 1176 + local.get $9 + i32.store end - local.get $4 + i32.const 1172 + i32.load + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $0 + i32.store + i32.const 1168 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + i32.const 1180 + local.get $7 + i32.store ) (func $~lib/array/Array~visit (param $0 i32) (local $1 i32) @@ -2810,16 +2906,11 @@ (func $~start (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s @@ -2929,100 +3020,8 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - i32.const 1180 - i32.load - local.tee $4 - i32.const 1 - i32.add - local.tee $5 - local.tee $1 - i32.const 1176 - i32.load - local.tee $3 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 1616 - i32.const 1664 - i32.const 18 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - local.get $3 - i32.const 1168 - i32.load - local.tee $6 - local.get $3 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - local.get $1 - i32.const 8 - local.get $1 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.tee $2 - call $~lib/rt/itcms/__renew - local.tee $1 - i32.add - local.get $2 - local.get $3 - i32.sub - call $~lib/memory/memory.fill - local.get $1 - local.get $6 - i32.ne - if - i32.const 1168 - local.get $1 - i32.store - i32.const 1172 - local.get $1 - i32.store - i32.const 1168 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - end - i32.const 1176 - local.get $2 - i32.store - end - i32.const 1172 - i32.load - local.get $4 - i32.const 2 - i32.shl - i32.add - local.get $0 - i32.store - i32.const 1168 local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - i32.const 1180 - local.get $5 - i32.store + call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer i32.const 8 i32.add diff --git a/tests/compiler/extends-recursive.optimized.wat b/tests/compiler/extends-recursive.optimized.wat index a3da8ce0cb..d9e47c1ab2 100644 --- a/tests/compiler/extends-recursive.optimized.wat +++ b/tests/compiler/extends-recursive.optimized.wat @@ -108,7 +108,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -116,10 +115,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17868 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -133,7 +132,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -158,21 +157,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -181,7 +178,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -196,28 +193,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1216,17 +1213,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1239,16 +1236,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1256,15 +1253,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1291,12 +1288,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1306,7 +1303,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1315,19 +1312,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1353,26 +1350,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1387,34 +1384,34 @@ local.get $1 i32.const 20 i32.add - local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 + local.tee $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 @@ -1595,11 +1592,12 @@ ) (func $export:extends-recursive/Child#constructor (param $0 i32) (result i32) (local $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s diff --git a/tests/compiler/features/simd.optimized.wat b/tests/compiler/features/simd.optimized.wat index 50a48eb5a1..6b1df4a9bf 100644 --- a/tests/compiler/features/simd.optimized.wat +++ b/tests/compiler/features/simd.optimized.wat @@ -1,9 +1,10 @@ (module (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -740,12 +741,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -756,13 +764,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -770,32 +778,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -811,16 +819,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -828,7 +836,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -836,10 +844,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -850,11 +858,11 @@ unreachable end end - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -864,14 +872,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.tee $3 + local.get $1 i32.load local.set $2 - local.get $1 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -887,44 +894,44 @@ local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $3 + local.get $1 local.get $2 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $3 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $3 + local.get $1 local.get $2 i32.const -2 i32.and i32.store - local.get $3 + local.get $1 i32.const 4 i32.add - local.get $3 + local.get $1 i32.load i32.const -4 i32.and @@ -936,7 +943,9 @@ i32.and i32.store end - local.get $3 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -991,32 +1000,16 @@ ) (func $~start (local $0 i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 64 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 local.get $0 v128.load offset=16 v128.store offset=32 local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store8 @@ -1036,16 +1029,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store16 @@ -1065,16 +1050,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store @@ -1094,16 +1071,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i64.const 42 i64.store @@ -1123,16 +1092,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i32.const 42 i32.store @@ -1152,16 +1113,8 @@ end local.get $0 call $~lib/rt/tlsf/__free - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 16 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $0 i64.const 42 i64.store diff --git a/tests/compiler/field-initialization.optimized.wat b/tests/compiler/field-initialization.optimized.wat index 49c301ffba..698c7420d1 100644 --- a/tests/compiler/field-initialization.optimized.wat +++ b/tests/compiler/field-initialization.optimized.wat @@ -126,7 +126,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -134,10 +133,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18380 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -151,7 +150,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -176,21 +175,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1792 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -199,7 +196,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -214,28 +211,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1498,7 +1495,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1526,11 +1523,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1549,9 +1546,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1567,7 +1564,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1582,18 +1579,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1604,7 +1601,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1618,16 +1615,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1640,89 +1634,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1730,7 +1724,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1995,11 +1989,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1996 i32.lt_s @@ -2053,7 +2047,6 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace local.get $0 - local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2062,16 +2055,16 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 4 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.store global.get $~lib/memory/__stack_pointer @@ -2079,8 +2072,9 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.load i32.const 1 i32.ne @@ -2149,21 +2143,20 @@ i32.const 4 i32.const 5 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $2 i32.store - local.get $1 local.get $0 + local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $0 i32.store local.get $0 i32.load @@ -2194,21 +2187,20 @@ i32.const 4 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $2 i32.store - local.get $1 local.get $0 + local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $0 i32.store local.get $0 i32.load @@ -2405,21 +2397,20 @@ i32.const 4 i32.const 11 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $2 i32.store - local.get $1 local.get $0 + local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $0 i32.store local.get $0 i32.load @@ -2450,27 +2441,26 @@ i32.const 4 i32.const 12 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $2 i32.store - local.get $1 local.get $0 + local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $0 i32.store local.get $0 i32.load @@ -2485,11 +2475,9 @@ end global.get $~lib/memory/__stack_pointer call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2499,30 +2487,30 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 4 i32.const 13 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store + local.get $0 local.get $1 - local.get $2 i32.store + local.get $0 local.get $1 - local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.load local.get $0 + i32.load + local.get $1 i32.ne if i32.const 0 @@ -2592,21 +2580,20 @@ i32.const 4 i32.const 15 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $2 i32.store - local.get $1 local.get $0 + local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $0 i32.store offset=4 local.get $0 i32.load @@ -2637,27 +2624,26 @@ i32.const 4 i32.const 16 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $2 i32.store - local.get $1 local.get $0 + local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $0 i32.store offset=4 local.get $0 i32.load @@ -2755,7 +2741,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 @@ -2769,7 +2755,7 @@ local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 local.get $0 i32.store local.get $0 @@ -2800,7 +2786,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 @@ -2814,7 +2800,7 @@ local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 local.get $0 i32.store offset=16 local.get $0 @@ -2847,7 +2833,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 @@ -2861,7 +2847,7 @@ local.get $0 i32.const 0 i32.store - local.get $2 + local.get $1 local.get $0 i32.store offset=24 local.get $0 @@ -2875,12 +2861,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.load offset=4 local.tee $0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1648 i32.store offset=28 local.get $0 @@ -2896,7 +2882,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 call $field-initialization/SomeObject#constructor local.tee $0 @@ -2910,7 +2896,7 @@ local.get $0 i32.const 1680 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 local.get $0 i32.store offset=36 local.get $0 @@ -2926,12 +2912,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.load offset=4 local.tee $0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1680 i32.store offset=28 local.get $0 @@ -2947,7 +2933,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 call $field-initialization/SomeOtherObject#constructor local.tee $0 i32.store offset=36 @@ -2966,7 +2952,7 @@ local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 local.get $0 i32.store offset=24 local.get $0 @@ -2982,9 +2968,9 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 call $~lib/string/String.__eq i32.eqz @@ -2997,12 +2983,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.load offset=8 local.tee $0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1712 i32.store offset=28 local.get $0 @@ -3018,7 +3004,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 call $field-initialization/SomeOtherObject#constructor local.tee $0 i32.store offset=16 @@ -3037,7 +3023,7 @@ local.get $0 i32.const 1776 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 local.get $0 i32.store local.get $0 @@ -3074,12 +3060,12 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.load offset=8 local.tee $0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1776 i32.store offset=28 local.get $0 @@ -3112,27 +3098,26 @@ i32.const 4 i32.const 22 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $2 i32.store - local.get $1 local.get $0 + local.get $2 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $0 i32.store local.get $0 i32.load @@ -3146,8 +3131,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $1 i32.const 4 i32.const 23 call $~lib/rt/itcms/__new @@ -3160,6 +3144,7 @@ local.get $0 local.get $2 call $~lib/rt/itcms/__link + local.get $1 local.get $0 i32.store offset=24 local.get $0 @@ -3174,8 +3159,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $1 i32.const 4 i32.const 24 call $~lib/rt/itcms/__new @@ -3194,6 +3178,7 @@ local.get $0 local.get $2 call $~lib/rt/itcms/__link + local.get $1 local.get $0 i32.store local.get $0 diff --git a/tests/compiler/for.optimized.wat b/tests/compiler/for.optimized.wat index 6e268a43f2..3714775f39 100644 --- a/tests/compiler/for.optimized.wat +++ b/tests/compiler/for.optimized.wat @@ -120,7 +120,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -128,10 +127,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17892 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -145,7 +144,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -170,9 +169,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -180,11 +178,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1472 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -193,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -208,16 +205,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -225,11 +222,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1157,281 +1154,281 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - loop $for-loop|0 - local.get $0 - i32.const 10 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end + loop $for-loop|0 local.get $0 i32.const 10 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1056 - i32.const 8 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|00 local.get $0 - i32.const 10 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 - end + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end + end + local.get $0 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $0 i32.const 10 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1056 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - loop $for-loop|01 local.get $0 - i32.const 0 - i32.gt_s - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|01 - end - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 29 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 end + end + local.get $0 + i32.const 10 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|02 - local.get $0 - i32.const 10 - i32.ne - if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - end - end + i32.const 1056 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $for-loop|01 local.get $0 - i32.const 10 - i32.ne + i32.const 0 + i32.gt_s if - i32.const 0 - i32.const 1056 - i32.const 39 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - loop $for-loop|03 local.get $0 i32.const 1 i32.sub - local.tee $0 - br_if $for-loop|03 + local.set $0 + br $for-loop|01 end + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|02 local.get $0 + i32.const 10 + i32.ne if - i32.const 0 - i32.const 1056 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|05 local.get $0 i32.const 1 i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $for-loop|05 + local.set $0 + br $for-loop|02 end + end + local.get $0 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $for-loop|03 local.get $0 + i32.const 1 + i32.sub + local.tee $0 + br_if $for-loop|03 + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|05 + local.get $0 + i32.const 1 + i32.add + local.tee $0 i32.const 10 i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 61 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + br_if $for-loop|05 + end + local.get $0 + i32.const 10 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|07 - local.get $0 - i32.const 10 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|07 - end - end + i32.const 1056 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|07 local.get $0 i32.const 10 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1056 - i32.const 80 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|07 end + end + local.get $0 + i32.const 10 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|08 + i32.const 1056 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|08 + local.get $0 + i32.const 10 + i32.lt_s + if local.get $0 - i32.const 10 - i32.lt_s + i32.const 2 + i32.ge_s if - local.get $0 - i32.const 2 - i32.ge_s - if - i32.const 0 - local.set $1 - loop $for-loop|1 + i32.const 0 + local.set $1 + loop $for-loop|1 + local.get $1 + i32.const 10 + i32.lt_s + if + local.get $2 + i32.const 1 + i32.add + local.get $2 + local.get $0 local.get $1 - i32.const 10 i32.lt_s - if - local.get $2 - i32.const 1 - i32.add - local.get $2 - local.get $0 - local.get $1 - i32.lt_s - select - local.set $2 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end + select + local.set $2 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|1 end end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|08 end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|08 end - local.get $0 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 121 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 28 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - memory.size - i32.const 16 - i32.shl - i32.const 17892 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace + end + local.get $0 + i32.const 10 + i32.ne + if i32.const 0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 121 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 28 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 17892 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1508 i32.lt_s @@ -1442,30 +1439,30 @@ i32.store local.get $0 call $for/Ref#constructor - local.tee $1 + local.tee $0 i32.store - loop $for-loop|06 - local.get $1 + loop $for-loop|09 + local.get $0 if - local.get $2 + local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $1 i32.const 10 i32.eq if i32.const 0 - local.set $1 + local.set $0 else global.get $~lib/memory/__stack_pointer call $for/Ref#constructor - local.tee $1 + local.tee $0 i32.store end - br $for-loop|06 + br $for-loop|09 end end - local.get $2 + local.get $1 i32.const 10 i32.ne if @@ -1476,7 +1473,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 if i32.const 0 i32.const 1056 @@ -1510,10 +1507,10 @@ call $for/Ref#constructor local.tee $0 i32.store - loop $for-loop|09 + loop $for-loop|06 call $for/Ref#constructor if - block $for-break010 + block $for-break07 local.get $1 i32.const 1 i32.add @@ -1523,13 +1520,13 @@ if i32.const 0 local.set $0 - br $for-break010 + br $for-break07 end global.get $~lib/memory/__stack_pointer call $for/Ref#constructor local.tee $0 i32.store - br $for-loop|09 + br $for-loop|06 end end end @@ -1848,8 +1845,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/function-call.optimized.wat b/tests/compiler/function-call.optimized.wat index dac122fa2d..4a8e784af0 100644 --- a/tests/compiler/function-call.optimized.wat +++ b/tests/compiler/function-call.optimized.wat @@ -158,7 +158,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -166,10 +165,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18220 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -183,7 +182,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -208,9 +207,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -218,11 +216,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1760 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -231,7 +228,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1764 @@ -246,16 +243,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -263,11 +260,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1537,8 +1534,8 @@ i32.load offset=8 local.set $4 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/function-expression.optimized.wat b/tests/compiler/function-expression.optimized.wat index 1d69aa111f..a26ecf5317 100644 --- a/tests/compiler/function-expression.optimized.wat +++ b/tests/compiler/function-expression.optimized.wat @@ -172,7 +172,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -180,10 +179,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18580 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -197,7 +196,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -222,21 +221,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 2112 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1792 i32.const 1856 @@ -245,7 +242,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 2116 @@ -260,28 +257,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1224,262 +1221,6 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-continue|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-continue|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $0 - local.get $0 - local.get $1 - i32.lt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $0 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1936 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1936 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $1 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $1 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $1 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $1 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $1 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $1 - local.get $1 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 8 - i32.store offset=12 - local.get $0 - i32.const 4 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - i32.store8 - local.get $1 - i32.const 4 - i32.add - local.tee $0 - i32.const 1 - i32.sub - i32.const 0 - i32.store8 - local.get $1 - i32.const 0 - i32.store8 offset=1 - local.get $1 - i32.const 0 - i32.store8 offset=2 - local.get $0 - i32.const 2 - i32.sub - i32.const 0 - i32.store8 - local.get $0 - i32.const 3 - i32.sub - i32.const 0 - i32.store8 - local.get $1 - ) (func $function-expression/semanticallyAnonymous~fnDecl|0 (param $0 i64) (result i64) local.get $0 ) @@ -1544,13 +1285,395 @@ end ) (func $~start + call $start:function-expression + ) + (func $function-expression/testField (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 2032 + i32.store + local.get $5 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2196 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-continue|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-continue|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $2 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $2 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $0 + local.get $0 + local.get $2 + i32.lt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $0 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $3 + local.get $2 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1936 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1936 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $3 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $2 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $2 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $3 + local.get $2 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $2 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 8 + i32.store offset=12 + local.get $0 + i32.const 4 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $2 + i32.load offset=8 + local.set $4 + local.get $0 + global.get $~lib/rt/itcms/white + local.get $2 + i32.or + i32.store offset=4 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $4 + local.get $4 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.store8 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 0 + i32.store8 offset=1 + local.get $0 + i32.const 0 + i32.store8 offset=2 + local.get $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + local.get $0 + i32.store + local.get $0 + i32.const 2032 + i32.store + local.get $0 + local.tee $1 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + i32.const 2016 + i32.load + i32.const 3 + i32.and + i32.eq + if + local.get $1 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + i32.const 0 + local.get $0 + i32.const 3 + i32.eq + select + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + i32.load + call_indirect $0 (type $none_=>_i32) + local.tee $1 + i32.store offset=8 + i32.const 1 + local.get $1 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 25 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 18608 + i32.const 18656 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $start:function-expression + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2196 i32.lt_s @@ -1717,10 +1840,10 @@ i32.const 1504 i32.load call_indirect $0 (type $none_=>_i32) - local.tee $1 + local.tee $0 i32.store i32.const 1 - local.get $1 + local.get $0 i32.load call_indirect $0 (type $i32_=>_i32) i32.const 25 @@ -1756,10 +1879,10 @@ i32.const 1568 i32.load call_indirect $0 (type $none_=>_i32) - local.tee $1 + local.tee $0 i32.store offset=4 i32.const 1 - local.get $1 + local.get $0 i32.load call_indirect $0 (type $i32_=>_i32) i32.const 25 @@ -1808,122 +1931,7 @@ i32.store i32.const 1888 global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2196 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 2032 - i32.store - local.get $0 - local.get $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2196 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 2032 - i32.store - local.get $0 - local.set $1 - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1664 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - i32.const 2016 - i32.load - i32.const 3 - i32.and - i32.eq - if - local.get $1 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $1 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 - local.get $1 - i32.const 3 - i32.eq - select - if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - i32.load - call_indirect $0 (type $none_=>_i32) - local.tee $0 - i32.store offset=8 - i32.const 1 - local.get $0 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 25 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $function-expression/testField call $function-expression/semanticallyAnonymous global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/function-types.optimized.wat b/tests/compiler/function-types.optimized.wat index ea2e0791c3..691bd94c4a 100644 --- a/tests/compiler/function-types.optimized.wat +++ b/tests/compiler/function-types.optimized.wat @@ -40,11 +40,11 @@ ) (func $~start (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1228 i32.lt_s @@ -188,9 +188,10 @@ end unreachable end + i32.const 1056 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 1056 - local.tee $0 i32.store end i32.const 2 diff --git a/tests/compiler/getter-call.optimized.wat b/tests/compiler/getter-call.optimized.wat index e6e583217c..01065000cb 100644 --- a/tests/compiler/getter-call.optimized.wat +++ b/tests/compiler/getter-call.optimized.wat @@ -123,7 +123,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -131,10 +130,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17900 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -148,7 +147,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -173,9 +172,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -183,11 +181,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1472 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -196,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1476 @@ -211,16 +208,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -228,11 +225,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1228,292 +1225,284 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace ) - (func $getter-call/C#constructor (result i32) + (func $getter-call/test (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1516 - i32.lt_s - if - i32.const 17920 - i32.const 17968 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 0 - i32.store - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-continue|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1516 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i32.const 0 + i32.store + local.get $5 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1516 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $2 + i32.const 0 + i32.store + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt + loop $do-continue|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-continue|0 end + global.get $~lib/rt/itcms/total + local.tee $0 local.get $0 - i32.const 0 - i32.gt_s - br_if $do-continue|0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 + call $~lib/rt/tlsf/searchBlock local.tee $0 - local.get $0 - local.get $1 - i32.lt_s - select - memory.grow - i32.const 0 - i32.lt_s + i32.eqz if + memory.size + local.tee $1 + i32.const 4 + local.get $3 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $0 local.get $0 + local.get $1 + i32.lt_s + select memory.grow i32.const 0 i32.lt_s if + local.get $0 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $3 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $3 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort unreachable end end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u if i32.const 0 i32.const 1392 - i32.const 496 - i32.const 16 + i32.const 498 + i32.const 14 call $~lib/builtins/abort unreachable end - end - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $1 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if + local.get $3 local.get $0 - local.get $1 - i32.const 2 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $1 + i32.const -4 i32.and i32.const 28 - i32.or - i32.store + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $1 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $3 + local.get $1 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $1 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load + i32.const -3 + i32.and + i32.store + end local.get $0 - i32.const 32 - i32.add + i32.const 3 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace local.tee $1 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $1 - call $~lib/rt/tlsf/insertBlock - else + i32.load offset=8 + local.set $4 local.get $0 + global.get $~lib/rt/itcms/white local.get $1 - i32.const -2 + i32.or + i32.store offset=4 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $4 + local.get $4 + i32.load offset=4 + i32.const 3 i32.and - i32.store local.get $0 - i32.const 4 - i32.add + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total local.get $0 i32.load i32.const -4 i32.and + i32.const 4 i32.add - local.tee $1 - local.get $1 - i32.load - i32.const -3 - i32.and + i32.add + global.set $~lib/rt/itcms/total + local.get $2 + local.get $0 + i32.const 20 + i32.add + local.tee $2 i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + local.get $2 + i32.store + i32.const 1456 + i32.load + call_indirect $0 (type $none_=>_i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.const 3 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $4 - local.get $0 - i32.const 20 - i32.add - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $getter-call/test (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1516 - i32.lt_s - if - i32.const 17920 - i32.const 17968 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - call $getter-call/C#constructor - i32.store - i32.const 1456 - i32.load - call_indirect $0 (type $none_=>_i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 17920 + i32.const 17968 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) ) diff --git a/tests/compiler/heap.optimized.wat b/tests/compiler/heap.optimized.wat index 8219627087..a7058bf423 100644 --- a/tests/compiler/heap.optimized.wat +++ b/tests/compiler/heap.optimized.wat @@ -1718,17 +1718,17 @@ local.get $0 local.get $2 call $~lib/rt/tlsf/allocateBlock - local.set $6 + local.tee $6 + i32.const 4 + i32.add + local.set $2 local.get $1 i32.load i32.const -4 i32.and local.set $7 block $~lib/util/memory/memmove|inlined.0 - local.get $6 - i32.const 4 - i32.add - local.tee $2 + local.get $2 local.get $1 i32.const 4 i32.add @@ -1862,11 +1862,11 @@ local.get $7 i32.eqz br_if $~lib/util/memory/memmove|inlined.0 + local.get $2 local.get $7 i32.const 1 i32.sub local.tee $7 - local.get $2 i32.add local.get $5 local.get $7 @@ -1881,11 +1881,11 @@ i32.const 8 i32.ge_u if + local.get $2 local.get $7 i32.const 8 i32.sub local.tee $7 - local.get $2 i32.add local.get $5 local.get $7 @@ -1899,11 +1899,11 @@ loop $while-continue|5 local.get $7 if + local.get $2 local.get $7 i32.const 1 i32.sub local.tee $7 - local.get $2 i32.add local.get $5 local.get $7 diff --git a/tests/compiler/implicit-getter-setter.optimized.wat b/tests/compiler/implicit-getter-setter.optimized.wat index 8b600046f1..bc89635562 100644 --- a/tests/compiler/implicit-getter-setter.optimized.wat +++ b/tests/compiler/implicit-getter-setter.optimized.wat @@ -114,7 +114,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -122,10 +121,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17868 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -139,7 +138,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -164,21 +163,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -187,7 +184,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -202,28 +199,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1222,17 +1219,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1245,16 +1242,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1262,15 +1259,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1297,12 +1294,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1312,7 +1309,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1321,19 +1318,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1359,26 +1356,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1393,34 +1390,34 @@ local.get $1 i32.const 20 i32.add - local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 + local.tee $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 @@ -1598,11 +1595,11 @@ ) (func $export:implicit-getter-setter/Basic#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s @@ -1717,11 +1714,11 @@ ) (func $export:implicit-getter-setter/Managed#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s diff --git a/tests/compiler/infer-array.optimized.wat b/tests/compiler/infer-array.optimized.wat index 689696feb2..153caa2238 100644 --- a/tests/compiler/infer-array.optimized.wat +++ b/tests/compiler/infer-array.optimized.wat @@ -140,7 +140,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -148,10 +147,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18596 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -165,7 +164,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -190,21 +189,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 2112 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -213,7 +210,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 2116 @@ -228,28 +225,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1538,8 +1535,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2534,90 +2531,89 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2212 - i32.lt_s - if - i32.const 18624 - i32.const 18672 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - memory.size - i32.const 16 - i32.shl - i32.const 18596 - i32.sub + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2212 + i32.lt_s + if + i32.const 18624 + i32.const 18672 i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace - local.get $0 - i32.const 3 - i32.const 2 - i32.const 3 - i32.const 1056 - call $~lib/rt/__newArray - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - i32.const 3 - i32.const 4 - i32.const 1536 - call $~lib/rt/__newArray - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 5 - i32.const 1584 - call $~lib/rt/__newArray - local.tee $0 - i32.store + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + i32.const 18596 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + local.get $0 + i32.const 3 + i32.const 2 + i32.const 3 + i32.const 1056 + call $~lib/rt/__newArray + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 3 + i32.const 4 + i32.const 1536 + call $~lib/rt/__newArray + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 5 + i32.const 1584 + call $~lib/rt/__newArray + local.tee $0 + i32.store + block $folding-inner0 local.get $0 - local.tee $1 i32.load offset=12 i32.const 1 i32.le_u br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.load offset=4 i32.const -1 @@ -2646,12 +2642,11 @@ local.tee $0 i32.store local.get $0 - local.tee $1 i32.load offset=12 i32.const 1 i32.le_u br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 f32.load offset=4 drop diff --git a/tests/compiler/infer-generic.optimized.wat b/tests/compiler/infer-generic.optimized.wat index 0282929a49..a59c5eb68b 100644 --- a/tests/compiler/infer-generic.optimized.wat +++ b/tests/compiler/infer-generic.optimized.wat @@ -3,10 +3,10 @@ (type $i32_f32_i32_i32_=>_i32 (func (param i32 f32 i32 i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $f32_=>_f32 (func (param f32) (result f32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -145,7 +145,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -153,10 +152,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18068 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -170,7 +169,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -195,9 +194,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -205,11 +203,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1616 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1424 i32.const 1488 @@ -218,7 +215,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1620 @@ -233,16 +230,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -250,11 +247,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1178,262 +1175,6 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-continue|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-continue|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $0 - local.get $0 - local.get $1 - i32.lt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $0 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1568 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $1 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $1 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $1 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $1 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $1 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $1 - local.get $1 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 5 - i32.store offset=12 - local.get $0 - i32.const 4 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - i32.store8 - local.get $1 - i32.const 4 - i32.add - local.tee $0 - i32.const 1 - i32.sub - i32.const 0 - i32.store8 - local.get $1 - i32.const 0 - i32.store8 offset=1 - local.get $1 - i32.const 0 - i32.store8 offset=2 - local.get $0 - i32.const 2 - i32.sub - i32.const 0 - i32.store8 - local.get $0 - i32.const 3 - i32.sub - i32.const 0 - i32.store8 - local.get $1 - ) (func $infer-generic/test1 (param $0 f32) (result f32) local.get $0 ) @@ -1482,11 +1223,13 @@ (local $1 i32) (local $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1684 i32.lt_s @@ -1504,8 +1247,6 @@ local.get $0 i32.const 1200 i32.store offset=4 - i32.const 0 - local.set $0 i32.const 1164 i32.load local.set $1 @@ -1513,32 +1254,32 @@ local.get $1 i32.const 1164 i32.load - local.tee $3 + local.tee $0 + local.get $0 local.get $1 - local.get $3 - i32.lt_s + i32.gt_s select - local.get $0 + local.get $2 i32.gt_s if - local.get $2 + local.get $3 i32.const 1156 i32.load - local.get $0 + local.get $2 i32.const 2 i32.shl i32.add f32.load - local.get $0 + local.get $2 i32.const 1152 i32.const 1200 i32.load call_indirect $0 (type $i32_f32_i32_i32_=>_i32) - local.set $2 - local.get $0 + local.set $3 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end @@ -1575,8 +1316,8 @@ i32.const 1520 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1585,30 +1326,278 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 0 i32.store + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $2 + loop $do-continue|0 + local.get $2 + call $~lib/rt/itcms/step + i32.sub + local.set $2 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $2 + i32.const 0 + i32.gt_s + br_if $do-continue|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $4 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + memory.size + local.tee $1 + i32.const 4 + local.get $4 + i32.load offset=1568 + local.get $1 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $0 + local.get $0 + local.get $1 + i32.lt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $0 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $4 + local.get $1 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $4 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end local.get $0 - call $~lib/rt/itcms/__new + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1568 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $4 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $1 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $2 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $1 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $1 + local.get $2 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $4 + local.get $1 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $1 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $1 + local.get $1 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 5 + i32.store offset=12 + local.get $0 + i32.const 4 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $1 + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + local.get $1 + i32.or + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $1 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $1 + i32.const 0 + i32.store8 + local.get $1 + i32.const 4 + i32.add local.tee $0 - i32.store + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $1 + i32.const 0 + i32.store8 offset=1 + local.get $1 + i32.const 0 + i32.store8 offset=2 local.get $0 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $3 + local.get $1 + i32.store + local.get $1 i32.const 0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 2 i32.store global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $3 local.get $1 + i32.store + local.get $3 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining.optimized.wat b/tests/compiler/inlining.optimized.wat index 34fc3332c1..50cca54290 100644 --- a/tests/compiler/inlining.optimized.wat +++ b/tests/compiler/inlining.optimized.wat @@ -132,7 +132,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -140,10 +139,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17964 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -157,7 +156,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -182,9 +181,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -192,11 +190,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1520 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1328 i32.const 1392 @@ -205,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1524 @@ -220,16 +217,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -237,11 +234,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1511,8 +1508,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1763,187 +1760,188 @@ (local $0 i32) (local $1 i32) (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1580 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 2 - i32.const 1104 - i32.load - call_indirect $0 (type $i32_=>_i32) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + block $__inlined_func$start:inlining global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 123 - i32.store - local.get $0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 17964 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/pinSpace - i32.const 1284 - i32.const 1280 - i32.store - i32.const 1288 - i32.const 1280 - i32.store - i32.const 1280 - global.set $~lib/rt/itcms/toSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1580 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - local.tee $1 - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 3 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.eqz - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1580 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - end - local.get $0 - i32.const 1 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.store offset=4 - local.get $0 - i32.store - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $1 - local.get $0 - i32.store offset=8 - local.get $0 - i32.load - i32.const 1 - i32.ne - if i32.const 0 - i32.const 1056 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - i32.const 2 - i32.ne - if + i32.store + i32.const 2 + i32.const 1104 + i32.load + call_indirect $0 (type $i32_=>_i32) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 123 + i32.store + local.get $0 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 17964 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/pinSpace + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/toSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1580 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 i32.const 0 - i32.const 1056 - i32.const 96 + i32.store offset=8 + local.get $1 + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 3 - i32.ne - if + i32.store offset=8 + local.get $0 i32.const 0 - i32.const 1056 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=12 - i32.const 4 - i32.ne - if + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + end + local.get $0 + i32.const 1 + i32.store + local.get $0 i32.const 0 - i32.const 1056 - i32.const 98 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.store offset=4 + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + local.get $1 + local.get $0 + i32.store offset=8 + local.get $0 + i32.load + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=12 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$start:inlining end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 17984 + i32.const 18032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 17984 - i32.const 18032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) ) diff --git a/tests/compiler/instanceof-class.optimized.wat b/tests/compiler/instanceof-class.optimized.wat index 18d97ef9c6..ef47c477d7 100644 --- a/tests/compiler/instanceof-class.optimized.wat +++ b/tests/compiler/instanceof-class.optimized.wat @@ -134,7 +134,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -142,10 +141,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17948 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -159,7 +158,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -184,9 +183,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -194,11 +192,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1504 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -207,7 +204,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -222,16 +219,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -239,11 +236,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1223,17 +1220,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1246,16 +1243,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1263,15 +1260,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1298,12 +1295,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1313,7 +1310,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1322,19 +1319,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1360,26 +1357,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1398,43 +1395,43 @@ (func $start:instanceof-class (local $0 i32) (local $1 i32) + memory.size + i32.const 16 + i32.shl + i32.const 17948 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1172 + i32.const 1168 + i32.store + i32.const 1176 + i32.const 1168 + i32.store + i32.const 1168 + global.set $~lib/rt/itcms/pinSpace + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/toSpace + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - memory.size - i32.const 16 - i32.shl - i32.const 17948 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1172 - i32.const 1168 - i32.store - i32.const 1176 - i32.const 1168 - i32.store - i32.const 1168 - global.set $~lib/rt/itcms/pinSpace - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/toSpace - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1564 i32.lt_s @@ -1534,35 +1531,35 @@ block $__inlined_func$instanceof-class/Child~instanceof (result i32) i32.const 0 global.get $instanceof-class/b - local.tee $0 + local.tee $1 i32.eqz br_if $__inlined_func$instanceof-class/Child~instanceof drop i32.const 1 block $__inlined_func$~lib/rt/__instanceof (result i32) - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=12 - local.tee $1 + local.tee $0 i32.const 1504 i32.load i32.le_u if loop $do-continue|0 i32.const 1 - local.get $1 + local.get $0 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof drop - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 1508 i32.add i32.load offset=4 - local.tee $1 + local.tee $0 br_if $do-continue|0 end end @@ -1571,8 +1568,8 @@ br_if $__inlined_func$instanceof-class/Child~instanceof drop i32.const 1 - block $__inlined_func$~lib/rt/__instanceof9 (result i32) - local.get $0 + block $__inlined_func$~lib/rt/__instanceof6 (result i32) + local.get $1 i32.const 20 i32.sub i32.load offset=12 @@ -1581,12 +1578,12 @@ i32.load i32.le_u if - loop $do-continue|010 + loop $do-continue|07 i32.const 1 local.get $0 i32.const 6 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof9 + br_if $__inlined_func$~lib/rt/__instanceof6 drop local.get $0 i32.const 3 @@ -1595,7 +1592,7 @@ i32.add i32.load offset=4 local.tee $0 - br_if $do-continue|010 + br_if $do-continue|07 end end i32.const 0 diff --git a/tests/compiler/issues/1095.optimized.wat b/tests/compiler/issues/1095.optimized.wat index d11b8aee86..3463ebbed7 100644 --- a/tests/compiler/issues/1095.optimized.wat +++ b/tests/compiler/issues/1095.optimized.wat @@ -2,9 +2,9 @@ (type $none_=>_none (func)) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) @@ -108,7 +108,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -116,10 +115,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18004 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -133,7 +132,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -158,21 +157,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1584 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -181,7 +178,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1588 @@ -196,28 +193,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1160,262 +1157,6 @@ end end ) - (func $~lib/rt/itcms/__new (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $0 - loop $do-continue|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-continue|0 - end - global.get $~lib/rt/itcms/total - local.tee $0 - local.get $0 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.tee $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $2 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - i32.const 65563 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $0 - local.get $0 - local.get $1 - i32.lt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $0 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $2 - local.get $1 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.tee $0 - i32.eqz - if - i32.const 0 - i32.const 1392 - i32.const 496 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - end - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 28 - i32.lt_u - if - i32.const 0 - i32.const 1392 - i32.const 498 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $0 - call $~lib/rt/tlsf/removeBlock - local.get $0 - i32.load - local.tee $1 - i32.const -4 - i32.and - i32.const 28 - i32.sub - local.tee $3 - i32.const 16 - i32.ge_u - if - local.get $0 - local.get $1 - i32.const 2 - i32.and - i32.const 28 - i32.or - i32.store - local.get $0 - i32.const 32 - i32.add - local.tee $1 - local.get $3 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $1 - call $~lib/rt/tlsf/insertBlock - else - local.get $0 - local.get $1 - i32.const -2 - i32.and - i32.store - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $1 - local.get $1 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $0 - i32.const 3 - i32.store offset=12 - local.get $0 - i32.const 4 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - local.get $0 - i32.or - i32.store offset=4 - local.get $1 - local.get $0 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - i32.store8 - local.get $1 - i32.const 4 - i32.add - local.tee $0 - i32.const 1 - i32.sub - i32.const 0 - i32.store8 - local.get $1 - i32.const 0 - i32.store8 offset=1 - local.get $1 - i32.const 0 - i32.store8 offset=2 - local.get $0 - i32.const 2 - i32.sub - i32.const 0 - i32.store8 - local.get $0 - i32.const 3 - i32.sub - i32.const 0 - i32.store8 - local.get $1 - ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) local.get $1 i32.eqz @@ -1499,11 +1240,14 @@ (func $~start (local $0 i32) (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1620 i32.lt_s @@ -1557,8 +1301,256 @@ i32.const 0 i32.store local.get $0 - call $~lib/rt/itcms/__new + global.get $~lib/rt/itcms/total + global.get $~lib/rt/itcms/threshold + i32.ge_u + if + block $__inlined_func$~lib/rt/itcms/interrupt + i32.const 2048 + local.set $0 + loop $do-continue|0 + local.get $0 + call $~lib/rt/itcms/step + i32.sub + local.set $0 + global.get $~lib/rt/itcms/state + i32.eqz + if + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + br $__inlined_func$~lib/rt/itcms/interrupt + end + local.get $0 + i32.const 0 + i32.gt_s + br_if $do-continue|0 + end + global.get $~lib/rt/itcms/total + local.tee $0 + local.get $0 + global.get $~lib/rt/itcms/threshold + i32.sub + i32.const 1024 + i32.lt_u + i32.const 10 + i32.shl + i32.add + global.set $~lib/rt/itcms/threshold + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $2 + call $~lib/rt/tlsf/searchBlock local.tee $0 + i32.eqz + if + memory.size + local.tee $0 + i32.const 4 + local.get $2 + i32.load offset=1568 + local.get $0 + i32.const 16 + i32.shl + i32.const 4 + i32.sub + i32.ne + i32.shl + i32.const 65563 + i32.add + i32.const -65536 + i32.and + i32.const 16 + i32.shr_u + local.tee $3 + local.get $0 + local.get $3 + i32.gt_s + select + memory.grow + i32.const 0 + i32.lt_s + if + local.get $3 + memory.grow + i32.const 0 + i32.lt_s + if + unreachable + end + end + local.get $2 + local.get $0 + i32.const 16 + i32.shl + memory.size + i32.const 16 + i32.shl + call $~lib/rt/tlsf/addMemory + local.get $2 + call $~lib/rt/tlsf/searchBlock + local.tee $0 + i32.eqz + if + i32.const 0 + i32.const 1392 + i32.const 496 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + end + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 28 + i32.lt_u + if + i32.const 0 + i32.const 1392 + i32.const 498 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.get $0 + call $~lib/rt/tlsf/removeBlock + local.get $0 + i32.load + local.tee $3 + i32.const -4 + i32.and + i32.const 28 + i32.sub + local.tee $4 + i32.const 16 + i32.ge_u + if + local.get $0 + local.get $3 + i32.const 2 + i32.and + i32.const 28 + i32.or + i32.store + local.get $0 + i32.const 32 + i32.add + local.tee $3 + local.get $4 + i32.const 4 + i32.sub + i32.const 1 + i32.or + i32.store + local.get $2 + local.get $3 + call $~lib/rt/tlsf/insertBlock + else + local.get $0 + local.get $3 + i32.const -2 + i32.and + i32.store + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.load + i32.const -4 + i32.and + i32.add + local.tee $2 + local.get $2 + i32.load + i32.const -3 + i32.and + i32.store + end + local.get $0 + i32.const 3 + i32.store offset=12 + local.get $0 + i32.const 4 + i32.store offset=16 + global.get $~lib/rt/itcms/fromSpace + local.tee $3 + i32.load offset=8 + local.set $2 + local.get $0 + global.get $~lib/rt/itcms/white + local.get $3 + i32.or + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=8 + local.get $2 + local.get $2 + i32.load offset=4 + i32.const 3 + i32.and + local.get $0 + i32.or + i32.store offset=4 + local.get $3 + local.get $0 + i32.store offset=8 + global.get $~lib/rt/itcms/total + local.get $0 + i32.load + i32.const -4 + i32.and + i32.const 4 + i32.add + i32.add + global.set $~lib/rt/itcms/total + local.get $0 + i32.const 20 + i32.add + local.tee $0 + i32.const 0 + i32.store8 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + i32.const 1 + i32.sub + i32.const 0 + i32.store8 + local.get $0 + i32.const 0 + i32.store8 offset=1 + local.get $0 + i32.const 0 + i32.store8 offset=2 + local.get $2 + i32.const 2 + i32.sub + i32.const 0 + i32.store8 + local.get $2 + i32.const 3 + i32.sub + i32.const 0 + i32.store8 + local.get $0 i32.store local.get $0 i32.const 1456 @@ -1588,11 +1580,10 @@ i32.store local.get $1 local.get $0 - local.tee $1 i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.eqz if i32.const 1488 @@ -1602,11 +1593,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 - i32.store local.get $1 + i32.store local.get $0 + local.get $1 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/issues/1225.optimized.wat b/tests/compiler/issues/1225.optimized.wat index c8f4b01e23..eb12e5c29e 100644 --- a/tests/compiler/issues/1225.optimized.wat +++ b/tests/compiler/issues/1225.optimized.wat @@ -129,7 +129,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -137,10 +136,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17908 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -154,7 +153,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -179,9 +178,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -189,11 +187,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -202,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -217,16 +214,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -234,11 +231,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1173,12 +1170,12 @@ if block $__inlined_func$~lib/rt/itcms/interrupt i32.const 2048 - local.set $0 + local.set $1 loop $do-continue|0 - local.get $0 + local.get $1 call $~lib/rt/itcms/step i32.sub - local.set $0 + local.set $1 global.get $~lib/rt/itcms/state i32.eqz if @@ -1194,7 +1191,7 @@ global.set $~lib/rt/itcms/threshold br $__inlined_func$~lib/rt/itcms/interrupt end - local.get $0 + local.get $1 i32.const 0 i32.gt_s br_if $do-continue|0 @@ -1359,8 +1356,8 @@ i32.load offset=8 local.set $2 local.get $0 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $0 @@ -1436,13 +1433,13 @@ local.tee $1 i32.const 0 i32.store - local.get $1 i32.const 12 local.get $0 i32.sub i32.const -4 i32.and local.tee $2 + local.get $1 i32.add local.tee $0 i32.const 4 diff --git a/tests/compiler/issues/1699.optimized.wat b/tests/compiler/issues/1699.optimized.wat index 7e65c4be95..bd83374505 100644 --- a/tests/compiler/issues/1699.optimized.wat +++ b/tests/compiler/issues/1699.optimized.wat @@ -1,9 +1,9 @@ (module (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -115,7 +115,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -123,10 +122,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18140 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -140,7 +139,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -165,21 +164,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1712 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1344 i32.const 1408 @@ -188,7 +185,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1716 @@ -203,28 +200,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1487,7 +1484,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1515,11 +1512,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1538,9 +1535,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1556,7 +1553,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1571,18 +1568,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1593,7 +1590,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1607,16 +1604,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1629,89 +1623,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1719,7 +1713,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2497,237 +2491,17 @@ i32.store8 end ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 20 - i32.sub - local.tee $2 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u - if - local.get $2 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $4 - local.get $1 - local.get $2 - i32.load offset=16 - local.tee $2 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $5 - block $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.tee $1 - local.get $0 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $1 - i32.sub - local.get $5 - i32.sub - i32.const 0 - local.get $5 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $1 - local.get $0 - local.get $5 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - local.get $1 - i32.gt_u - if - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $1 - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $1 - local.get $0 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 8 - i32.add - local.set $0 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $5 - if - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $1 - local.get $5 - i32.add - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - local.get $4 - ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) local.get $0 i32.load offset=12 local.get $1 @@ -2747,16 +2521,16 @@ local.get $1 i32.const 1 i32.add - local.tee $6 - local.tee $3 + local.tee $9 + local.tee $7 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $11 i32.const 2 i32.shr_u i32.gt_u if - local.get $3 + local.get $7 i32.const 268435455 i32.gt_u if @@ -2767,62 +2541,282 @@ call $~lib/builtins/abort unreachable end - local.get $0 - i32.load - local.tee $7 - local.get $5 - i32.const 1 - i32.shl - local.tee $4 - i32.const 1073741820 - local.get $4 - i32.const 1073741820 - i32.lt_u - select - local.tee $4 - local.get $3 - i32.const 8 - local.get $3 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $3 + block $__inlined_func$~lib/rt/itcms/__renew + local.get $11 + i32.const 1 + i32.shl + local.tee $6 + i32.const 1073741820 + local.get $6 + i32.const 1073741820 + i32.lt_u + select + local.tee $4 + local.get $7 + i32.const 8 + local.get $7 + i32.const 8 + i32.gt_u + select + i32.const 2 + i32.shl + local.tee $6 + local.get $4 + local.get $6 + i32.gt_u + select + local.tee $10 + local.tee $12 + local.get $0 + i32.load + local.tee $8 + local.tee $3 + i32.const 20 + i32.sub + local.tee $5 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $5 + local.get $12 + i32.store offset=16 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $12 + local.get $5 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $7 + local.set $6 + local.get $12 + local.get $5 + i32.load offset=16 + local.tee $4 + local.get $4 + local.get $12 + i32.gt_u + select + local.set $12 + block $~lib/util/memory/memmove|inlined.0 + local.get $3 + local.get $6 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $3 + local.get $6 + i32.sub + local.get $12 + i32.sub + i32.const 0 + local.get $12 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $6 + local.get $3 + local.get $12 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $3 + local.get $6 + i32.gt_u + if + local.get $3 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $6 + i32.const 7 + i32.and + if + local.get $12 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + local.get $6 + local.tee $5 + i32.const 1 + i32.add + local.set $6 + local.get $3 + local.tee $4 + i32.const 1 + i32.add + local.set $3 + local.get $5 + local.get $4 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $12 + i32.const 8 + i32.ge_u + if + local.get $6 + local.get $3 + i64.load + i64.store + local.get $12 + i32.const 8 + i32.sub + local.set $12 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $3 + i32.const 8 + i32.add + local.set $3 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $12 + if + local.get $6 + local.tee $5 + i32.const 1 + i32.add + local.set $6 + local.get $3 + local.tee $4 + i32.const 1 + i32.add + local.set $3 + local.get $5 + local.get $4 + i32.load8_u + i32.store8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + br $while-continue|2 + end + end + else + local.get $3 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $6 + local.get $12 + i32.add + i32.const 7 + i32.and + if + local.get $12 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $6 + local.get $12 + i32.const 1 + i32.sub + local.tee $12 + i32.add + local.get $3 + local.get $12 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $12 + i32.const 8 + i32.ge_u + if + local.get $6 + local.get $12 + i32.const 8 + i32.sub + local.tee $12 + i32.add + local.get $3 + local.get $12 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $12 + if + local.get $6 + local.get $12 + i32.const 1 + i32.sub + local.tee $12 + i32.add + local.get $3 + local.get $12 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + local.get $7 + local.set $3 + end local.get $3 - local.get $4 - i32.lt_u - select - local.tee $3 - call $~lib/rt/itcms/__renew - local.tee $4 - local.get $5 + local.get $11 i32.add - local.get $3 - local.get $5 + local.get $10 + local.get $11 i32.sub call $~lib/memory/memory.fill - local.get $4 - local.get $7 + local.get $3 + local.get $8 i32.ne if local.get $0 - local.get $4 + local.get $3 i32.store local.get $0 - local.get $4 + local.get $3 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link end local.get $0 - local.get $3 + local.get $10 i32.store offset=8 end local.get $0 - local.get $6 + local.get $9 i32.store offset=12 end local.get $0 @@ -2842,56 +2836,55 @@ (local $0 i32) (local $1 i32) (local $2 i32) + memory.size + i32.const 16 + i32.shl + i32.const 18140 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - memory.size - i32.const 16 - i32.shl - i32.const 18140 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1756 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 - local.get $0 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -2954,6 +2947,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 i32.store call $issues/1699/MultiAssignmentTest#constructor diff --git a/tests/compiler/logical.optimized.wat b/tests/compiler/logical.optimized.wat index 6ae2768188..fa16156fa7 100644 --- a/tests/compiler/logical.optimized.wat +++ b/tests/compiler/logical.optimized.wat @@ -120,7 +120,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -128,10 +127,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17908 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -145,7 +144,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -170,9 +169,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -180,11 +178,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -193,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -208,16 +205,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -225,11 +222,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1521,8 +1518,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/loop-flow.optimized.wat b/tests/compiler/loop-flow.optimized.wat index 9a25b49c83..9812a7bc0e 100644 --- a/tests/compiler/loop-flow.optimized.wat +++ b/tests/compiler/loop-flow.optimized.wat @@ -35,17 +35,13 @@ else local.get $0 i32.const 2 - i32.eq - if - i32.const 1104 - i32.const 1056 - i32.const 24 - i32.const 22 - call $~lib/builtins/abort - unreachable - else - br $while-continue|0 - end + i32.ne + br_if $while-continue|0 + i32.const 1104 + i32.const 1056 + i32.const 24 + i32.const 22 + call $~lib/builtins/abort unreachable end end @@ -81,17 +77,13 @@ if local.get $0 i32.const 2 - i32.eq - if - i32.const 1104 - i32.const 1056 - i32.const 78 - i32.const 22 - call $~lib/builtins/abort - unreachable - else - br $do-continue|0 - end + i32.ne + br_if $do-continue|0 + i32.const 1104 + i32.const 1056 + i32.const 78 + i32.const 22 + call $~lib/builtins/abort unreachable end end diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index d28d8339dd..83fc6606a2 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -124,7 +124,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -132,10 +131,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18060 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -149,7 +148,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -174,9 +173,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -184,11 +182,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1632 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -197,7 +194,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1636 @@ -212,16 +209,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -229,11 +226,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1213,17 +1210,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1236,16 +1233,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1253,15 +1250,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1288,12 +1285,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1303,7 +1300,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1312,19 +1309,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1350,26 +1347,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1421,11 +1418,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1676 i32.lt_s @@ -1535,25 +1532,25 @@ i32.const 20 i32.sub i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1632 i32.load i32.le_u if loop $do-continue|0 i32.const 1 - local.get $1 + local.get $2 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof drop - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $1 + local.tee $2 br_if $do-continue|0 end end @@ -1607,7 +1604,7 @@ local.get $1 local.get $0 i32.store offset=4 - block $__inlined_func$~lib/rt/__instanceof14 (result i32) + block $__inlined_func$~lib/rt/__instanceof11 (result i32) local.get $0 i32.const 20 i32.sub @@ -1617,12 +1614,12 @@ i32.load i32.le_u if - loop $do-continue|015 + loop $do-continue|012 i32.const 1 local.get $1 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof14 + br_if $__inlined_func$~lib/rt/__instanceof11 drop local.get $1 i32.const 3 @@ -1631,7 +1628,7 @@ i32.add i32.load offset=4 local.tee $1 - br_if $do-continue|015 + br_if $do-continue|012 end end i32.const 0 @@ -1668,34 +1665,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - block $__inlined_func$~lib/rt/__instanceof18 (result i32) + block $__inlined_func$~lib/rt/__instanceof14 (result i32) local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1632 i32.load i32.le_u if - loop $do-continue|019 + loop $do-continue|015 i32.const 1 - local.get $1 + local.get $2 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof18 + br_if $__inlined_func$~lib/rt/__instanceof14 drop - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $1 - br_if $do-continue|019 + local.tee $2 + br_if $do-continue|015 end end i32.const 0 @@ -1709,7 +1706,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1731,34 +1728,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - block $__inlined_func$~lib/rt/__instanceof22 (result i32) + block $__inlined_func$~lib/rt/__instanceof17 (result i32) local.get $0 i32.const 20 i32.sub i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1632 i32.load i32.le_u if - loop $do-continue|023 + loop $do-continue|018 i32.const 1 - local.get $1 + local.get $2 i32.const 3 i32.eq - br_if $__inlined_func$~lib/rt/__instanceof22 + br_if $__inlined_func$~lib/rt/__instanceof17 drop - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $1 - br_if $do-continue|023 + local.tee $2 + br_if $do-continue|018 end end i32.const 0 @@ -1772,7 +1769,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1829,11 +1826,12 @@ ) (func $managed-cast/Cat#constructor (result i32) (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1676 i32.lt_s diff --git a/tests/compiler/memmove.optimized.wat b/tests/compiler/memmove.optimized.wat index decfd1403c..21ae653cfb 100644 --- a/tests/compiler/memmove.optimized.wat +++ b/tests/compiler/memmove.optimized.wat @@ -14,41 +14,80 @@ (local $4 i32) (local $5 i32) local.get $0 - local.set $5 - local.get $0 - local.get $1 - i32.eq - if - local.get $5 - return - end - local.get $0 - local.get $1 - i32.lt_u - if - local.get $1 - i32.const 7 - i32.and + block $folding-inner0 local.get $0 - i32.const 7 - i32.and + local.get $1 i32.eq + br_if $folding-inner0 + local.get $0 + local.get $1 + i32.lt_u if - loop $while-continue|0 - local.get $0 - i32.const 7 - i32.and - if - local.get $2 - i32.eqz + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and if - local.get $5 - return + local.get $2 + i32.eqz + br_if $folding-inner0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $4 + i32.load8_u + i32.store8 + br $while-continue|0 end + end + loop $while-continue|1 local.get $2 - i32.const 1 - i32.sub - local.set $2 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $1 + i64.load + i64.store + local.get $2 + i32.const 8 + i32.sub + local.set $2 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $2 + if local.get $0 local.tee $3 i32.const 1 @@ -63,133 +102,85 @@ local.get $4 i32.load8_u i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $2 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $1 - i64.load - i64.store local.get $2 - i32.const 8 + i32.const 1 i32.sub local.set $2 - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - br $while-continue|1 + br $while-continue|2 end end - end - loop $while-continue|2 - local.get $2 + else + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq if - local.get $0 - local.tee $3 - i32.const 1 - i32.add - local.set $0 - local.get $1 - local.tee $4 - i32.const 1 - i32.add - local.set $1 - local.get $3 - local.get $4 - i32.load8_u - i32.store8 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|2 - end - end - else - local.get $1 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $0 - local.get $2 - i32.add - i32.const 7 - i32.and - if - local.get $2 - i32.eqz - if - local.get $5 - return - end + loop $while-continue|3 local.get $0 local.get $2 - i32.const 1 - i32.sub - local.tee $2 i32.add - local.get $1 + i32.const 7 + i32.and + if + local.get $2 + i32.eqz + br_if $folding-inner0 + local.get $0 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.add + local.get $1 + local.get $2 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 local.get $2 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 8 + i32.sub + local.tee $2 + i32.add + local.get $1 + local.get $2 + i32.add + i64.load + i64.store + br $while-continue|4 + end end end - loop $while-continue|4 + loop $while-continue|5 local.get $2 - i32.const 8 - i32.ge_u if local.get $0 local.get $2 - i32.const 8 + i32.const 1 i32.sub local.tee $2 i32.add local.get $1 local.get $2 i32.add - i64.load - i64.store - br $while-continue|4 + i32.load8_u + i32.store8 + br $while-continue|5 end end end - loop $while-continue|5 - local.get $2 - if - local.get $0 - local.get $2 - i32.const 1 - i32.sub - local.tee $2 - i32.add - local.get $1 - local.get $2 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end end - local.get $5 ) (func $~start i32.const 8 diff --git a/tests/compiler/new.optimized.wat b/tests/compiler/new.optimized.wat index de7d7ac5f9..45d4e832e8 100644 --- a/tests/compiler/new.optimized.wat +++ b/tests/compiler/new.optimized.wat @@ -160,7 +160,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -168,10 +167,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17884 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -185,7 +184,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -210,9 +209,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -220,11 +218,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -233,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -248,16 +245,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -265,11 +262,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1249,17 +1246,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1272,16 +1269,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1289,15 +1286,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1324,12 +1321,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1339,7 +1336,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1348,19 +1345,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1386,26 +1383,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/number.optimized.wat b/tests/compiler/number.optimized.wat index 72fc6b5f35..fb560d0a27 100644 --- a/tests/compiler/number.optimized.wat +++ b/tests/compiler/number.optimized.wat @@ -167,7 +167,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -175,10 +174,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 21068 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -192,7 +191,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -217,9 +216,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -227,11 +225,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 4656 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -240,7 +237,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 4660 @@ -255,16 +252,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -272,11 +269,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1322,8 +1319,8 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1337,7 +1334,7 @@ local.get $0 i32.const 16 i32.add - local.set $1 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -1345,7 +1342,7 @@ end global.get $~lib/rt/tlsf/ROOT local.tee $5 - local.get $1 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1356,13 +1353,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1370,29 +1367,29 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz if memory.size local.tee $4 - local.get $1 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $2 i32.add else - local.get $1 + local.get $2 end i32.const 4 local.get $5 @@ -1437,7 +1434,7 @@ i32.shl call $~lib/rt/tlsf/addMemory local.get $5 - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz @@ -1454,7 +1451,7 @@ i32.load i32.const -4 i32.and - local.get $1 + local.get $2 i32.lt_u if i32.const 0 @@ -1470,7 +1467,7 @@ local.get $3 i32.load local.set $4 - local.get $1 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1486,9 +1483,9 @@ local.get $4 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1496,23 +1493,23 @@ local.get $4 i32.const 2 i32.and - local.get $1 + local.get $2 i32.or i32.store - local.get $1 + local.get $2 local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $5 - local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $3 @@ -1528,8 +1525,8 @@ i32.const -4 i32.and i32.add - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and @@ -1542,26 +1539,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $1 local.get $3 - local.get $1 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $3 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and local.get $3 i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1577,18 +1574,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1597,18 +1594,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1617,10 +1614,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1629,38 +1626,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 - i32.add local.tee $2 + i32.add + local.tee $1 i32.const 0 i32.store - local.get $2 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $1 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1673,20 +1670,20 @@ i32.sub i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 0 i32.store offset=20 - local.get $2 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1709,16 +1706,16 @@ i32.sub i32.const 0 i32.store - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 i32.add local.tee $0 i32.add - local.set $2 - local.get $1 + local.set $1 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1727,26 +1724,26 @@ i32.const 32 i32.ge_u if - local.get $2 + local.get $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i64.const 0 i64.store offset=16 - local.get $2 + local.get $1 i64.const 0 i64.store offset=24 local.get $0 i32.const 32 i32.sub local.set $0 - local.get $2 + local.get $1 i32.const 32 i32.add - local.set $2 + local.set $1 br $while-continue|0 end end @@ -1861,25 +1858,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/util/number/itoa32 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4684 - i32.lt_s - if - i32.const 21088 - i32.const 21136 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4684 + i32.lt_s + if + i32.const 21088 + i32.const 21136 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32 local.get $0 i32.eqz if @@ -1888,6 +1885,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 + local.set $0 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -1898,70 +1896,70 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $1 select + local.tee $2 local.tee $0 - local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.get $2 + local.get $1 i32.add local.tee $3 i32.const 1 i32.shl call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 local.get $0 + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -1969,8 +1967,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2122,7 +2120,8 @@ i64.shr_u i32.wrap_i64 local.tee $2 - local.tee $5 + local.set $5 + local.get $2 i32.const 100000 i32.lt_u if (result i32) @@ -2339,17 +2338,17 @@ local.get $10 i64.extend_i32_s i64.shl - local.set $6 + local.set $1 local.get $4 i32.const 1 i32.shl i32.const 3454 i32.add - local.tee $2 + local.tee $8 i32.load16_u local.set $5 loop $while-continue|3 - local.get $6 + local.get $1 local.get $3 local.get $0 i64.sub @@ -2365,13 +2364,13 @@ local.get $0 i64.sub local.get $0 - local.get $6 + local.get $1 i64.add - local.tee $1 + local.tee $6 local.get $9 i64.sub i64.gt_u - local.get $1 + local.get $6 local.get $9 i64.lt_u select @@ -2384,13 +2383,13 @@ i32.sub local.set $5 local.get $0 - local.get $6 + local.get $1 i64.add local.set $0 br $while-continue|3 end end - local.get $2 + local.get $8 local.get $5 i32.store16 local.get $4 @@ -2407,11 +2406,11 @@ local.get $6 i64.const 10 i64.mul - local.tee $1 + local.tee $0 local.get $10 i64.extend_i32_s i64.shr_u - local.tee $0 + local.tee $1 local.get $4 i64.extend_i32_s i64.or @@ -2428,7 +2427,7 @@ i32.shl i32.const 3456 i32.add - local.get $0 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -2441,7 +2440,7 @@ i32.sub local.set $8 local.get $3 - local.get $1 + local.get $0 local.get $12 i64.and local.tee $6 @@ -2464,13 +2463,13 @@ i64.load32_u local.get $9 i64.mul - local.set $6 + local.set $1 local.get $4 i32.const 1 i32.shl i32.const 3454 i32.add - local.tee $2 + local.tee $8 i32.load16_u local.set $5 loop $while-continue|6 @@ -2481,24 +2480,24 @@ i64.le_u i32.const 0 local.get $0 - local.get $6 + local.get $1 i64.lt_u select if (result i32) i32.const 1 - local.get $6 + local.get $1 local.get $0 i64.sub local.get $0 local.get $11 i64.add - local.tee $1 - local.get $6 + local.tee $6 + local.get $1 i64.sub i64.gt_u local.get $1 local.get $6 - i64.lt_u + i64.gt_u select else i32.const 0 @@ -2515,7 +2514,7 @@ br $while-continue|6 end end - local.get $2 + local.get $8 local.get $5 i32.store16 local.get $4 @@ -3425,6 +3424,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 i32.eqz if @@ -3443,18 +3443,18 @@ local.get $0 local.get $1 i32.add - local.tee $4 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $4 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 @@ -3471,61 +3471,61 @@ br $for-loop|0 end end - local.get $4 + local.get $3 i32.const 1 i32.shl i32.const 3456 i32.add i32.const 3145774 i32.store - local.get $4 + local.get $3 i32.const 2 i32.add else - local.get $4 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $4 + local.get $3 i32.const 1 i32.shl i32.const 3456 i32.add - local.tee $4 + local.tee $3 i32.const 2 i32.add - local.get $4 + local.get $3 i32.const 0 local.get $1 i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $3 i32.const 46 i32.store16 local.get $0 i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $4 + local.get $3 i32.sub - local.tee $4 + local.tee $3 i32.const 1 i32.shl i32.const 3456 @@ -3542,7 +3542,7 @@ local.set $1 loop $for-loop|1 local.get $1 - local.get $4 + local.get $3 i32.lt_s if local.get $1 @@ -3560,7 +3560,7 @@ end end local.get $0 - local.get $4 + local.get $3 i32.add else local.get $0 @@ -3570,14 +3570,13 @@ i32.const 3458 i32.const 101 i32.store16 - i32.const 3460 - local.get $4 + local.get $3 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $1 + local.tee $3 if i32.const 0 local.get $0 @@ -3585,53 +3584,56 @@ local.set $0 end local.get $0 - local.get $0 - local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end + local.set $1 + i32.const 3460 + local.get $0 + local.get $1 i32.const 1 i32.add local.tee $0 @@ -3639,7 +3641,7 @@ i32.const 3460 i32.const 45 i32.const 43 - local.get $1 + local.get $3 select i32.store16 local.get $0 @@ -3665,16 +3667,16 @@ i32.const 101 i32.store16 offset=2 local.get $1 - local.tee $3 + local.tee $2 i32.const 4 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $1 @@ -3682,61 +3684,63 @@ local.set $1 end local.get $1 - local.get $1 - local.tee $2 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end + local.set $3 + local.get $1 + local.get $3 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $2 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select i32.store16 offset=4 local.get $0 @@ -3785,6 +3789,7 @@ (local $3 i64) (local $4 i64) (local $5 i64) + (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3870,36 +3875,36 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $3 + local.tee $4 i64.const 31 i64.shl + local.tee $2 local.set $5 - local.get $2 + local.get $3 i64.const 32 i64.shr_u - local.tee $2 - i64.const 31 - i64.shl - local.get $3 + local.tee $3 i64.const 31 i64.shl - local.get $3 + local.tee $6 + local.get $4 i64.const 10 i64.shl i64.const 32 i64.shr_u + local.get $2 i64.add - local.tee $4 + local.tee $2 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $2 i64.const 4294967295 i64.and - local.get $2 + local.get $3 i64.const 10 i64.shl i64.add @@ -3910,13 +3915,11 @@ i64.add i64.const 1 i64.sub - local.set $4 - local.get $2 - i64.const 31 - i64.shl + local.set $2 local.get $5 i64.const 32 i64.shr_u + local.get $6 i64.add local.get $5 i64.const 4294967295 @@ -3926,31 +3929,31 @@ i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $2 global.get $~lib/util/number/_exp_pow i32.const 2 i32.add - local.get $4 local.get $2 + local.get $3 i64.const 2147483647 i64.mul - local.get $3 + local.get $4 i64.const 2147483647 i64.mul - local.get $3 + local.get $4 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $3 + local.tee $4 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $3 i64.const 4294966784 i64.mul - local.get $3 + local.get $4 i64.const 4294967295 i64.and i64.add diff --git a/tests/compiler/object-literal.optimized.wat b/tests/compiler/object-literal.optimized.wat index 2f20828e2a..19ea3c5369 100644 --- a/tests/compiler/object-literal.optimized.wat +++ b/tests/compiler/object-literal.optimized.wat @@ -1,11 +1,12 @@ (module (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) @@ -72,7 +73,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -80,10 +80,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18156 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -97,7 +97,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -122,21 +122,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1712 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1200 i32.const 1264 @@ -145,7 +143,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1716 @@ -160,28 +158,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) @@ -1301,12 +1299,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1317,13 +1322,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1331,32 +1336,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1372,16 +1377,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1389,7 +1394,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -1397,10 +1402,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1411,11 +1416,11 @@ unreachable end end - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -1425,14 +1430,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.tee $3 + local.get $1 i32.load local.set $2 - local.get $1 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -1448,44 +1452,44 @@ local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $3 + local.get $1 local.get $2 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $3 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $3 + local.get $1 local.get $2 i32.const -2 i32.and i32.store - local.get $3 + local.get $1 i32.const 4 i32.add - local.get $3 + local.get $1 i32.load i32.const -4 i32.and @@ -1497,12 +1501,13 @@ i32.and i32.store end - local.get $3 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) - (local $4 i32) local.get $0 i32.const 1073741804 i32.ge_u @@ -1548,13 +1553,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -1562,15 +1567,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -1578,31 +1577,30 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $4 + local.tee $3 i32.load offset=8 - local.set $3 + local.set $1 local.get $2 - local.get $4 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 - local.tee $1 - local.get $3 + local.get $1 i32.store offset=8 - local.get $3 - local.get $3 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $2 i32.or i32.store offset=4 - local.get $4 - local.get $1 + local.get $3 + local.get $2 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $1 + local.get $2 i32.load i32.const -4 i32.and @@ -1610,10 +1608,10 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $1 + local.get $2 i32.const 20 i32.add - local.tee $2 + local.tee $3 local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 @@ -1625,7 +1623,7 @@ local.get $0 local.get $1 i32.add - local.tee $3 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1640,12 +1638,12 @@ local.get $1 i32.const 0 i32.store8 offset=2 - local.get $3 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $3 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1657,7 +1655,7 @@ local.get $1 i32.const 0 i32.store8 offset=3 - local.get $3 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1672,25 +1670,25 @@ i32.sub i32.const 3 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $1 i32.const 0 i32.store local.get $1 local.get $0 - local.get $3 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $3 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 @@ -1710,7 +1708,7 @@ i32.sub i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 @@ -1755,7 +1753,7 @@ local.tee $0 i32.add local.set $1 - local.get $3 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1788,7 +1786,7 @@ end end end - local.get $2 + local.get $3 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2715,26 +2713,33 @@ end ) (func $~start + call $start:object-literal + ) + (func $start:object-literal (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i64.const 0 i64.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.store offset=16 i32.const 1156 @@ -2769,65 +2774,65 @@ i32.store i32.const 1392 global.set $~lib/rt/itcms/fromSpace - local.get $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 123 i32.store - local.get $1 + local.get $0 i32.const 1056 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1056 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.store + local.tee $1 local.get $0 + i32.store + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $1 + local.get $0 i32.load i32.const 123 i32.ne @@ -2840,15 +2845,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.load offset=4 local.tee $1 - i32.store local.get $0 + i32.load offset=4 + local.tee $0 + i32.store + local.get $1 i32.const 1056 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -2864,45 +2869,314 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT i32.const 8 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $0 + call $~lib/rt/tlsf/__alloc + local.tee $6 i32.const 0 i32.store - local.get $0 + local.get $6 i32.const 0 i32.store offset=4 - local.get $0 + local.get $6 i32.const 123 i32.store global.get $~lib/memory/__stack_pointer + local.tee $0 i32.const 1056 i32.store local.get $0 - call $~lib/string/String#substring - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 + i32.const 0 + i32.store + i32.const 0 + i32.const 1052 i32.load - i32.const 123 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $3 + select + local.tee $1 + i32.const 5 + local.get $3 + local.get $3 + i32.const 5 + i32.gt_u + select + local.tee $0 + local.get $0 + local.get $1 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $2 + block $__inlined_func$~lib/string/String#substring + local.get $1 + local.get $0 + local.get $0 + local.get $1 + i32.lt_s + select + i32.const 1 + i32.shl + local.tee $1 + local.get $2 + i32.sub + local.tee $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1568 + local.set $5 + br $__inlined_func$~lib/string/String#substring + end + i32.const 0 + local.get $3 + i32.const 1 + i32.shl + local.get $1 + i32.eq + local.get $2 + select + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1056 + local.set $5 + br $__inlined_func$~lib/string/String#substring + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + local.get $0 + local.set $4 + block $~lib/util/memory/memmove|inlined.0 + local.get $5 + local.tee $0 + local.get $2 + i32.const 1056 + i32.add + local.tee $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $0 + i32.sub + local.get $4 + i32.sub + i32.const 0 + local.get $4 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $0 + local.get $1 + local.get $4 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + local.get $1 + i32.lt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $1 + i64.load + i64.store + local.get $4 + i32.const 8 + i32.sub + local.set $4 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $4 + if + local.get $0 + local.tee $3 + i32.const 1 + i32.add + local.set $0 + local.get $1 + local.tee $2 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $2 + i32.load8_u + i32.store8 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $0 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $0 + local.get $4 + i32.add + i32.const 7 + i32.and + if + local.get $4 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $4 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $4 + i32.const 8 + i32.sub + local.tee $4 + i32.add + local.get $1 + local.get $4 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $4 + if + local.get $0 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.add + local.get $1 + local.get $4 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $6 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $6 + i32.load + i32.const 123 i32.ne if i32.const 0 @@ -2914,14 +3188,14 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $0 + local.get $6 i32.load offset=4 - local.tee $2 + local.tee $0 i32.store local.get $1 i32.const 1600 i32.store offset=4 - local.get $2 + local.get $0 i32.const 1600 call $~lib/string/String.__eq i32.eqz @@ -2933,7 +3207,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 8 @@ -2948,7 +3222,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -3211,7 +3485,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -3220,54 +3494,54 @@ i32.const 16 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 0 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $2 f64.const 0 f64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=12 - local.get $0 + local.get $2 i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 1632 i32.store offset=4 - local.get $0 + local.get $2 i32.const 1632 call $~lib/rt/itcms/__link - local.get $0 + local.get $2 f64.const 0 f64.store offset=8 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 + local.tee $0 + local.get $2 i32.store - local.get $1 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 + local.get $2 i32.load if i32.const 0 @@ -3279,14 +3553,14 @@ end global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $0 + local.get $2 i32.load offset=4 - local.tee $2 + local.tee $0 i32.store local.get $1 i32.const 1632 i32.store offset=4 - local.get $2 + local.get $0 i32.const 1632 call $~lib/string/String.__eq i32.eqz @@ -3298,7 +3572,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 f64.load offset=8 f64.const 0 f64.ne @@ -3323,7 +3597,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -3443,20 +3717,20 @@ global.get $~lib/memory/__stack_pointer i32.const 1772 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 local.get $0 i32.load - local.tee $2 + local.tee $1 i32.store - local.get $1 + local.get $2 i32.const 1664 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1664 call $~lib/string/String.__eq i32.eqz @@ -3469,15 +3743,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.load offset=4 - local.tee $2 + local.tee $1 i32.store - local.get $1 + local.get $2 i32.const 1696 i32.store offset=4 - local.get $2 + local.get $1 i32.const 1696 call $~lib/string/String.__eq i32.eqz @@ -3623,23 +3897,23 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 + loop $while-continue|08 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0 + br $while-continue|08 end end end call $~lib/rt/itcms/step drop - loop $while-continue|1 + loop $while-continue|19 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|1 + br $while-continue|19 end end global.get $~lib/rt/itcms/total @@ -3665,292 +3939,4 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/string/String#substring (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - if - i32.const 18176 - i32.const 18224 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - i32.const 1052 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - local.get $4 - i32.const 0 - i32.gt_s - select - local.tee $5 - i32.const 5 - local.get $4 - local.get $4 - i32.const 5 - i32.gt_s - select - local.tee $0 - local.get $0 - local.get $5 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $3 - local.get $5 - local.get $0 - local.get $0 - local.get $5 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $0 - local.get $3 - i32.sub - local.tee $5 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1568 - return - end - i32.const 0 - local.get $4 - i32.const 1 - i32.shl - local.get $0 - i32.eq - local.get $3 - select - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - return - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - block $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.tee $0 - local.get $3 - i32.const 1056 - i32.add - local.tee $3 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $3 - local.get $0 - i32.sub - local.get $5 - i32.sub - i32.const 0 - local.get $5 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $0 - local.get $3 - local.get $5 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - local.get $3 - i32.lt_u - if - local.get $3 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $0 - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.tee $1 - i32.const 1 - i32.add - local.set $3 - local.get $2 - local.get $1 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $0 - local.get $3 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $3 - i32.const 8 - i32.add - local.set $3 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $5 - if - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.tee $1 - i32.const 1 - i32.add - local.set $3 - local.get $2 - local.get $1 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $3 - i32.const 7 - i32.and - local.get $0 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $0 - local.get $5 - i32.add - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $0 - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $0 - i32.add - local.get $3 - local.get $5 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $0 - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) ) diff --git a/tests/compiler/optional-typeparameters.optimized.wat b/tests/compiler/optional-typeparameters.optimized.wat index 5444208333..8216c35134 100644 --- a/tests/compiler/optional-typeparameters.optimized.wat +++ b/tests/compiler/optional-typeparameters.optimized.wat @@ -132,7 +132,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -140,10 +139,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17868 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -157,7 +156,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -182,9 +181,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -192,11 +190,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -205,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -220,16 +217,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -237,11 +234,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1221,17 +1218,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1244,16 +1241,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1261,15 +1258,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1296,12 +1293,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1311,7 +1308,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1320,19 +1317,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1358,26 +1355,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1427,11 +1424,11 @@ ) (func $~start (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s @@ -1496,10 +1493,9 @@ local.get $0 global.set $optional-typeparameters/tConcrete global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $optional-typeparameters/tConcrete i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1523,10 +1519,9 @@ local.get $0 global.set $optional-typeparameters/tDerived global.get $~lib/memory/__stack_pointer - local.tee $0 global.get $optional-typeparameters/tDerived i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/reexport.optimized.wat b/tests/compiler/reexport.optimized.wat index 924aef45ba..679ede0cba 100644 --- a/tests/compiler/reexport.optimized.wat +++ b/tests/compiler/reexport.optimized.wat @@ -209,7 +209,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -217,10 +216,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17916 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -234,7 +233,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -259,9 +258,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -269,11 +267,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -282,7 +279,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -297,16 +294,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -314,11 +311,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1298,17 +1295,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1321,16 +1318,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1338,15 +1335,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1373,12 +1370,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1388,7 +1385,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1397,19 +1394,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1435,26 +1432,26 @@ i32.const 4 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1469,34 +1466,34 @@ local.get $1 i32.const 20 i32.add - local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 4 i32.add - local.tee $1 + local.tee $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 ) (func $export/sub (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -1802,11 +1799,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:exports/vehicles.Car#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1532 i32.lt_s diff --git a/tests/compiler/rereexport.optimized.wat b/tests/compiler/rereexport.optimized.wat index 440cf83d6e..92939e7d2e 100644 --- a/tests/compiler/rereexport.optimized.wat +++ b/tests/compiler/rereexport.optimized.wat @@ -171,7 +171,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -179,10 +178,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17956 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -196,7 +195,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -221,9 +220,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -231,11 +229,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1536 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -244,7 +241,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1540 @@ -259,16 +256,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -276,11 +273,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1243,11 +1240,11 @@ ) (func $~start (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1572 i32.lt_s @@ -1587,8 +1584,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-access.optimized.wat b/tests/compiler/resolve-access.optimized.wat index abc4af72cf..50bd0ea2dd 100644 --- a/tests/compiler/resolve-access.optimized.wat +++ b/tests/compiler/resolve-access.optimized.wat @@ -126,7 +126,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -134,10 +133,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 19732 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -151,7 +150,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -176,21 +175,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 3296 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -199,7 +196,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 3300 @@ -214,28 +211,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1524,8 +1521,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2578,25 +2575,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/util/number/utoa64 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3348 - i32.lt_s - if - i32.const 19760 - i32.const 19808 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3348 + i32.lt_s + if + i32.const 19760 + i32.const 19808 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 local.get $0 i64.eqz if @@ -2605,6 +2602,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1728 + local.set $2 br $__inlined_func$~lib/util/number/utoa64 end local.get $0 @@ -2614,54 +2612,54 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $1 local.tee $3 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 1 @@ -2669,8 +2667,8 @@ local.tee $2 i32.store local.get $2 - local.get $1 local.get $3 + local.get $1 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -2724,7 +2722,7 @@ i32.add end end - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 1 @@ -2736,7 +2734,7 @@ i64.const 100000000 i64.ge_u if - local.get $3 + local.get $1 i32.const 4 i32.sub local.tee $1 @@ -2753,10 +2751,10 @@ i64.mul i64.sub i32.wrap_i64 - local.tee $4 + local.tee $3 i32.const 10000 i32.rem_u - local.tee $3 + local.tee $4 i32.const 100 i32.div_u i32.const 2 @@ -2764,7 +2762,7 @@ i32.const 1740 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -2779,15 +2777,15 @@ local.get $1 i32.const 4 i32.sub - local.tee $3 + local.tee $1 i32.const 1 i32.shl local.get $2 i32.add - local.get $4 + local.get $3 i32.const 10000 i32.div_u - local.tee $1 + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -2795,7 +2793,7 @@ i32.const 1740 i32.add i64.load32_u - local.get $1 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -2813,15 +2811,15 @@ local.get $2 local.get $0 i32.wrap_i64 - local.get $3 + local.get $1 call $~lib/util/number/utoa32_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -2898,334 +2896,323 @@ i32.const 1376 global.set $~lib/rt/itcms/fromSpace ) - (func $~lib/rt/__newArray (result i32) + (func $resolve-access/arrayAccess (result i32) (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3348 - i32.lt_s - if - i32.const 19760 - i32.const 19808 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 8 - local.set $5 - i32.const 1056 - local.set $2 - block $~lib/util/memory/memmove|inlined.0 - i32.const 8 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3348 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $6 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $4 - local.tee $3 - i32.const 1056 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - i32.const 1048 - local.get $3 + i32.store + local.get $6 + i32.const 4 i32.sub - i32.const -16 - i32.le_u - if - local.get $3 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $3 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3348 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $5 + i32.const 0 + i32.store + i32.const 8 + local.set $7 i32.const 1056 - i32.lt_u - if - local.get $3 - i32.const 7 - i32.and - i32.eqz + local.set $3 + block $~lib/util/memory/memmove|inlined.0 + i32.const 8 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $4 + local.tee $0 + i32.const 1056 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + i32.const 1048 + local.get $0 + i32.sub + i32.const -16 + i32.le_u if - loop $while-continue|0 - local.get $3 - i32.const 7 - i32.and + local.get $0 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $0 + i32.const 1056 + i32.lt_u + if + local.get $0 + i32.const 7 + i32.and + i32.eqz + if + loop $while-continue|0 + local.get $0 + i32.const 7 + i32.and + if + local.get $7 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $0 + local.tee $2 + i32.const 1 + i32.add + local.set $0 + local.get $3 + local.tee $1 + i32.const 1 + i32.add + local.set $3 + local.get $2 + local.get $1 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $7 + i32.const 8 + i32.ge_u + if + local.get $0 + local.get $3 + i64.load + i64.store + local.get $7 + i32.const 8 + i32.sub + local.set $7 + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $3 + i32.const 8 + i32.add + local.set $3 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $7 if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 + local.get $0 + local.tee $2 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $0 local.get $3 local.tee $1 i32.const 1 i32.add local.set $3 local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 local.get $1 - local.get $0 i32.load8_u i32.store8 - br $while-continue|0 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $while-continue|2 end end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $3 - local.get $2 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - local.get $3 - i32.const 8 + else + local.get $0 + i32.const 7 + i32.and + i32.eqz + if + loop $while-continue|3 + local.get $0 + local.get $7 i32.add - local.set $3 - local.get $2 + i32.const 7 + i32.and + if + local.get $7 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $0 + local.get $7 + i32.const 1 + i32.sub + local.tee $7 + i32.add + local.get $7 + i32.const 1056 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $7 i32.const 8 - i32.add - local.set $2 - br $while-continue|1 + i32.ge_u + if + local.get $0 + local.get $7 + i32.const 8 + i32.sub + local.tee $7 + i32.add + local.get $7 + i32.const 1056 + i32.add + i64.load + i64.store + br $while-continue|4 + end end end - end - loop $while-continue|2 - local.get $5 - if - local.get $3 - local.tee $1 - i32.const 1 - i32.add - local.set $3 - local.get $2 - local.tee $0 - i32.const 1 - i32.add - local.set $2 - local.get $1 - local.get $0 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $3 - i32.const 7 - i32.and - i32.eqz - if - loop $while-continue|3 - local.get $3 - local.get $5 - i32.add - i32.const 7 - i32.and + loop $while-continue|5 + local.get $7 if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 + local.get $0 + local.get $7 i32.const 1 i32.sub - local.tee $5 - local.get $3 + local.tee $7 i32.add - local.get $5 + local.get $7 i32.const 1056 i32.add i32.load8_u i32.store8 - br $while-continue|3 + br $while-continue|5 end end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $3 - i32.add - local.get $5 - i32.const 1056 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $3 - i32.add - local.get $5 - i32.const 1056 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end end end - end - local.get $4 - local.tee $0 - i32.store - i32.const 16 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $3 - local.get $0 - i32.store - local.get $3 - local.set $2 - local.get $0 - local.tee $1 - if - local.get $2 - i32.eqz - if - i32.const 0 - i32.const 1152 - i32.const 294 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 + local.get $5 + local.get $4 + local.tee $0 + i32.store + i32.const 16 i32.const 3 - i32.and - i32.eq + call $~lib/rt/itcms/__new + local.tee $3 + local.get $0 + i32.store + local.get $0 if - local.get $2 + local.get $3 + i32.eqz + if + i32.const 0 + i32.const 1152 + i32.const 294 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + local.get $0 i32.const 20 i32.sub + local.tee $2 i32.load offset=4 i32.const 3 i32.and - local.tee $2 - global.get $~lib/rt/itcms/white - i32.eqz i32.eq if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - i32.const 0 - local.get $2 + local.get $3 + i32.const 20 + i32.sub + i32.load offset=4 i32.const 3 + i32.and + local.tee $1 + global.get $~lib/rt/itcms/white + i32.eqz i32.eq - select if - local.get $1 + local.get $2 call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + i32.const 0 + local.get $1 + i32.const 3 + i32.eq + select + if + local.get $2 + call $~lib/rt/itcms/Object#makeGray + end end end end - end - local.get $3 - local.get $0 - i32.store offset=4 - local.get $3 - i32.const 8 - i32.store offset=8 - local.get $3 - i32.const 1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $resolve-access/arrayAccess (result i32) - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3348 - i32.lt_s - if - i32.const 19760 - i32.const 19808 - i32.const 1 + local.get $3 + local.get $0 + i32.store offset=4 + local.get $3 + i32.const 8 + i32.store offset=8 + local.get $3 i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - call $~lib/rt/__newArray - local.tee $0 - i32.store - local.get $0 - i32.load offset=12 - i32.eqz - if - i32.const 1280 - i32.const 1488 - i32.const 107 - i32.const 42 - call $~lib/builtins/abort - unreachable + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $3 + i32.store + local.get $3 + i32.load offset=12 + i32.eqz + if + i32.const 1280 + i32.const 1488 + i32.const 107 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + local.get $3 + i32.load offset=4 + i64.load + call $~lib/number/U64#toString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - local.get $0 - i32.load offset=4 - i64.load - call $~lib/number/U64#toString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 19760 + i32.const 19808 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $resolve-access/Container#constructor (result i32) (local $0 i32) @@ -3303,11 +3290,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 3348 i32.lt_s @@ -3318,16 +3305,16 @@ i32.store local.get $1 call $resolve-access/Container#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i64.const 1 i64.store block $__inlined_func$~lib/util/number/utoa32 (result i32) - local.get $0 + local.get $1 i64.load i32.wrap_i64 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3339,7 +3326,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3350,8 +3337,7 @@ br $__inlined_func$~lib/util/number/utoa32 end global.get $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $0 i32.const 100000 i32.lt_u if (result i32) @@ -3397,22 +3383,22 @@ i32.add end end - local.tee $2 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store + local.get $2 local.get $0 local.get $1 - local.get $2 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 end global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/resolve-binary.optimized.wat b/tests/compiler/resolve-binary.optimized.wat index d05f0581a9..b29cfdffc0 100644 --- a/tests/compiler/resolve-binary.optimized.wat +++ b/tests/compiler/resolve-binary.optimized.wat @@ -461,7 +461,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -469,10 +468,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 27676 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -486,7 +485,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -511,9 +510,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -521,11 +519,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 11248 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1632 i32.const 1696 @@ -534,7 +531,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 11252 @@ -549,16 +546,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -566,11 +563,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1840,8 +1837,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2155,25 +2152,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/util/number/itoa32 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 11292 - i32.lt_s - if - i32.const 27696 - i32.const 27744 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 11292 + i32.lt_s + if + i32.const 27696 + i32.const 27744 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32 local.get $0 i32.eqz if @@ -2182,6 +2179,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1408 + local.set $0 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -2192,71 +2190,71 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $1 select + local.tee $2 local.tee $0 - local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.get $2 + local.get $1 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 local.get $0 + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -2264,8 +2262,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (result i32) (local $4 i32) @@ -3858,13 +3856,13 @@ i32.const 0 i32.lt_s local.tee $5 - if (result i32) + if i32.const 0 local.get $1 i32.sub - else - local.get $1 + local.set $1 end + local.get $1 local.tee $3 i32.const 100000 i32.lt_u @@ -3911,9 +3909,9 @@ i32.add end end - local.set $1 - local.get $3 + local.set $3 local.get $1 + local.get $3 i32.const 1 i32.add local.tee $1 @@ -4120,12 +4118,11 @@ (func $start:resolve-binary (local $0 i32) (local $1 i32) - (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 11292 i32.lt_s @@ -5073,12 +5070,12 @@ local.get $0 global.set $resolve-binary/foo global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 10880 @@ -5102,21 +5099,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 10912 i32.store offset=8 - local.get $2 + local.get $0 i32.const 10912 i32.store - local.get $2 + local.get $0 i32.const 10912 i32.store offset=4 i32.const 10912 @@ -5132,21 +5128,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 10944 i32.store offset=8 - local.get $2 + local.get $0 i32.const 10944 i32.store - local.get $2 + local.get $0 i32.const 10944 i32.store offset=4 i32.const 10944 @@ -5162,21 +5157,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 10976 i32.store offset=8 - local.get $2 + local.get $0 i32.const 10976 i32.store - local.get $2 + local.get $0 i32.const 10976 i32.store offset=4 i32.const 10976 @@ -5192,21 +5186,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 11008 i32.store offset=8 - local.get $2 + local.get $0 i32.const 11008 i32.store - local.get $2 + local.get $0 i32.const 11008 i32.store offset=4 i32.const 11008 @@ -5222,21 +5215,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 11040 i32.store offset=8 - local.get $2 + local.get $0 i32.const 11040 i32.store - local.get $2 + local.get $0 i32.const 11040 i32.store offset=4 i32.const 11040 @@ -5252,21 +5244,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 11072 i32.store offset=8 - local.get $2 + local.get $0 i32.const 11072 i32.store - local.get $2 + local.get $0 i32.const 11072 i32.store offset=4 i32.const 11072 @@ -5282,21 +5273,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 11104 i32.store offset=8 - local.get $2 + local.get $0 i32.const 11104 i32.store - local.get $2 + local.get $0 i32.const 11104 i32.store offset=4 i32.const 11104 @@ -5312,21 +5302,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 11136 i32.store offset=8 - local.get $2 + local.get $0 i32.const 11136 i32.store - local.get $2 + local.get $0 i32.const 11136 i32.store offset=4 i32.const 11136 @@ -5342,21 +5331,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 11168 i32.store offset=8 - local.get $2 + local.get $0 i32.const 11168 i32.store - local.get $2 + local.get $0 i32.const 11168 i32.store offset=4 i32.const 11168 @@ -5372,21 +5360,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 11200 i32.store offset=8 - local.get $2 + local.get $0 i32.const 11200 i32.store - local.get $2 + local.get $0 i32.const 11200 i32.store offset=4 i32.const 11200 @@ -5402,21 +5389,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.tee $1 - global.get $resolve-binary/foo local.tee $0 + global.get $resolve-binary/foo + local.tee $1 i32.store offset=12 - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $2 + local.get $0 i32.const 11232 i32.store offset=8 - local.get $2 + local.get $0 i32.const 11232 i32.store - local.get $2 + local.get $0 i32.const 11232 i32.store offset=4 i32.const 11232 @@ -5436,23 +5422,21 @@ call $resolve-binary/Bar#constructor global.set $resolve-binary/bar2 global.get $~lib/memory/__stack_pointer - local.tee $1 local.tee $0 global.get $resolve-binary/bar i32.store offset=4 local.get $0 global.get $resolve-binary/bar2 - local.tee $2 - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 - global.set $resolve-binary/bar local.get $1 + global.set $resolve-binary/bar + local.get $0 global.get $resolve-binary/bar local.tee $0 i32.store local.get $0 - local.get $2 + local.get $1 i32.ne if i32.const 0 diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index 55eb8b34cd..eae73f314d 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -178,7 +178,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -186,10 +185,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 21236 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -203,7 +202,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -228,21 +227,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 4800 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1360 i32.const 1424 @@ -251,7 +248,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 4804 @@ -266,28 +263,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1550,7 +1547,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1578,11 +1575,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1601,9 +1598,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1619,7 +1616,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1634,18 +1631,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1656,7 +1653,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1670,16 +1667,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1692,89 +1686,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1782,7 +1776,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1925,7 +1919,8 @@ i64.shr_u i32.wrap_i64 local.tee $2 - local.tee $5 + local.set $5 + local.get $2 i32.const 100000 i32.lt_u if (result i32) @@ -2148,7 +2143,7 @@ i32.shl i32.const 1774 i32.add - local.tee $7 + local.tee $8 i32.load16_u local.set $5 loop $while-continue|3 @@ -2193,7 +2188,7 @@ br $while-continue|3 end end - local.get $7 + local.get $8 local.get $5 i32.store16 local.get $4 @@ -2273,7 +2268,7 @@ i32.shl i32.const 1774 i32.add - local.tee $7 + local.tee $8 i32.load16_u local.set $5 loop $while-continue|6 @@ -2318,7 +2313,7 @@ br $while-continue|6 end end - local.get $7 + local.get $8 local.get $5 i32.store16 local.get $4 @@ -3331,6 +3326,8 @@ (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $2 i32.eqz if @@ -3431,7 +3428,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $2 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -3445,28 +3442,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $4 + local.set $2 loop $for-loop|1 local.get $2 - local.get $4 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $4 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end local.get $1 - local.get $2 + local.get $5 i32.add else local.get $1 @@ -3494,7 +3491,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -3541,9 +3537,12 @@ i32.add end end + local.set $1 + local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -3551,7 +3550,7 @@ local.get $2 select i32.store16 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.add else @@ -3587,7 +3586,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -3595,7 +3594,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -3642,18 +3640,21 @@ i32.add end end + local.set $2 + local.get $0 + local.get $2 i32.const 1 i32.add - local.tee $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select i32.store16 offset=4 + local.get $0 local.get $1 - local.get $2 i32.add i32.const 2 i32.add @@ -3947,25 +3948,25 @@ (local $1 f64) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/util/number/dtoa (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4852 - i32.lt_s - if - i32.const 21264 - i32.const 21312 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4852 + i32.lt_s + if + i32.const 21264 + i32.const 21312 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/dtoa local.get $0 f64.promote_f32 local.tee $1 @@ -3977,6 +3978,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1632 + local.set $2 br $__inlined_func$~lib/util/number/dtoa end local.get $1 @@ -3994,6 +3996,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1664 + local.set $2 br $__inlined_func$~lib/util/number/dtoa end global.get $~lib/memory/__stack_pointer @@ -4006,29 +4009,30 @@ f64.const 0 f64.lt select + local.set $2 br $__inlined_func$~lib/util/number/dtoa end local.get $1 call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store - local.get $3 - i32.const 1776 local.get $2 + i32.const 1776 + local.get $3 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 end + local.get $2 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -4222,47 +4226,46 @@ end global.get $~lib/memory/__stack_pointer local.get $1 - local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $0 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $0 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $0 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $0 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $0 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $0 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -4317,11 +4320,11 @@ (func $start:resolve-elementaccess (local $0 i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 4852 i32.lt_s diff --git a/tests/compiler/resolve-function-expression.optimized.wat b/tests/compiler/resolve-function-expression.optimized.wat index 701c396e52..445a7cab22 100644 --- a/tests/compiler/resolve-function-expression.optimized.wat +++ b/tests/compiler/resolve-function-expression.optimized.wat @@ -160,7 +160,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -168,10 +167,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 19844 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -185,7 +184,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -210,9 +209,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -220,11 +218,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 3424 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1648 i32.const 1712 @@ -233,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3428 @@ -248,16 +245,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -265,11 +262,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1315,8 +1312,8 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1330,7 +1327,7 @@ local.get $0 i32.const 16 i32.add - local.set $1 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -1338,7 +1335,7 @@ end global.get $~lib/rt/tlsf/ROOT local.tee $5 - local.get $1 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1349,13 +1346,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1363,29 +1360,29 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz if memory.size local.tee $4 - local.get $1 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $2 i32.add else - local.get $1 + local.get $2 end i32.const 4 local.get $5 @@ -1430,7 +1427,7 @@ i32.shl call $~lib/rt/tlsf/addMemory local.get $5 - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz @@ -1447,7 +1444,7 @@ i32.load i32.const -4 i32.and - local.get $1 + local.get $2 i32.lt_u if i32.const 0 @@ -1463,7 +1460,7 @@ local.get $3 i32.load local.set $4 - local.get $1 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1479,9 +1476,9 @@ local.get $4 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1489,23 +1486,23 @@ local.get $4 i32.const 2 i32.and - local.get $1 + local.get $2 i32.or i32.store - local.get $1 + local.get $2 local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $5 - local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $3 @@ -1521,8 +1518,8 @@ i32.const -4 i32.and i32.add - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and @@ -1535,26 +1532,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $1 local.get $3 - local.get $1 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $3 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and local.get $3 i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1570,18 +1567,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1590,18 +1587,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1610,10 +1607,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1622,38 +1619,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 - i32.add local.tee $2 + i32.add + local.tee $1 i32.const 0 i32.store - local.get $2 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $1 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1666,20 +1663,20 @@ i32.sub i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 0 i32.store offset=20 - local.get $2 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1702,16 +1699,16 @@ i32.sub i32.const 0 i32.store - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 i32.add local.tee $0 i32.add - local.set $2 - local.get $1 + local.set $1 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1720,26 +1717,26 @@ i32.const 32 i32.ge_u if - local.get $2 + local.get $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i64.const 0 i64.store offset=16 - local.get $2 + local.get $1 i64.const 0 i64.store offset=24 local.get $0 i32.const 32 i32.sub local.set $0 - local.get $2 + local.get $1 i32.const 32 i32.add - local.set $2 + local.set $1 br $while-continue|0 end end @@ -1860,7 +1857,7 @@ i32.const 1200 i32.load call_indirect $0 (type $i32_=>_i32) - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1873,7 +1870,7 @@ i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa32 - local.get $1 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -1881,74 +1878,74 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1424 - local.set $1 + local.set $2 br $__inlined_func$~lib/util/number/itoa32 end i32.const 0 - local.get $1 + local.get $2 i32.sub - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.const 31 i32.shr_u - local.tee $4 + local.tee $3 select local.tee $0 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.get $4 + local.get $3 i32.add - local.tee $2 + local.tee $1 i32.const 1 i32.shl call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store loop $while-continue|0 local.get $0 @@ -1958,20 +1955,20 @@ local.get $0 i32.const 10000 i32.rem_u - local.set $3 + local.set $4 local.get $0 i32.const 10000 i32.div_u local.set $0 - local.get $2 + local.get $1 i32.const 4 i32.sub - local.tee $2 + local.tee $1 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add - local.get $3 + local.get $4 i32.const 100 i32.div_u i32.const 2 @@ -1979,7 +1976,7 @@ i32.const 1836 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -1998,13 +1995,13 @@ i32.const 100 i32.ge_u if - local.get $2 + local.get $1 i32.const 2 i32.sub - local.tee $2 + local.tee $1 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add local.get $0 i32.const 100 @@ -2024,12 +2021,12 @@ i32.const 10 i32.ge_u if - local.get $2 + local.get $1 i32.const 2 i32.sub i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add local.get $0 i32.const 2 @@ -2039,21 +2036,21 @@ i32.load i32.store else - local.get $2 + local.get $1 i32.const 1 i32.sub i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add local.get $0 i32.const 48 i32.add i32.store16 end - local.get $4 + local.get $3 if - local.get $1 + local.get $2 i32.const 45 i32.store16 end @@ -2064,31 +2061,31 @@ end global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $1 + local.get $2 i32.store local.get $0 i32.const 3408 i32.store offset=4 block $__inlined_func$~lib/string/String.__eq (result i32) i32.const 1 - local.get $1 + local.get $2 i32.const 3408 i32.eq br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $1 + local.get $2 i32.eqz br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $1 + local.get $2 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $2 + local.tee $0 i32.const 3404 i32.load i32.const 1 @@ -2098,38 +2095,36 @@ drop block $__inlined_func$~lib/util/string/compareImpl (result i32) i32.const 3408 - local.set $4 - local.get $1 - local.tee $0 + local.set $3 + local.get $2 i32.const 7 i32.and i32.const 1 - local.get $2 - local.tee $1 + local.get $0 i32.const 4 i32.ge_u select i32.eqz if loop $do-continue|0 - local.get $0 + local.get $2 i64.load - local.get $4 + local.get $3 i64.load i64.eq if - local.get $0 + local.get $2 i32.const 8 i32.add - local.set $0 - local.get $4 + local.set $2 + local.get $3 i32.const 8 i32.add - local.set $4 - local.get $1 + local.set $3 + local.get $0 i32.const 4 i32.sub - local.tee $1 + local.tee $0 i32.const 4 i32.ge_u br_if $do-continue|0 @@ -2137,34 +2132,34 @@ end end loop $while-continue|1 - local.get $1 - local.tee $2 + local.get $0 + local.tee $1 i32.const 1 i32.sub - local.set $1 - local.get $2 + local.set $0 + local.get $1 if - local.get $0 + local.get $2 i32.load16_u - local.tee $2 - local.get $4 + local.tee $1 + local.get $3 i32.load16_u - local.tee $3 + local.tee $4 i32.ne if - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.sub br $__inlined_func$~lib/util/string/compareImpl end - local.get $0 + local.get $2 i32.const 2 i32.add - local.set $0 - local.get $4 + local.set $2 + local.get $3 i32.const 2 i32.add - local.set $4 + local.set $3 br $while-continue|1 end end diff --git a/tests/compiler/resolve-nested.optimized.wat b/tests/compiler/resolve-nested.optimized.wat index be2a5e5b11..8916357988 100644 --- a/tests/compiler/resolve-nested.optimized.wat +++ b/tests/compiler/resolve-nested.optimized.wat @@ -129,7 +129,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -137,10 +136,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17876 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -154,7 +153,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -179,9 +178,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -189,11 +187,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -202,7 +199,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -217,16 +214,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -234,11 +231,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1218,17 +1215,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1241,16 +1238,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1258,15 +1255,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1293,12 +1290,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1308,7 +1305,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1317,19 +1314,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1355,26 +1352,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1461,11 +1458,11 @@ ) (func $export:resolve-nested/Outer.InnerClass#constructor (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1492 i32.lt_s @@ -1514,11 +1511,11 @@ ) (func $export:resolve-nested/Outer.Inner.EvenInnerClass#constructor (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1492 i32.lt_s diff --git a/tests/compiler/resolve-new.optimized.wat b/tests/compiler/resolve-new.optimized.wat index 994bf8daa0..aa996c86d2 100644 --- a/tests/compiler/resolve-new.optimized.wat +++ b/tests/compiler/resolve-new.optimized.wat @@ -125,7 +125,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -133,10 +132,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17860 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -150,7 +149,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -175,9 +174,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -185,11 +183,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -198,7 +195,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -213,16 +210,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -230,11 +227,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1468,8 +1465,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/resolve-propertyaccess.optimized.wat b/tests/compiler/resolve-propertyaccess.optimized.wat index 20b85abf8c..a90ff9db80 100644 --- a/tests/compiler/resolve-propertyaccess.optimized.wat +++ b/tests/compiler/resolve-propertyaccess.optimized.wat @@ -160,7 +160,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -168,10 +167,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 20100 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -185,7 +184,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -210,9 +209,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -220,11 +218,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 3680 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -233,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3684 @@ -248,16 +245,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -265,11 +262,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1539,8 +1536,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1751,25 +1748,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/util/number/itoa32 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3716 - i32.lt_s - if - i32.const 20128 - i32.const 20176 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3716 + i32.lt_s + if + i32.const 20128 + i32.const 20176 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32 local.get $0 i32.eqz if @@ -1778,9 +1775,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end - global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 i32.sub @@ -1791,47 +1788,49 @@ local.tee $3 select local.tee $0 - local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -1957,8 +1956,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $1 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2111,11 +2110,11 @@ (func $start:resolve-propertyaccess (local $0 i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 3716 i32.lt_s diff --git a/tests/compiler/resolve-ternary.optimized.wat b/tests/compiler/resolve-ternary.optimized.wat index 3f38006c58..aa987b9856 100644 --- a/tests/compiler/resolve-ternary.optimized.wat +++ b/tests/compiler/resolve-ternary.optimized.wat @@ -164,7 +164,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -172,10 +171,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 21028 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -189,7 +188,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -214,9 +213,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -224,11 +222,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 4608 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -237,7 +234,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 4612 @@ -252,16 +249,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -269,11 +266,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1319,8 +1316,8 @@ br_if $do-continue|0 end global.get $~lib/rt/itcms/total - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 @@ -1334,7 +1331,7 @@ local.get $0 i32.const 16 i32.add - local.set $1 + local.set $2 global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -1342,7 +1339,7 @@ end global.get $~lib/rt/tlsf/ROOT local.tee $5 - local.get $1 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -1353,13 +1350,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $2 i32.const 19 i32.add i32.const -16 @@ -1367,29 +1364,29 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $2 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz if memory.size local.tee $4 - local.get $1 + local.get $2 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $2 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $2 i32.add else - local.get $1 + local.get $2 end i32.const 4 local.get $5 @@ -1434,7 +1431,7 @@ i32.shl call $~lib/rt/tlsf/addMemory local.get $5 - local.get $1 + local.get $2 call $~lib/rt/tlsf/searchBlock local.tee $3 i32.eqz @@ -1451,7 +1448,7 @@ i32.load i32.const -4 i32.and - local.get $1 + local.get $2 i32.lt_u if i32.const 0 @@ -1467,7 +1464,7 @@ local.get $3 i32.load local.set $4 - local.get $1 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1483,9 +1480,9 @@ local.get $4 i32.const -4 i32.and - local.get $1 + local.get $2 i32.sub - local.tee $2 + local.tee $1 i32.const 16 i32.ge_u if @@ -1493,23 +1490,23 @@ local.get $4 i32.const 2 i32.and - local.get $1 + local.get $2 i32.or i32.store - local.get $1 + local.get $2 local.get $3 i32.const 4 i32.add i32.add - local.tee $1 - local.get $2 + local.tee $2 + local.get $1 i32.const 4 i32.sub i32.const 1 i32.or i32.store local.get $5 - local.get $1 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $3 @@ -1525,8 +1522,8 @@ i32.const -4 i32.and i32.add - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and @@ -1539,26 +1536,26 @@ local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $1 + local.tee $2 i32.load offset=8 - local.set $2 + local.set $1 local.get $3 - local.get $1 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $3 - local.get $2 + local.get $1 i32.store offset=8 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and local.get $3 i32.or i32.store offset=4 - local.get $1 + local.get $2 local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1574,18 +1571,18 @@ i32.const 20 i32.add local.tee $3 - local.set $2 + local.set $1 block $~lib/util/memory/memset|inlined.0 local.get $0 i32.eqz br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.sub i32.const 0 @@ -1594,18 +1591,18 @@ i32.const 2 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $2 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $2 i32.const 3 i32.sub i32.const 0 @@ -1614,10 +1611,10 @@ i32.const 6 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $2 i32.const 4 i32.sub i32.const 0 @@ -1626,38 +1623,38 @@ i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 - local.get $2 + local.get $1 i32.sub i32.const 3 i32.and - local.tee $1 - i32.add local.tee $2 + i32.add + local.tee $1 i32.const 0 i32.store - local.get $2 - local.get $0 local.get $1 + local.get $0 + local.get $2 i32.sub i32.const -4 i32.and - local.tee $1 + local.tee $2 i32.add local.tee $0 i32.const 4 i32.sub i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 8 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 local.get $0 @@ -1670,20 +1667,20 @@ i32.sub i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.le_u br_if $~lib/util/memory/memset|inlined.0 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 - local.get $2 + local.get $1 i32.const 0 i32.store offset=16 - local.get $2 + local.get $1 i32.const 0 i32.store offset=20 - local.get $2 + local.get $1 i32.const 0 i32.store offset=24 local.get $0 @@ -1706,16 +1703,16 @@ i32.sub i32.const 0 i32.store - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 4 i32.and i32.const 24 i32.add local.tee $0 i32.add - local.set $2 - local.get $1 + local.set $1 + local.get $2 local.get $0 i32.sub local.set $0 @@ -1724,26 +1721,26 @@ i32.const 32 i32.ge_u if - local.get $2 + local.get $1 i64.const 0 i64.store - local.get $2 + local.get $1 i64.const 0 i64.store offset=8 - local.get $2 + local.get $1 i64.const 0 i64.store offset=16 - local.get $2 + local.get $1 i64.const 0 i64.store offset=24 local.get $0 i32.const 32 i32.sub local.set $0 - local.get $2 + local.get $1 i32.const 32 i32.add - local.set $2 + local.set $1 br $while-continue|0 end end @@ -2004,7 +2001,8 @@ i64.shr_u i32.wrap_i64 local.tee $2 - local.tee $5 + local.set $5 + local.get $2 i32.const 100000 i32.lt_u if (result i32) @@ -2221,17 +2219,17 @@ local.get $10 i64.extend_i32_s i64.shl - local.set $6 + local.set $1 local.get $4 i32.const 1 i32.shl i32.const 3470 i32.add - local.tee $2 + local.tee $8 i32.load16_u local.set $5 loop $while-continue|3 - local.get $6 + local.get $1 local.get $3 local.get $0 i64.sub @@ -2247,13 +2245,13 @@ local.get $0 i64.sub local.get $0 - local.get $6 + local.get $1 i64.add - local.tee $1 + local.tee $6 local.get $9 i64.sub i64.gt_u - local.get $1 + local.get $6 local.get $9 i64.lt_u select @@ -2266,13 +2264,13 @@ i32.sub local.set $5 local.get $0 - local.get $6 + local.get $1 i64.add local.set $0 br $while-continue|3 end end - local.get $2 + local.get $8 local.get $5 i32.store16 local.get $4 @@ -2289,11 +2287,11 @@ local.get $6 i64.const 10 i64.mul - local.tee $1 + local.tee $0 local.get $10 i64.extend_i32_s i64.shr_u - local.tee $0 + local.tee $1 local.get $4 i64.extend_i32_s i64.or @@ -2310,7 +2308,7 @@ i32.shl i32.const 3472 i32.add - local.get $0 + local.get $1 i32.wrap_i64 i32.const 65535 i32.and @@ -2323,7 +2321,7 @@ i32.sub local.set $8 local.get $3 - local.get $1 + local.get $0 local.get $12 i64.and local.tee $6 @@ -2346,13 +2344,13 @@ i64.load32_u local.get $9 i64.mul - local.set $6 + local.set $1 local.get $4 i32.const 1 i32.shl i32.const 3470 i32.add - local.tee $2 + local.tee $8 i32.load16_u local.set $5 loop $while-continue|6 @@ -2363,24 +2361,24 @@ i64.le_u i32.const 0 local.get $0 - local.get $6 + local.get $1 i64.lt_u select if (result i32) i32.const 1 - local.get $6 + local.get $1 local.get $0 i64.sub local.get $0 local.get $11 i64.add - local.tee $1 - local.get $6 + local.tee $6 + local.get $1 i64.sub i64.gt_u local.get $1 local.get $6 - i64.lt_u + i64.gt_u select else i32.const 0 @@ -2397,7 +2395,7 @@ br $while-continue|6 end end - local.get $2 + local.get $8 local.get $5 i32.store16 local.get $4 @@ -3307,6 +3305,7 @@ (local $2 i32) (local $3 i32) (local $4 i32) + (local $5 i32) local.get $1 i32.eqz if @@ -3325,18 +3324,18 @@ local.get $0 local.get $1 i32.add - local.tee $4 + local.tee $3 i32.const 21 i32.le_s i32.const 0 local.get $0 - local.get $4 + local.get $3 i32.le_s select if (result i32) loop $for-loop|0 local.get $0 - local.get $4 + local.get $3 i32.lt_s if local.get $0 @@ -3353,61 +3352,61 @@ br $for-loop|0 end end - local.get $4 + local.get $3 i32.const 1 i32.shl i32.const 3472 i32.add i32.const 3145774 i32.store - local.get $4 + local.get $3 i32.const 2 i32.add else - local.get $4 + local.get $3 i32.const 21 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const 0 i32.gt_s select if (result i32) - local.get $4 + local.get $3 i32.const 1 i32.shl i32.const 3472 i32.add - local.tee $4 + local.tee $3 i32.const 2 i32.add - local.get $4 + local.get $3 i32.const 0 local.get $1 i32.sub i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $4 + local.get $3 i32.const 46 i32.store16 local.get $0 i32.const 1 i32.add else - local.get $4 + local.get $3 i32.const 0 i32.le_s i32.const 0 - local.get $4 + local.get $3 i32.const -6 i32.gt_s select if (result i32) i32.const 2 - local.get $4 + local.get $3 i32.sub - local.tee $4 + local.tee $3 i32.const 1 i32.shl i32.const 3472 @@ -3424,7 +3423,7 @@ local.set $1 loop $for-loop|1 local.get $1 - local.get $4 + local.get $3 i32.lt_s if local.get $1 @@ -3442,7 +3441,7 @@ end end local.get $0 - local.get $4 + local.get $3 i32.add else local.get $0 @@ -3452,14 +3451,13 @@ i32.const 3474 i32.const 101 i32.store16 - i32.const 3476 - local.get $4 + local.get $3 i32.const 1 i32.sub local.tee $0 i32.const 0 i32.lt_s - local.tee $1 + local.tee $3 if i32.const 0 local.get $0 @@ -3467,53 +3465,56 @@ local.set $0 end local.get $0 - local.get $0 - local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end + local.set $1 + i32.const 3476 + local.get $0 + local.get $1 i32.const 1 i32.add local.tee $0 @@ -3521,7 +3522,7 @@ i32.const 3476 i32.const 45 i32.const 43 - local.get $1 + local.get $3 select i32.store16 local.get $0 @@ -3547,16 +3548,16 @@ i32.const 101 i32.store16 offset=2 local.get $1 - local.tee $3 + local.tee $2 i32.const 4 i32.add - local.get $4 + local.get $3 i32.const 1 i32.sub local.tee $1 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $1 @@ -3564,61 +3565,63 @@ local.set $1 end local.get $1 - local.get $1 - local.tee $2 + local.tee $3 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $3 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $3 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $3 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $3 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $3 i32.const 100000000 i32.ge_u i32.add end end + local.set $3 + local.get $1 + local.get $3 i32.const 1 i32.add local.tee $1 call $~lib/util/number/utoa32_dec_lut - local.get $3 + local.get $2 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select i32.store16 offset=4 local.get $0 @@ -3690,15 +3693,16 @@ (local $3 i64) (local $4 i64) (local $5 i64) + (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 4644 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3742,7 +3746,7 @@ global.get $~lib/memory/__stack_pointer i32.const 4644 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -3786,7 +3790,7 @@ global.get $~lib/memory/__stack_pointer i32.const 4644 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -3799,36 +3803,36 @@ i32.load16_s global.set $~lib/util/number/_exp_pow global.get $~lib/util/number/_frc_pow - local.tee $2 + local.tee $3 i64.const 4294967295 i64.and - local.tee $3 + local.tee $4 i64.const 31 i64.shl + local.tee $2 local.set $5 - local.get $2 + local.get $3 i64.const 32 i64.shr_u - local.tee $2 - i64.const 31 - i64.shl - local.get $3 + local.tee $3 i64.const 31 i64.shl - local.get $3 + local.tee $6 + local.get $4 i64.const 10 i64.shl i64.const 32 i64.shr_u + local.get $2 i64.add - local.tee $4 + local.tee $2 i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $2 i64.const 4294967295 i64.and - local.get $2 + local.get $3 i64.const 10 i64.shl i64.add @@ -3839,13 +3843,11 @@ i64.add i64.const 1 i64.sub - local.set $4 - local.get $2 - i64.const 31 - i64.shl + local.set $2 local.get $5 i64.const 32 i64.shr_u + local.get $6 i64.add local.get $5 i64.const 4294967295 @@ -3855,31 +3857,31 @@ i64.const 32 i64.shr_u i64.add - local.get $4 + local.get $2 global.get $~lib/util/number/_exp_pow i32.const 1 i32.add - local.get $4 local.get $2 + local.get $3 i64.const 2147483647 i64.mul - local.get $3 + local.get $4 i64.const 2147483647 i64.mul - local.get $3 + local.get $4 i64.const 4294966784 i64.mul i64.const 32 i64.shr_u i64.add - local.tee $3 + local.tee $4 i64.const 32 i64.shr_u i64.add - local.get $2 + local.get $3 i64.const 4294966784 i64.mul - local.get $3 + local.get $4 i64.const 4294967295 i64.and i64.add diff --git a/tests/compiler/resolve-unary.optimized.wat b/tests/compiler/resolve-unary.optimized.wat index 02ff1cc319..8856bdb4eb 100644 --- a/tests/compiler/resolve-unary.optimized.wat +++ b/tests/compiler/resolve-unary.optimized.wat @@ -180,7 +180,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -188,10 +187,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 20156 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -205,7 +204,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -230,9 +229,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -240,11 +238,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 3728 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -253,7 +250,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 3732 @@ -268,16 +265,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -285,11 +282,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1559,8 +1556,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1771,25 +1768,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/util/number/itoa32 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3772 - i32.lt_s - if - i32.const 20176 - i32.const 20224 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3772 + i32.lt_s + if + i32.const 20176 + i32.const 20224 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32 local.get $0 i32.eqz if @@ -1798,9 +1795,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1248 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end - global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 i32.sub @@ -1811,47 +1808,49 @@ local.tee $3 select local.tee $0 - local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -1977,8 +1976,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $1 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2134,12 +2133,11 @@ (func $start:resolve-unary (local $0 i32) (local $1 i32) - (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 3772 i32.lt_s @@ -2282,17 +2280,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 3424 i32.const 3392 global.get $resolve-unary/a select - local.tee $0 + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 3424 i32.store offset=4 - local.get $0 + local.get $1 i32.const 3424 call $~lib/string/String.__eq i32.eqz @@ -2305,17 +2303,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 3392 i32.const 3424 global.get $resolve-unary/a select - local.tee $0 + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 3392 i32.store offset=4 - local.get $0 + local.get $1 i32.const 3392 call $~lib/string/String.__eq i32.eqz @@ -2430,16 +2428,15 @@ local.get $0 global.set $resolve-unary/foo global.get $~lib/memory/__stack_pointer - local.tee $1 global.get $resolve-unary/foo i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3488 i32.store offset=4 i32.const 3488 @@ -2455,16 +2452,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $resolve-unary/foo i32.store offset=12 - local.get $1 + local.get $0 i32.const 3520 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3520 i32.store - local.get $1 + local.get $0 i32.const 3520 i32.store offset=4 i32.const 3520 @@ -2480,13 +2477,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $resolve-unary/foo local.tee $0 + global.get $resolve-unary/foo + local.tee $1 i32.store offset=4 - local.get $0 - global.set $resolve-unary/foo local.get $1 + global.set $resolve-unary/foo + local.get $0 global.get $resolve-unary/foo local.tee $0 i32.store @@ -2502,13 +2499,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $resolve-unary/foo local.tee $0 + global.get $resolve-unary/foo + local.tee $1 i32.store offset=4 - local.get $0 - global.set $resolve-unary/foo local.get $1 + global.set $resolve-unary/foo + local.get $0 global.get $resolve-unary/foo local.tee $0 i32.store @@ -2524,16 +2521,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $resolve-unary/foo i32.store offset=12 - local.get $1 + local.get $0 i32.const 3552 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3552 i32.store - local.get $1 + local.get $0 i32.const 3552 i32.store offset=4 i32.const 3552 @@ -2549,16 +2546,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $resolve-unary/foo i32.store offset=12 - local.get $1 + local.get $0 i32.const 3584 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3584 i32.store - local.get $1 + local.get $0 i32.const 3584 i32.store offset=4 i32.const 3584 @@ -2640,16 +2637,15 @@ local.get $0 global.set $resolve-unary/bar global.get $~lib/memory/__stack_pointer - local.tee $1 global.get $resolve-unary/bar i32.store offset=12 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store offset=8 - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 3616 i32.store offset=4 i32.const 3616 @@ -2665,16 +2661,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $resolve-unary/bar i32.store offset=12 - local.get $1 + local.get $0 i32.const 3648 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3648 i32.store - local.get $1 + local.get $0 i32.const 3648 i32.store offset=4 i32.const 3648 @@ -2690,21 +2686,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.tee $2 - global.get $resolve-unary/bar local.tee $0 + global.get $resolve-unary/bar + local.tee $1 i32.store - local.get $2 local.get $0 - i32.store offset=12 local.get $1 + i32.store offset=12 + local.get $0 i32.const 3680 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3680 i32.store - local.get $1 + local.get $0 i32.const 3680 i32.store offset=4 i32.const 3680 @@ -2720,21 +2715,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.tee $2 - global.get $resolve-unary/bar local.tee $0 + global.get $resolve-unary/bar + local.tee $1 i32.store - local.get $2 local.get $0 - i32.store offset=12 local.get $1 + i32.store offset=12 + local.get $0 i32.const 3712 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3712 i32.store - local.get $1 + local.get $0 i32.const 3712 i32.store offset=4 i32.const 3712 diff --git a/tests/compiler/rt/finalize.optimized.wat b/tests/compiler/rt/finalize.optimized.wat index 296e0db39e..520c7591bc 100644 --- a/tests/compiler/rt/finalize.optimized.wat +++ b/tests/compiler/rt/finalize.optimized.wat @@ -123,7 +123,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -131,10 +130,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17908 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -148,7 +147,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -173,9 +172,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -183,11 +181,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -196,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -211,16 +208,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -228,11 +225,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1420,8 +1417,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/rt/instanceof.optimized.wat b/tests/compiler/rt/instanceof.optimized.wat index 859ab38c35..6b303de27f 100644 --- a/tests/compiler/rt/instanceof.optimized.wat +++ b/tests/compiler/rt/instanceof.optimized.wat @@ -163,7 +163,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -171,10 +170,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17940 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -188,7 +187,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -213,9 +212,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -223,11 +221,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1504 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -236,7 +233,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1508 @@ -251,16 +248,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -268,11 +265,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1252,17 +1249,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1275,16 +1272,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1292,15 +1289,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1327,12 +1324,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1342,7 +1339,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1351,19 +1348,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1389,26 +1386,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total diff --git a/tests/compiler/rt/runtime-incremental-export.optimized.wat b/tests/compiler/rt/runtime-incremental-export.optimized.wat index 4ebea25e78..1fe41540de 100644 --- a/tests/compiler/rt/runtime-incremental-export.optimized.wat +++ b/tests/compiler/rt/runtime-incremental-export.optimized.wat @@ -168,21 +168,19 @@ local.get $0 call $~lib/rt/itcms/Object#unlink global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1568 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -191,7 +189,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1572 @@ -206,28 +204,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1516,8 +1514,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -1813,8 +1811,8 @@ i32.load offset=8 local.set $1 local.get $0 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/rt/runtime-minimal-export.optimized.wat b/tests/compiler/rt/runtime-minimal-export.optimized.wat index b40a5acab2..a2c0f41a79 100644 --- a/tests/compiler/rt/runtime-minimal-export.optimized.wat +++ b/tests/compiler/rt/runtime-minimal-export.optimized.wat @@ -777,15 +777,15 @@ local.get $0 i32.const 16 i32.add - local.set $2 + local.set $3 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 - local.get $2 + local.tee $5 + local.get $3 i32.const 1073741820 i32.gt_u if @@ -796,13 +796,13 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $2 + local.get $3 i32.const 19 i32.add i32.const -16 @@ -810,34 +810,34 @@ i32.const 4 i32.sub end - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $2 i32.eqz if memory.size - local.tee $5 - local.get $2 + local.tee $4 + local.get $3 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $2 + local.get $3 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $2 + local.get $3 i32.add else - local.get $2 + local.get $3 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -851,16 +851,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 - local.get $3 - local.get $5 + local.tee $2 + local.get $2 + local.get $4 i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $2 memory.grow i32.const 0 i32.lt_s @@ -868,18 +868,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 - local.get $2 + local.get $5 + local.get $3 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $2 i32.eqz if i32.const 0 @@ -890,11 +890,11 @@ unreachable end end - local.get $4 + local.get $2 i32.load i32.const -4 i32.and - local.get $2 + local.get $3 i32.lt_u if i32.const 0 @@ -904,15 +904,12 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $2 call $~lib/rt/tlsf/removeBlock local.get $2 - local.set $3 - local.get $4 - local.tee $2 i32.load - local.set $5 + local.set $4 local.get $3 i32.const 4 i32.add @@ -926,17 +923,17 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and local.get $3 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if local.get $2 - local.get $5 + local.get $4 i32.const 2 i32.and local.get $3 @@ -948,18 +945,18 @@ i32.add i32.add local.tee $3 - local.get $4 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 + local.get $5 local.get $3 call $~lib/rt/tlsf/insertBlock else local.get $2 - local.get $5 + local.get $4 i32.const -2 i32.and i32.store @@ -989,8 +986,8 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $0 global.get $~lib/rt/tcms/white + local.get $0 i32.or i32.store offset=4 local.get $2 @@ -1154,8 +1151,8 @@ i32.load offset=8 local.set $1 local.get $0 - local.get $2 global.get $~lib/rt/tcms/white + local.get $2 i32.or i32.store offset=4 local.get $0 @@ -1405,9 +1402,9 @@ i32.load offset=8 local.set $1 local.get $0 - local.get $2 global.get $~lib/rt/tcms/white i32.eqz + local.get $2 i32.or i32.store offset=4 local.get $0 diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 67327f682d..7fab83c9f5 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -2,10 +2,10 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $none_=>_none (func)) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) @@ -1727,12 +1727,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1743,13 +1750,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1757,32 +1764,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1798,16 +1805,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1815,7 +1822,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -1823,10 +1830,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1837,11 +1844,11 @@ unreachable end end - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -1851,14 +1858,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.tee $3 + local.get $1 i32.load local.set $2 - local.get $1 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -1874,44 +1880,44 @@ local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $3 + local.get $1 local.get $2 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $3 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $3 + local.get $1 local.get $2 i32.const -2 i32.and i32.store - local.get $3 + local.get $1 i32.const 4 i32.add - local.get $3 + local.get $1 i32.load i32.const -4 i32.and @@ -1923,7 +1929,9 @@ i32.and i32.store end - local.get $3 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -1982,10 +1990,10 @@ (local $4 i32) (local $5 i32) i32.const -1 - local.set $3 - i32.const -1 local.set $2 i32.const -1 + local.set $3 + i32.const -1 local.set $4 block $break|0 block $case4|0 @@ -2010,14 +2018,14 @@ end local.get $1 i32.load16_u offset=4 - local.tee $2 + local.tee $3 i32.const 128 i32.ge_u br_if $break|0 end local.get $1 i32.load16_u offset=2 - local.tee $3 + local.tee $2 i32.const 128 i32.ge_u br_if $break|0 @@ -2032,12 +2040,12 @@ i32.const 1144 i32.store i32.const 1140 - local.get $3 + local.get $2 i32.const -1 i32.ne i32.const 1 i32.add - local.get $2 + local.get $3 i32.const -1 i32.ne i32.add @@ -2047,12 +2055,12 @@ i32.add i32.store i32.const 1144 - local.get $3 + local.get $2 i32.const 8 i32.shl local.get $5 i32.or - local.get $2 + local.get $3 i32.const 16 i32.shl i32.or @@ -2159,18 +2167,8 @@ end end local.get $3 + call $~lib/rt/tlsf/__alloc local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $3 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $3 local.get $1 i32.const 20 i32.sub @@ -2182,9 +2180,9 @@ global.set $~argumentsLength local.get $1 local.get $4 - local.get $3 - call $~lib/string/String.UTF8.encodeUnsafe@varargs local.get $2 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $3 i32.ne if i32.const 0 @@ -2195,10 +2193,10 @@ unreachable end i32.const 1136 - local.get $3 + local.get $2 i32.store i32.const 1140 - local.get $2 + local.get $3 i32.store local.get $0 i32.const 1136 @@ -2206,7 +2204,7 @@ i32.const 1144 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $3 + local.get $2 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2307,7 +2305,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -2315,10 +2312,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 24356 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -2332,7 +2329,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -2357,21 +2354,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 7936 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 5120 i32.const 5184 @@ -2380,7 +2375,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 7940 @@ -2395,28 +2390,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -2885,13 +2880,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2899,15 +2894,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2919,8 +2908,8 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 @@ -3252,29 +3241,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i32.const 0 i32.store offset=8 - local.get $4 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3282,13 +3271,13 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $8 local.get $0 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $8 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 @@ -3296,26 +3285,26 @@ local.get $8 i32.ne if - local.get $4 + local.get $8 i32.load offset=16 i32.const 1 i32.and i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $8 i32.load - local.tee $5 + local.tee $7 i32.store offset=8 local.get $2 - local.get $5 + local.get $7 i32.store local.get $2 - local.get $4 + local.get $8 i64.load offset=8 i64.store offset=8 local.get $2 - local.get $5 + local.get $7 call $~lib/util/hash/HASH<~lib/string/String> local.get $1 i32.and @@ -3323,10 +3312,10 @@ i32.shl local.get $6 i32.add - local.tee $5 + local.tee $7 i32.load i32.store offset=16 - local.get $5 + local.get $7 local.get $2 i32.store local.get $2 @@ -3334,10 +3323,10 @@ i32.add local.set $2 end - local.get $4 + local.get $8 i32.const 24 i32.add - local.set $4 + local.set $8 br $while-continue|0 end end @@ -3359,7 +3348,7 @@ i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -3479,25 +3468,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/util/number/utoa64 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + if + i32.const 24384 + i32.const 24432 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 local.get $0 i64.eqz if @@ -3506,6 +3495,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 6000 + local.set $2 br $__inlined_func$~lib/util/number/utoa64 end local.get $0 @@ -3515,54 +3505,54 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $1 local.tee $3 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 1 @@ -3570,8 +3560,8 @@ local.tee $2 i32.store local.get $2 - local.get $1 local.get $3 + local.get $1 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -3625,7 +3615,7 @@ i32.add end end - local.tee $3 + local.tee $1 i32.const 1 i32.shl i32.const 1 @@ -3637,7 +3627,7 @@ i64.const 100000000 i64.ge_u if - local.get $3 + local.get $1 i32.const 4 i32.sub local.tee $1 @@ -3654,10 +3644,10 @@ i64.mul i64.sub i32.wrap_i64 - local.tee $4 + local.tee $3 i32.const 10000 i32.rem_u - local.tee $3 + local.tee $4 i32.const 100 i32.div_u i32.const 2 @@ -3665,7 +3655,7 @@ i32.const 6012 i32.add i64.load32_u - local.get $3 + local.get $4 i32.const 100 i32.rem_u i32.const 2 @@ -3680,15 +3670,15 @@ local.get $1 i32.const 4 i32.sub - local.tee $3 + local.tee $1 i32.const 1 i32.shl local.get $2 i32.add - local.get $4 + local.get $3 i32.const 10000 i32.div_u - local.tee $1 + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -3696,7 +3686,7 @@ i32.const 6012 i32.add i64.load32_u - local.get $1 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -3714,15 +3704,15 @@ local.get $2 local.get $0 i32.wrap_i64 - local.get $3 + local.get $1 call $~lib/util/number/utoa32_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -3793,426 +3783,106 @@ unreachable ) (func $~start - (local $0 i32) - (local $1 i32) - block $folding-inner0 - global.get $~started - if - return - end - i32.const 1 - global.set $~started - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 - i32.store - i32.const 0 - i32.const 1056 - call $~lib/console/console.assert - global.get $~lib/memory/__stack_pointer - i32.const 4496 - i32.store - i32.const 1 - i32.const 4496 - call $~lib/console/console.assert - global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store offset=4 - i32.const 4528 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4576 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4624 - i32.store - i32.const 1 - i32.const 4624 - call $~lib/process/writeString + global.get $~started + if + return + end + i32.const 1 + global.set $~started + call $start:std-wasi/console + ) + (func $~lib/console/console.assert (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + if + i32.const 24384 + i32.const 24432 i32.const 1 - i32.const 4576 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4672 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4720 + i32.const 1088 i32.store - i32.const 1 - i32.const 4720 + i32.const 2 + i32.const 1088 call $~lib/process/writeString - i32.const 1 - i32.const 4672 + i32.const 2 + local.get $1 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4464 i32.store - i32.const 1 + i32.const 2 i32.const 4464 call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4752 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4800 - i32.store - i32.const 1 - i32.const 4800 - call $~lib/process/writeString - i32.const 1 - i32.const 4752 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/console/console.log (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + if + i32.const 24384 + i32.const 24432 i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4848 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4896 - i32.store i32.const 1 - i32.const 4896 - call $~lib/process/writeString - i32.const 1 - i32.const 4848 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 24356 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 5044 - i32.const 5040 - i32.store - i32.const 5048 - i32.const 5040 - i32.store - i32.const 5040 - global.set $~lib/rt/itcms/pinSpace - i32.const 5076 - i32.const 5072 - i32.store - i32.const 5080 - i32.const 5072 - i32.store - i32.const 5072 - global.set $~lib/rt/itcms/toSpace - i32.const 5220 - i32.const 5216 - i32.store - i32.const 5224 - i32.const 5216 - i32.store - i32.const 5216 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 24 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $0 - i32.const 3 - i32.store offset=4 - local.get $0 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $~lib/console/timers - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - i32.const 4944 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - i32.const 4944 - call $~lib/console/console.timeLog - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - i32.const 4944 - call $~lib/console/console.timeEnd - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/console/console.timeLog - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/console/console.timeEnd - global.get $~lib/memory/__stack_pointer - i32.const 7776 - i32.store offset=4 - i32.const 7776 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 7776 - i32.store offset=4 - i32.const 7776 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 7824 - i32.store offset=4 - i32.const 7824 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7856 - i32.store offset=4 - i32.const 7856 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7888 - i32.store offset=4 - i32.const 7888 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7920 - i32.store offset=4 - i32.const 7920 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - ) - (func $~lib/console/console.assert (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - i32.const 2 - i32.const 1088 - call $~lib/process/writeString - i32.const 2 - local.get $1 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 2 - i32.const 4464 - call $~lib/process/writeString - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.log (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map<~lib/string/String,u64>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + local.get $0 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store + i32.const 1 + i32.const 4464 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map<~lib/string/String,u64>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + if + i32.const 24384 + i32.const 24432 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4246,26 +3916,26 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.load - local.tee $0 + local.tee $4 i32.store block $__inlined_func$~lib/string/String.__eq (result i32) i32.const 1 - local.get $0 local.get $1 local.tee $2 + local.get $4 i32.eq br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 local.get $2 i32.const 0 - local.get $0 + local.get $4 select i32.eqz br_if $__inlined_func$~lib/string/String.__eq drop i32.const 0 - local.get $0 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -4282,8 +3952,7 @@ br_if $__inlined_func$~lib/string/String.__eq drop block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $4 + local.get $4 i32.const 7 i32.and local.get $2 @@ -4331,16 +4000,16 @@ local.set $0 local.get $3 if - local.get $4 - i32.load16_u - local.tee $3 local.get $2 i32.load16_u + local.tee $3 + local.get $4 + i32.load16_u local.tee $7 i32.ne if - local.get $3 local.get $7 + local.get $3 i32.sub br $__inlined_func$~lib/util/string/compareImpl end @@ -4384,14 +4053,14 @@ (func $~lib/console/console.time (param $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i64) + (local $3 i64) + (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 7972 i32.lt_s @@ -4402,9 +4071,9 @@ i64.store local.get $1 global.get $~lib/console/timers - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 local.get $0 local.get $0 call $~lib/util/hash/HASH<~lib/string/String> @@ -4436,7 +4105,7 @@ local.tee $1 i32.store call $~lib/process/process.hrtime - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4452,12 +4121,12 @@ local.get $0 local.get $0 call $~lib/util/hash/HASH<~lib/string/String> - local.tee $5 + local.tee $4 call $~lib/map/Map<~lib/string/String,u64>#find local.tee $2 if local.get $2 - local.get $4 + local.get $3 i64.store offset=8 else local.get $1 @@ -4497,11 +4166,11 @@ local.get $1 local.get $1 i32.load offset=16 - local.tee $3 + local.tee $5 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $5 i32.const 24 i32.mul local.get $2 @@ -4514,7 +4183,7 @@ i32.const 1 call $~lib/rt/itcms/__link local.get $2 - local.get $4 + local.get $3 i64.store offset=8 local.get $1 local.get $1 @@ -4527,15 +4196,15 @@ i32.load local.get $1 i32.load offset=4 - local.get $5 + local.get $4 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $0 i32.load i32.store offset=16 - local.get $1 + local.get $0 local.get $2 i32.store end @@ -4721,9 +4390,9 @@ i64.store local.get $1 global.get $~lib/console/timers - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 local.get $0 local.get $0 call $~lib/util/hash/HASH<~lib/string/String> @@ -4816,6 +4485,329 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $start:std-wasi/console + (local $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 1056 + i32.store + i32.const 0 + i32.const 1056 + call $~lib/console/console.assert + global.get $~lib/memory/__stack_pointer + i32.const 4496 + i32.store + i32.const 1 + i32.const 4496 + call $~lib/console/console.assert + global.get $~lib/memory/__stack_pointer + i32.const 4528 + i32.store offset=4 + i32.const 4528 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 4576 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 4624 + i32.store + i32.const 1 + i32.const 4624 + call $~lib/process/writeString + i32.const 1 + i32.const 4576 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store + i32.const 1 + i32.const 4464 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4672 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 4720 + i32.store + i32.const 1 + i32.const 4720 + call $~lib/process/writeString + i32.const 1 + i32.const 4672 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store + i32.const 1 + i32.const 4464 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4752 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 4800 + i32.store + i32.const 1 + i32.const 4800 + call $~lib/process/writeString + i32.const 1 + i32.const 4752 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store + i32.const 1 + i32.const 4464 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4848 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 4896 + i32.store + i32.const 1 + i32.const 4896 + call $~lib/process/writeString + i32.const 1 + i32.const 4848 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store + i32.const 1 + i32.const 4464 + call $~lib/process/writeString + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 24356 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 5044 + i32.const 5040 + i32.store + i32.const 5048 + i32.const 5040 + i32.store + i32.const 5040 + global.set $~lib/rt/itcms/pinSpace + i32.const 5076 + i32.const 5072 + i32.store + i32.const 5080 + i32.const 5072 + i32.store + i32.const 5072 + global.set $~lib/rt/itcms/toSpace + i32.const 5220 + i32.const 5216 + i32.store + i32.const 5224 + i32.const 5216 + i32.store + i32.const 5216 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7972 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 24 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $0 + i32.const 3 + i32.store offset=4 + local.get $0 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $1 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + local.get $0 + i32.const 4 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $~lib/console/timers + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + i32.const 4944 + call $~lib/console/console.time + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + i32.const 4944 + call $~lib/console/console.timeLog + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + i32.const 4944 + call $~lib/console/console.timeEnd + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/console/console.timeLog + global.get $~lib/memory/__stack_pointer + i32.const 7728 + i32.store offset=4 + i32.const 7728 + call $~lib/console/console.timeEnd + global.get $~lib/memory/__stack_pointer + i32.const 7776 + i32.store offset=4 + i32.const 7776 + call $~lib/console/console.time + global.get $~lib/memory/__stack_pointer + i32.const 7776 + i32.store offset=4 + i32.const 7776 + call $~lib/console/console.time + global.get $~lib/memory/__stack_pointer + i32.const 7824 + i32.store offset=4 + i32.const 7824 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 7856 + i32.store offset=4 + i32.const 7856 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 7888 + i32.store offset=4 + i32.const 7888 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 7920 + i32.store offset=4 + i32.const 7920 + call $~lib/console/console.log + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 24384 + i32.const 24432 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + ) (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index 6e07fd8c9a..cbefac38cb 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -1,7 +1,7 @@ (module (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) @@ -744,7 +744,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -752,10 +751,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 23284 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -769,7 +768,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -794,21 +793,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 6864 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1536 @@ -817,7 +814,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 6868 @@ -832,28 +829,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1873,12 +1870,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1889,13 +1893,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1903,32 +1907,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1944,16 +1948,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1961,7 +1965,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -1969,10 +1973,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1983,11 +1987,11 @@ unreachable end end - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -1997,14 +2001,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.tee $3 + local.get $1 i32.load local.set $2 - local.get $1 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -2020,44 +2023,44 @@ local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $3 + local.get $1 local.get $2 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $3 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $3 + local.get $1 local.get $2 i32.const -2 i32.and i32.store - local.get $3 + local.get $1 i32.const 4 i32.add - local.get $3 + local.get $1 i32.load i32.const -4 i32.and @@ -2069,7 +2072,9 @@ i32.and i32.store end - local.get $3 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (local $2 i32) @@ -2295,13 +2300,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2309,15 +2314,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2329,8 +2328,8 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 @@ -3849,27 +3848,31 @@ (local $4 i32) (local $5 i32) (local $6 i32) + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $2 - local.get $0 - i32.load offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 0 i32.lt_s if @@ -3878,16 +3881,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $6 + local.get $2 i32.eqz if block $__inlined_func$~lib/util/number/utoa32 (result i32) - local.get $2 + local.get $3 i32.load8_u - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3899,7 +3903,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -3910,54 +3914,53 @@ br $__inlined_func$~lib/util/number/utoa32 end global.get $~lib/memory/__stack_pointer - local.get $0 - local.tee $2 + local.get $1 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add end end - local.tee $5 + local.tee $0 i32.const 1 i32.shl i32.const 1 @@ -3965,8 +3968,8 @@ local.tee $2 i32.store local.get $2 + local.get $1 local.get $0 - local.get $5 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3974,143 +3977,145 @@ global.set $~lib/memory/__stack_pointer local.get $2 end - local.set $2 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.const 6652 i32.load i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 10 i32.add i32.mul i32.const 10 i32.add - local.tee $5 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store loop $for-loop|0 - local.get $4 - local.get $6 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add - local.get $2 - local.get $4 + local.get $3 + local.get $5 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 - local.get $3 + local.set $0 + local.get $4 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add i32.const 6656 - local.get $3 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 - local.get $3 + local.get $0 + local.get $4 i32.add - local.set $1 + local.set $0 end - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 + local.set $5 br $for-loop|0 end end - local.get $5 - local.get $1 + local.get $6 + local.get $0 i32.const 1 i32.shl - local.get $0 + local.get $1 i32.add local.get $2 - local.get $6 + local.get $3 i32.add i32.load8_u call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add local.tee $2 i32.gt_s if - block $__inlined_func$~lib/string/String#substring (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - local.get $3 - i32.const 0 - i32.gt_s - select - local.tee $4 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 + local.get $1 + local.set $0 + local.get $2 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $2 + select + local.tee $3 + local.get $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $1 + local.get $2 + local.get $1 + local.get $2 + i32.lt_s + select + local.tee $1 + local.get $1 + local.get $3 + i32.gt_s + select + i32.const 1 + i32.shl + local.set $4 + block $__inlined_func$~lib/string/String#substring local.get $3 - local.get $2 + local.get $1 + local.get $1 local.get $3 i32.lt_s select - local.tee $2 - local.get $2 - local.get $4 - i32.gt_s - select i32.const 1 i32.shl - local.set $5 + local.tee $1 local.get $4 - local.get $2 - local.get $2 - local.get $4 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $4 - local.get $5 i32.sub - local.tee $2 + local.tee $3 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -4118,58 +4123,59 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 + local.set $0 br $__inlined_func$~lib/string/String#substring end i32.const 0 - local.get $3 + local.get $2 i32.const 1 i32.shl - local.get $4 + local.get $1 i32.eq - local.get $5 + local.get $4 select if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 br $__inlined_func$~lib/string/String#substring end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store - local.get $3 + local.get $1 local.get $0 - local.get $5 + local.get $4 i32.add - local.get $2 + local.get $3 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 + local.set $0 end - local.set $2 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $0 return end i32.const 23312 @@ -4183,25 +4189,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/string/String#concat (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - if - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 6900 + i32.lt_s + if + i32.const 23312 + i32.const 23360 + i32.const 1 + i32.const 1 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/string/String#concat i32.const 4764 i32.load i32.const 1 @@ -4227,6 +4233,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 4848 + local.set $1 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer @@ -4249,8 +4256,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $1 ) (func $~lib/process/writeString (param $0 i32) (local $1 i32) @@ -4436,17 +4443,7 @@ end end local.get $2 - local.set $1 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $1 local.get $0 i32.const 20 @@ -4617,11 +4614,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 6900 i32.lt_s @@ -4801,15 +4798,15 @@ local.get $0 local.get $1 call $~lib/typedarray/Uint8Array#__get - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std-wasi/crypto/b1 - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 local.get $1 call $~lib/typedarray/Uint8Array#__get - local.get $2 + local.get $0 i32.ne if i32.const 0 @@ -4842,15 +4839,15 @@ i32.const 4 i32.add call $~lib/typedarray/Uint8Array#__get - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std-wasi/crypto/b2 - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 local.get $1 call $~lib/typedarray/Uint8Array#__get - local.get $2 + local.get $0 i32.ne if i32.const 0 @@ -4882,7 +4879,6 @@ ) (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) - (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -4906,7 +4902,7 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $4 + local.tee $3 i32.gt_u if i32.const 1472 @@ -4924,7 +4920,7 @@ i32.const -1 i32.eq if (result i32) - local.get $4 + local.get $3 local.get $1 i32.sub else @@ -4935,12 +4931,11 @@ call $~lib/wasi/index/abort unreachable end - local.set $3 + local.set $2 else - local.get $4 - local.get $2 - local.tee $3 + local.get $3 local.get $1 + local.get $2 i32.add i32.lt_s if @@ -4956,18 +4951,18 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $0 call $~lib/rt/itcms/__link - local.get $2 local.get $3 - i32.store offset=8 local.get $2 + i32.store offset=8 + local.get $3 local.get $0 local.get $1 i32.add @@ -4976,7 +4971,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) (func $~lib/typedarray/Uint8Array#slice (param $0 i32) (result i32) (local $1 i32) @@ -4984,32 +4979,33 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 6900 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store i32.const 0 local.get $0 - local.tee $2 + local.tee $1 i32.load offset=8 local.tee $0 local.get $0 i32.const 0 i32.gt_s select - local.set $4 - local.get $3 + local.set $5 local.get $0 - local.get $4 + local.get $5 i32.sub local.tee $0 i32.const 0 @@ -5017,9 +5013,9 @@ i32.const 0 i32.gt_s select - local.tee $5 - local.set $1 - local.get $3 + local.tee $6 + local.set $2 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5071,7 +5067,7 @@ local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $2 i32.const 1073741820 i32.gt_u if @@ -5083,13 +5079,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 0 call $~lib/rt/itcms/__new local.tee $3 i32.store offset=4 local.get $3 - local.get $1 + local.get $2 call $~lib/memory/memory.fill local.get $0 local.get $3 @@ -5101,7 +5097,7 @@ local.get $3 i32.store offset=4 local.get $0 - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -5113,15 +5109,16 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 local.get $0 i32.store local.get $0 i32.load offset=4 - local.get $4 - local.get $2 + local.get $5 + local.get $1 i32.load offset=4 i32.add - local.get $5 + local.get $6 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 2c2374994f..86d83cbaae 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -1713,12 +1713,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1729,13 +1736,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1743,32 +1750,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1784,16 +1791,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1801,7 +1808,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -1809,10 +1816,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1823,11 +1830,11 @@ unreachable end end - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -1837,14 +1844,13 @@ call $~lib/wasi/index/abort unreachable end - local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.tee $3 + local.get $1 i32.load local.set $2 - local.get $1 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -1860,44 +1866,44 @@ local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $3 + local.get $1 local.get $2 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $3 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $3 + local.get $1 local.get $2 i32.const -2 i32.and i32.store - local.get $3 + local.get $1 i32.const 4 i32.add - local.get $3 + local.get $1 i32.load i32.const -4 i32.and @@ -1909,7 +1915,9 @@ i32.and i32.store end - local.get $3 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) @@ -2146,17 +2154,7 @@ end end local.get $2 - local.set $1 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $1 local.get $0 i32.const 20 @@ -2324,7 +2322,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -2332,10 +2329,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 23788 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -2349,7 +2346,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -2374,21 +2371,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 7360 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 4784 i32.const 4848 @@ -2397,7 +2392,7 @@ call $~lib/wasi/index/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 7364 @@ -2412,28 +2407,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -2902,13 +2897,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2916,15 +2911,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2936,8 +2925,8 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 @@ -4825,12 +4814,11 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 7404 i32.lt_s @@ -4845,11 +4833,11 @@ i32.const 1088 i32.const 1092 call $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get - local.tee $3 + local.tee $0 i32.const 65535 i32.and if - local.get $3 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 87 @@ -4859,28 +4847,18 @@ end i32.const 1088 i32.load - local.tee $8 + local.tee $7 i32.const 2 i32.shl local.tee $0 i32.const 1092 i32.load i32.add - local.tee $9 - local.set $3 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $3 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $3 + local.tee $8 + call $~lib/rt/tlsf/__alloc + local.tee $4 local.get $0 - local.get $3 + local.get $4 i32.add call $~lib/bindings/wasi_snapshot_preview1/environ_get local.tee $0 @@ -4953,100 +4931,95 @@ local.tee $1 i32.store loop $for-loop|0 - local.get $6 - local.get $8 + local.get $5 + local.get $7 i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add i32.load local.tee $0 local.get $0 - local.get $9 + local.get $8 i32.add - local.get $3 + local.get $4 i32.sub call $~lib/string/String.UTF8.decodeUnsafe - local.tee $0 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 5168 i32.store offset=8 - block $__inlined_func$~lib/string/String#indexOf (result i32) - local.get $0 - local.set $2 - i32.const 0 + i32.const 0 + local.set $0 + block $__inlined_func$~lib/string/String#indexOf i32.const 5164 i32.load i32.const 1 i32.shr_u - local.tee $7 + local.tee $6 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf - drop i32.const -1 - local.get $2 + local.set $0 + local.get $3 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 + local.tee $2 i32.eqz br_if $__inlined_func$~lib/string/String#indexOf - drop i32.const 0 - local.get $4 - local.get $4 - i32.const 0 - i32.gt_s + local.get $2 + local.get $2 select - local.set $5 - local.get $4 - local.get $7 + local.set $0 + local.get $2 + local.get $6 i32.sub - local.set $4 - loop $for-loop|01 - local.get $4 - local.get $5 - i32.ge_s + local.set $2 + loop $for-loop|00 + local.get $0 + local.get $2 + i32.le_s if - local.get $5 - local.get $2 - local.get $5 + local.get $3 + local.get $0 i32.const 5168 - local.get $7 + local.get $6 call $~lib/util/string/compareImpl i32.eqz br_if $__inlined_func$~lib/string/String#indexOf - drop - local.get $5 + local.get $0 i32.const 1 i32.add - local.set $5 - br $for-loop|01 + local.set $0 + br $for-loop|00 end end i32.const -1 + local.set $0 end - local.tee $2 + local.get $0 i32.const -1 i32.xor if - local.get $0 + local.get $3 i32.const 0 - local.get $2 + local.get $0 call $~lib/string/String#substring - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=8 + local.get $3 local.get $0 - local.get $2 i32.const 1 i32.add i32.const 2147483647 @@ -5056,7 +5029,7 @@ local.get $0 i32.store offset=12 local.get $1 - local.get $4 + local.get $2 local.get $0 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set else @@ -5064,18 +5037,18 @@ i32.const 5200 i32.store offset=12 local.get $1 - local.get $0 + local.get $3 i32.const 5200 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set end - local.get $6 + local.get $5 i32.const 1 i32.add - local.set $6 + local.set $5 br $for-loop|0 end end - local.get $3 + local.get $4 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 16 @@ -5204,17 +5177,7 @@ i32.load i32.add local.tee $6 - local.set $1 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $1 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $1 local.get $1 local.get $5 @@ -5323,10 +5286,10 @@ global.get $~lib/memory/__stack_pointer local.tee $4 global.get $std-wasi/process/env - local.tee $1 + local.tee $3 i32.store i32.const 0 - local.set $3 + local.set $1 i32.const 0 local.set $0 local.get $4 @@ -5341,22 +5304,22 @@ local.tee $4 i64.const 0 i64.store - local.get $1 + local.get $3 i32.load offset=8 local.set $5 local.get $4 - local.get $1 + local.get $3 i32.load offset=16 local.tee $4 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $1 + local.tee $3 i32.store loop $for-loop|01 - local.get $3 + local.get $1 local.get $4 i32.lt_s if - local.get $3 + local.get $1 i32.const 12 i32.mul local.get $5 @@ -5372,7 +5335,7 @@ i32.load local.tee $6 i32.store offset=4 - local.get $1 + local.get $3 local.get $0 local.get $6 call $~lib/array/Array<~lib/string/String>#__set @@ -5381,25 +5344,25 @@ i32.add local.set $0 end - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|01 end end - local.get $1 + local.get $3 local.get $0 i32.const 0 call $~lib/array/ensureCapacity - local.get $1 + local.get $3 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 global.set $std-wasi/process/envKeys global.get $~lib/memory/__stack_pointer i32.const 5232 @@ -5485,11 +5448,11 @@ i64.const 1000000 i32.const 1088 call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $1 + local.tee $0 i32.const 65535 i32.and if - local.get $1 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 53 @@ -5522,7 +5485,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 5696 - local.set $1 + local.set $0 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 @@ -5533,7 +5496,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $0 + local.tee $1 select local.tee $2 i64.const 4294967295 @@ -5542,65 +5505,65 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.wrap_i64 - local.tee $4 - local.tee $1 + local.tee $3 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.get $0 + local.get $1 i32.add - local.tee $3 + local.tee $4 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $4 + local.get $0 local.get $3 + local.get $4 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -5654,23 +5617,23 @@ i32.add end end - local.get $0 + local.get $1 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 local.get $2 local.get $3 call $~lib/util/number/utoa64_dec_lut end - local.get $0 + local.get $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -5680,9 +5643,9 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $~lib/console/console.log global.get $~lib/memory/__stack_pointer i32.const 7280 @@ -5693,11 +5656,11 @@ i64.const 0 i32.const 1088 call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $1 + local.tee $0 i32.const 65535 i32.and if - local.get $1 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 59 @@ -5739,47 +5702,47 @@ local.get $2 i32.wrap_i64 local.tee $3 - local.tee $1 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add @@ -5879,31 +5842,31 @@ call $~lib/bindings/wasi_snapshot_preview1/proc_exit i32.const 0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 - local.set $0 + local.set $1 i32.const 1088 - local.get $1 + local.get $0 i32.store i32.const 1092 - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 1088 i32.const 1 i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_read - local.tee $1 + local.tee $0 i32.const 65535 i32.and if - local.get $1 + local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 i32.const 142 diff --git a/tests/compiler/std/array-access.optimized.wat b/tests/compiler/std/array-access.optimized.wat index b72350e478..2f8c5a787e 100644 --- a/tests/compiler/std/array-access.optimized.wat +++ b/tests/compiler/std/array-access.optimized.wat @@ -187,11 +187,11 @@ ) (func $export:std/array-access/i32ArrayArrayElementAccess (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1308 i32.lt_s @@ -219,7 +219,6 @@ local.get $0 i32.store local.get $0 - local.tee $1 i32.load offset=12 i32.const 1 i32.le_u @@ -231,7 +230,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 i32.load offset=4 global.get $~lib/memory/__stack_pointer @@ -253,11 +252,11 @@ ) (func $export:std/array-access/stringArrayPropertyAccess (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1308 i32.lt_s @@ -309,11 +308,11 @@ ) (func $export:std/array-access/stringArrayMethodCall (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1308 i32.lt_s @@ -364,11 +363,11 @@ ) (func $export:std/array-access/stringArrayArrayPropertyAccess (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1308 i32.lt_s @@ -427,11 +426,11 @@ ) (func $export:std/array-access/stringArrayArrayMethodCall (param $0 i32) (result i32) (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1308 i32.lt_s diff --git a/tests/compiler/std/array-literal.optimized.wat b/tests/compiler/std/array-literal.optimized.wat index 9548a50953..2d1c9258ee 100644 --- a/tests/compiler/std/array-literal.optimized.wat +++ b/tests/compiler/std/array-literal.optimized.wat @@ -199,7 +199,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -207,10 +206,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18252 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -224,7 +223,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -249,21 +248,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1792 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1200 i32.const 1664 @@ -272,7 +269,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -287,28 +284,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1597,8 +1594,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 257011362e..489be304c8 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1,12 +1,12 @@ (module (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_none (func (param i32 i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) @@ -810,7 +810,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -818,10 +817,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 31980 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -835,7 +834,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -860,21 +859,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 15216 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1344 i32.const 1408 @@ -883,7 +880,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 15220 @@ -898,28 +895,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1939,12 +1936,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1955,13 +1959,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1969,32 +1973,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -2010,16 +2014,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -2027,7 +2031,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -2035,10 +2039,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -2049,11 +2053,11 @@ unreachable end end - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -2063,14 +2067,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.tee $3 + local.get $1 i32.load local.set $2 - local.get $1 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -2086,44 +2089,44 @@ local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $3 + local.get $1 local.get $2 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $3 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $3 + local.get $1 local.get $2 i32.const -2 i32.and i32.store - local.get $3 + local.get $1 i32.const 4 i32.add - local.get $3 + local.get $1 i32.load i32.const -4 i32.and @@ -2135,7 +2138,9 @@ i32.and i32.store end - local.get $3 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2376,13 +2381,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2390,15 +2395,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2410,8 +2409,8 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 @@ -4031,88 +4030,81 @@ i32.store offset=12 local.get $2 ) - (func $~lib/util/bytes/REVERSE (param $0 i32) (param $1 i32) + (func $~lib/array/Array#reverse (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - local.get $1 + (local $6 i64) + (local $7 i64) + (local $8 i32) + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + local.tee $2 i32.const 1 i32.gt_u if - local.get $1 + local.get $2 i32.const 1 i32.shr_u - local.set $7 - local.get $1 + local.set $8 + local.get $2 i32.const 8 i32.sub - local.set $4 + local.set $3 loop $while-continue|0 - local.get $7 - local.get $2 + local.get $8 + local.get $1 i32.const 7 i32.add i32.gt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $5 i32.add - local.tee $5 + local.tee $4 i64.load - local.tee $3 + local.tee $6 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $3 + local.get $6 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $3 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and + local.set $6 + local.get $4 local.get $3 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - local.set $8 local.get $5 - local.get $0 - local.get $4 i32.add - local.get $2 + local.get $1 i32.sub - local.tee $6 + local.tee $4 i64.load - local.tee $3 + local.tee $7 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $3 + local.get $7 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $3 + local.tee $7 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $3 + local.get $7 i64.const 281470681808895 i64.and i64.const 16 @@ -4121,51 +4113,64 @@ i64.const 32 i64.rotr i64.store + local.get $4 local.get $6 - local.get $8 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $6 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr i64.store - local.get $2 + local.get $1 i32.const 8 i32.add - local.set $2 + local.set $1 br $while-continue|0 end end - local.get $1 + local.get $2 i32.const 1 i32.sub - local.set $6 + local.set $2 loop $while-continue|1 - local.get $2 - local.get $7 + local.get $1 + local.get $8 i32.lt_u if - local.get $0 - local.get $2 + local.get $1 + local.get $5 i32.add - local.tee $1 + local.tee $3 i32.load8_u local.set $4 - local.get $1 - local.get $6 + local.get $3 local.get $2 + local.get $1 i32.sub - local.get $0 + local.get $5 i32.add - local.tee $5 + local.tee $3 i32.load8_u i32.store8 - local.get $5 + local.get $3 local.get $4 i32.store8 - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $while-continue|1 end end end + local.get $0 ) (func $~lib/array/Array#reverse (param $0 i32) (result i32) (local $1 i32) @@ -5380,22 +5385,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $12 - local.get $5 + local.get $7 i32.add local.set $11 i32.const 0 @@ -5422,17 +5417,7 @@ local.get $1 i32.const 2 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $10 local.get $0 i32.const 0 @@ -5442,7 +5427,7 @@ local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -5457,26 +5442,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $5 local.get $13 i32.lt_s if local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $13 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $5 + local.get $6 i32.sub i32.const 1 i32.add @@ -5485,9 +5470,9 @@ i32.lt_s if local.get $0 - local.get $5 + local.get $6 local.get $13 - local.get $5 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -5501,7 +5486,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $5 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -5512,7 +5497,7 @@ i64.extend_i32_u local.tee $9 i64.div_u - local.get $5 + local.get $6 local.get $7 i32.add i32.const 1 @@ -5554,7 +5539,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $5 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns @@ -5584,12 +5569,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $5 + i32.store + local.get $6 local.set $3 local.get $7 - local.set $6 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -6289,22 +6274,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $12 - local.get $5 + local.get $7 i32.add local.set $11 i32.const 0 @@ -6331,17 +6306,7 @@ local.get $1 i32.const 3 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $10 local.get $0 i32.const 0 @@ -6351,7 +6316,7 @@ local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -6366,26 +6331,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $5 local.get $13 i32.lt_s if local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $13 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $5 + local.get $6 i32.sub i32.const 1 i32.add @@ -6394,9 +6359,9 @@ i32.lt_s if local.get $0 - local.get $5 + local.get $6 local.get $13 - local.get $5 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -6410,7 +6375,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $5 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -6421,7 +6386,7 @@ i64.extend_i32_u local.tee $9 i64.div_u - local.get $5 + local.get $6 local.get $7 i32.add i32.const 1 @@ -6463,7 +6428,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $5 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns @@ -6493,12 +6458,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $5 + i32.store + local.get $6 local.set $3 local.get $7 - local.set $6 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -7149,22 +7114,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $7 + local.get $5 i32.add local.set $11 i32.const 0 @@ -7191,17 +7146,7 @@ local.get $1 i32.const 2 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -7211,7 +7156,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -7226,26 +7171,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $7 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $7 + local.get $6 i32.sub i32.const 1 i32.add @@ -7254,9 +7199,9 @@ i32.lt_s if local.get $0 - local.get $7 + local.get $6 local.get $9 - local.get $7 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -7270,7 +7215,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -7282,7 +7227,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add @@ -7323,7 +7268,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -7353,12 +7298,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $7 + i32.store + local.get $6 local.set $3 local.get $5 - local.set $6 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -7964,22 +7909,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $7 + local.get $5 i32.add local.set $11 i32.const 0 @@ -8006,17 +7941,7 @@ local.get $1 i32.const 2 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -8026,7 +7951,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -8041,26 +7966,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $7 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $7 + local.get $6 i32.sub i32.const 1 i32.add @@ -8069,9 +7994,9 @@ i32.lt_s if local.get $0 - local.get $7 + local.get $6 local.get $9 - local.get $7 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -8085,7 +8010,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -8097,7 +8022,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add @@ -8138,7 +8063,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -8168,12 +8093,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $7 + i32.store + local.get $6 local.set $3 local.get $5 - local.set $6 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -8325,18 +8250,18 @@ i32.ge_s if global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $6 local.get $8 i32.const 2 i32.shl local.get $0 i32.add - local.tee $6 + local.tee $5 i32.load local.tee $3 i32.store - local.get $5 local.get $6 + local.get $5 i32.load offset=4 local.tee $6 i32.store offset=4 @@ -8471,7 +8396,6 @@ (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8555,16 +8479,16 @@ i32.le_s if global.get $~lib/memory/__stack_pointer - local.tee $8 + local.tee $7 local.get $6 i32.const 2 i32.shl local.get $4 i32.add i32.load - local.tee $9 + local.tee $8 i32.store - local.get $8 + local.get $7 local.get $2 i32.const 2 i32.shl @@ -8575,7 +8499,7 @@ i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $9 + local.get $8 local.get $7 local.get $5 i32.load @@ -8588,7 +8512,7 @@ i32.shl local.get $0 i32.add - local.get $9 + local.get $8 i32.store local.get $6 i32.const 1 @@ -8629,8 +8553,8 @@ (local $9 i32) (local $10 i32) (local $11 i32) - (local $12 i32) - (local $13 i64) + (local $12 i64) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -8665,23 +8589,22 @@ block $break|0 block $case1|0 local.get $1 - local.tee $4 i32.const 3 i32.ne if - local.get $4 + local.get $1 i32.const 2 i32.eq br_if $case1|0 br $break|0 end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 local.get $0 i32.load - local.tee $3 + local.tee $1 i32.store - local.get $1 + local.get $4 local.get $0 i32.load offset=4 local.tee $4 @@ -8690,23 +8613,23 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $3 - local.get $3 + local.get $1 + local.get $1 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $3 select i32.store global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $4 local.get $1 + local.get $4 + local.get $3 select - local.tee $3 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -8717,31 +8640,31 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $3 - local.get $3 + local.get $1 + local.get $1 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $3 select i32.store offset=4 local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $4 + local.get $3 select i32.store offset=8 end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 local.get $0 i32.load - local.tee $3 + local.tee $1 i32.store offset=8 - local.get $1 + local.get $4 local.get $0 i32.load offset=4 local.tee $4 @@ -8750,28 +8673,28 @@ global.set $~argumentsLength local.get $0 local.get $4 - local.get $3 - local.get $3 + local.get $1 + local.get $1 local.get $4 local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.gt_s - local.tee $1 + local.tee $2 select i32.store local.get $0 - local.get $3 - local.get $4 local.get $1 + local.get $4 + local.get $2 select i32.store offset=4 br $folding-inner0 end local.get $0 i32.const 0 - local.get $4 + local.get $1 i32.const 1 i32.sub i32.const 0 @@ -8786,24 +8709,14 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT + call $~lib/rt/tlsf/__alloc + local.tee $9 local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $10 - local.get $7 i32.add - local.set $11 + local.set $10 i32.const 0 local.set $5 loop $for-loop|1 @@ -8814,7 +8727,7 @@ local.get $5 i32.const 2 i32.shl - local.get $10 + local.get $9 i32.add i32.const -1 i32.store @@ -8828,131 +8741,119 @@ local.get $1 i32.const 2 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $12 + call $~lib/rt/tlsf/__alloc + local.set $11 local.get $0 i32.const 0 local.get $1 i32.const 1 i32.sub - local.tee $9 + local.tee $8 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $1 i32.const 1 i32.add - local.tee $1 + local.tee $5 i32.const 32 i32.lt_s if local.get $0 i32.const 0 - local.get $9 + local.get $8 i32.const 31 - local.get $9 + local.get $8 i32.const 31 i32.lt_s select - local.tee $6 - local.get $1 + local.tee $1 + local.get $5 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 - local.get $9 + local.get $1 + local.get $8 i32.lt_s if local.get $0 - local.get $6 + local.get $1 i32.const 1 i32.add - local.tee $7 - local.get $9 + local.tee $6 + local.get $8 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $7 + local.get $6 i32.sub i32.const 1 i32.add - local.tee $8 + local.tee $7 i32.const 32 i32.lt_s if local.get $0 - local.get $7 - local.get $9 - local.get $7 + local.get $6 + local.get $8 + local.get $6 i32.const 31 i32.add - local.tee $1 - local.get $1 - local.get $9 + local.tee $5 + local.get $5 + local.get $8 i32.gt_s select local.tee $5 - local.get $8 + local.get $7 local.get $2 call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $9 + local.get $8 i32.const 1 i32.add i64.extend_i32_u - local.tee $13 + local.tee $12 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add i64.extend_i32_u i64.const 30 i64.shl - local.get $13 + local.get $12 i64.div_u i64.xor i32.wrap_i64 i32.clz - local.set $1 - local.get $4 - local.set $8 + local.set $7 loop $for-loop|3 - local.get $1 - local.get $8 - i32.lt_u + local.get $4 + local.get $7 + i32.gt_u if - local.get $8 + local.get $4 i32.const 2 i32.shl - local.get $10 + local.get $9 i32.add i32.load - local.tee $4 + local.tee $13 i32.const -1 i32.ne if local.get $0 + local.get $13 + local.get $10 local.get $4 - local.get $11 - local.get $8 i32.const 2 i32.shl local.tee $3 @@ -8960,27 +8861,27 @@ i32.load i32.const 1 i32.add - local.get $6 - local.get $12 + local.get $1 + local.get $11 local.get $2 call $~lib/util/sort/mergeRuns local.get $3 - local.get $10 + local.get $9 i32.add i32.const -1 i32.store - local.get $4 + local.get $13 local.set $3 end - local.get $8 + local.get $4 i32.const 1 i32.sub - local.set $8 + local.set $4 br $for-loop|3 end end - local.get $10 - local.get $1 + local.get $9 + local.get $7 i32.const 2 i32.shl local.tee $4 @@ -8988,15 +8889,15 @@ local.get $3 i32.store local.get $4 - local.get $11 + local.get $10 i32.add - local.get $6 + local.get $1 i32.store - local.get $7 + local.get $6 local.set $3 local.get $5 - local.set $6 - local.get $1 + local.set $1 + local.get $7 local.set $4 br $while-continue|2 end @@ -9007,7 +8908,7 @@ local.get $4 i32.const 2 i32.shl - local.get $10 + local.get $9 i32.add i32.load local.tee $1 @@ -9019,13 +8920,13 @@ local.get $4 i32.const 2 i32.shl - local.get $11 + local.get $10 i32.add i32.load i32.const 1 i32.add - local.get $9 - local.get $12 + local.get $8 + local.get $11 local.get $2 call $~lib/util/sort/mergeRuns end @@ -9036,9 +8937,9 @@ br $for-loop|4 end end - local.get $12 + local.get $11 call $~lib/rt/tlsf/__free - local.get $10 + local.get $9 call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer i32.const 12 @@ -9359,25 +9260,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/string/String#concat (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/string/String#concat local.get $0 i32.const 20 i32.sub @@ -9405,6 +9306,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer @@ -9427,8 +9329,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $2 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -9570,46 +9472,47 @@ local.get $0 local.get $1 local.get $1 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add @@ -9617,9 +9520,9 @@ end local.get $2 i32.add - local.tee $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9628,35 +9531,35 @@ (local $5 i32) (local $6 i32) (local $7 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $5 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray local.get $0 - i32.load offset=12 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub - local.tee $4 + local.tee $3 i32.const 0 i32.lt_s if @@ -9665,14 +9568,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $4 + local.get $3 i32.eqz if - local.get $5 + local.get $4 i32.load call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9680,14 +9585,14 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $6 + local.tee $5 i32.const 11 i32.add i32.mul @@ -9698,73 +9603,74 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store loop $for-loop|0 local.get $3 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add - local.get $3 + local.get $6 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.set $0 - local.get $6 + local.set $2 + local.get $5 if - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add local.get $1 - local.get $6 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $6 + local.get $2 + local.get $5 i32.add - local.set $0 + local.set $2 end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end local.get $7 - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add - local.get $4 + local.get $3 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $2 local.get $0 + local.get $1 call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9775,8 +9681,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -9794,54 +9700,55 @@ local.get $0 local.get $1 local.get $1 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.tee $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9850,35 +9757,35 @@ (local $5 i32) (local $6 i32) (local $7 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $5 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray local.get $0 - i32.load offset=12 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store i32.const 1 i32.sub - local.tee $4 + local.tee $3 i32.const 0 i32.lt_s if @@ -9887,14 +9794,16 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end - local.get $4 + local.get $3 i32.eqz if - local.get $5 + local.get $4 i32.load call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9902,14 +9811,14 @@ br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $6 + local.tee $5 i32.const 10 i32.add i32.mul @@ -9920,73 +9829,74 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store loop $for-loop|0 local.get $3 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add - local.get $3 + local.get $6 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.set $0 - local.get $6 + local.set $2 + local.get $5 if - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add local.get $1 - local.get $6 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $0 - local.get $6 + local.get $2 + local.get $5 i32.add - local.set $0 + local.set $2 end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end local.get $7 - local.get $0 + local.get $2 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add - local.get $4 + local.get $3 i32.const 2 i32.shl - local.get $5 + local.get $4 i32.add i32.load call $~lib/util/number/itoa_buffered - local.get $0 + local.get $2 i32.add - local.tee $0 + local.tee $1 i32.gt_s if - local.get $2 local.get $0 + local.get $1 call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -9997,43 +9907,44 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $0 ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i32) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i32) + (local $12 i64) (local $13 i64) local.get $2 local.get $1 i64.sub - local.set $9 + local.set $10 local.get $2 i64.const 1 i32.const 0 local.get $3 i32.sub - local.tee $12 + local.tee $11 i64.extend_i32_s local.tee $1 i64.shl - local.tee $11 + local.tee $12 i64.const 1 i64.sub local.tee $13 i64.and - local.set $8 + local.set $7 local.get $2 local.get $1 i64.shr_u i32.wrap_i64 local.tee $6 - local.tee $3 + local.set $3 + local.get $6 i32.const 100000 i32.lt_u if (result i32) @@ -10079,9 +9990,9 @@ i32.add end end - local.set $10 + local.set $9 loop $while-continue|0 - local.get $10 + local.get $9 i32.const 0 i32.gt_s if @@ -10097,7 +10008,7 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $10 + local.get $9 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 @@ -10105,7 +10016,7 @@ local.get $6 i32.const 1000000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 1000000000 i32.rem_u @@ -10115,7 +10026,7 @@ local.get $6 i32.const 100000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 100000000 i32.rem_u @@ -10125,7 +10036,7 @@ local.get $6 i32.const 10000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 10000000 i32.rem_u @@ -10135,7 +10046,7 @@ local.get $6 i32.const 1000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 1000000 i32.rem_u @@ -10145,7 +10056,7 @@ local.get $6 i32.const 100000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 100000 i32.rem_u @@ -10155,7 +10066,7 @@ local.get $6 i32.const 10000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 10000 i32.rem_u @@ -10165,7 +10076,7 @@ local.get $6 i32.const 1000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 1000 i32.rem_u @@ -10175,7 +10086,7 @@ local.get $6 i32.const 100 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 100 i32.rem_u @@ -10185,7 +10096,7 @@ local.get $6 i32.const 10 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 10 i32.rem_u @@ -10193,64 +10104,64 @@ br $break|1 end local.get $6 - local.set $7 + local.set $3 i32.const 0 local.set $6 br $break|1 end i32.const 0 - local.set $7 + local.set $3 end + local.get $3 local.get $5 - local.get $7 i32.or if local.get $5 - local.tee $3 + local.tee $8 i32.const 1 i32.add local.set $5 - local.get $3 + local.get $8 i32.const 1 i32.shl local.get $0 i32.add - local.get $7 + local.get $3 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $10 + local.get $9 i32.const 1 i32.sub - local.set $10 - local.get $4 - local.get $8 + local.set $9 + local.get $7 local.get $6 i64.extend_i32_u - local.get $12 + local.get $11 i64.extend_i32_s i64.shl i64.add local.tee $1 - i64.ge_u + local.get $4 + i64.le_u if - local.get $10 + local.get $9 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $10 + local.get $9 i32.const 2 i32.shl i32.const 12880 i32.add i64.load32_u - local.get $12 + local.get $11 i64.extend_i32_s i64.shl - local.set $11 + local.set $2 local.get $5 i32.const 1 i32.sub @@ -10258,53 +10169,53 @@ i32.shl local.get $0 i32.add - local.tee $0 + local.tee $6 i32.load16_u - local.set $7 + local.set $3 loop $while-continue|3 - local.get $11 + local.get $2 local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $9 + local.get $10 i64.lt_u select if (result i32) i32.const 1 - local.get $9 + local.get $10 local.get $1 i64.sub local.get $1 - local.get $11 + local.get $2 i64.add - local.tee $2 - local.get $9 + local.tee $7 + local.get $10 i64.sub i64.gt_u - local.get $2 - local.get $9 + local.get $7 + local.get $10 i64.lt_u select else i32.const 0 end if - local.get $7 + local.get $3 i32.const 1 i32.sub - local.set $7 + local.set $3 local.get $1 - local.get $11 + local.get $2 i64.add local.set $1 br $while-continue|3 end end - local.get $0 - local.get $7 + local.get $6 + local.get $3 i32.store16 local.get $5 return @@ -10312,19 +10223,19 @@ br $while-continue|0 end end - loop $while-continue|4 (result i32) + loop $while-continue|4 local.get $4 i64.const 10 i64.mul local.set $4 - local.get $8 + local.get $7 i64.const 10 i64.mul - local.tee $2 - local.get $12 + local.tee $1 + local.get $11 i64.extend_i32_s i64.shr_u - local.tee $1 + local.tee $2 local.get $5 i64.extend_i32_s i64.or @@ -10341,7 +10252,7 @@ i32.shl local.get $0 i32.add - local.get $1 + local.get $2 i32.wrap_i64 i32.const 65535 i32.and @@ -10349,95 +10260,97 @@ i32.add i32.store16 end - local.get $10 + local.get $9 i32.const 1 i32.sub - local.set $10 - local.get $2 + local.set $9 + local.get $4 + local.get $1 local.get $13 i64.and - local.tee $8 - local.get $4 - i64.ge_u + local.tee $7 + i64.le_u br_if $while-continue|4 - local.get $10 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $8 - local.set $1 + end + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $7 + local.set $1 + i32.const 0 + local.get $9 + i32.sub + i32.const 2 + i32.shl + i32.const 12880 + i32.add + i64.load32_u + local.get $10 + i64.mul + local.set $2 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $6 + i32.load16_u + local.set $3 + loop $while-continue|6 + local.get $12 + local.get $4 + local.get $1 + i64.sub + i64.le_u i32.const 0 - local.get $10 - i32.sub - i32.const 2 - i32.shl - i32.const 12880 - i32.add - i64.load32_u - local.get $9 - i64.mul - local.set $9 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - local.get $0 - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|6 - local.get $11 - local.get $4 + local.get $1 + local.get $2 + i64.lt_u + select + if (result i32) + i32.const 1 + local.get $2 local.get $1 i64.sub - i64.le_u - i32.const 0 local.get $1 - local.get $9 - i64.lt_u + local.get $12 + i64.add + local.tee $7 + local.get $2 + i64.sub + i64.gt_u + local.get $2 + local.get $7 + i64.gt_u select - if (result i32) - i32.const 1 - local.get $9 - local.get $1 - i64.sub - local.get $1 - local.get $11 - i64.add - local.tee $2 - local.get $9 - i64.sub - i64.gt_u - local.get $2 - local.get $9 - i64.lt_u - select - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $11 - i64.add - local.set $1 - br $while-continue|6 - end + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $1 + local.get $12 + i64.add + local.set $1 + br $while-continue|6 end - local.get $0 - local.get $7 - i32.store16 - local.get $5 end + local.get $6 + local.get $3 + i32.store16 + local.get $5 ) (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $2 i32.eqz if @@ -10538,7 +10451,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $2 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -10552,28 +10465,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $4 + local.set $2 loop $for-loop|1 local.get $2 - local.get $4 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $4 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end local.get $1 - local.get $2 + local.get $5 i32.add else local.get $1 @@ -10601,7 +10514,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -10648,9 +10560,12 @@ i32.add end end + local.set $1 + local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -10658,7 +10573,7 @@ local.get $2 select i32.store16 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.add else @@ -10694,7 +10609,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -10702,7 +10617,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -10749,18 +10663,21 @@ i32.add end end + local.set $2 + local.get $0 + local.get $2 i32.const 1 i32.add - local.tee $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select i32.store16 offset=4 + local.get $0 local.get $1 - local.get $2 i32.add i32.const 2 i32.add @@ -11125,35 +11042,37 @@ ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) - (local $3 f64) + (local $2 f64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $__inlined_func$~lib/util/string/joinFloatArray (result i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=12 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinFloatArray + local.get $1 i32.const 1 i32.sub - local.tee $5 + local.tee $3 i32.const 0 i32.lt_s if @@ -11162,28 +11081,29 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end block $folding-inner0 - local.get $5 + local.get $3 i32.eqz if - block $__inlined_func$~lib/util/number/dtoa (result i32) - local.get $1 - f64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $3 + local.get $4 + f64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/dtoa + local.get $2 f64.const 0 f64.eq if @@ -11192,16 +11112,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11808 + local.set $0 br $__inlined_func$~lib/util/number/dtoa end - local.get $3 - local.get $3 + local.get $2 + local.get $2 f64.sub f64.const 0 f64.ne if - local.get $3 - local.get $3 + local.get $2 + local.get $2 f64.ne if global.get $~lib/memory/__stack_pointer @@ -11209,6 +11130,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11840 + local.set $0 br $__inlined_func$~lib/util/number/dtoa end global.get $~lib/memory/__stack_pointer @@ -11217,14 +11139,15 @@ global.set $~lib/memory/__stack_pointer i32.const 11872 i32.const 11920 - local.get $3 + local.get $2 f64.const 0 f64.lt select + local.set $0 br $__inlined_func$~lib/util/number/dtoa end i32.const 11952 - local.get $3 + local.get $2 call $~lib/util/number/dtoa_core i32.const 1 i32.shl @@ -11243,18 +11166,16 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $1 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 i32.const 11772 i32.load i32.const 1 i32.shr_u - local.tee $6 + local.tee $5 i32.const 28 i32.add i32.mul @@ -11265,49 +11186,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $4 - local.get $5 - i32.lt_s + local.get $3 + local.get $6 + i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $4 + local.get $6 i32.const 3 i32.shl - local.get $1 + local.get $4 i32.add f64.load call $~lib/util/number/dtoa_buffered local.get $0 i32.add local.set $0 - local.get $6 + local.get $5 if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 11776 - local.get $6 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $6 + local.get $5 i32.add local.set $0 end - local.get $4 + local.get $6 i32.const 1 i32.add - local.set $4 + local.set $6 br $for-loop|0 end end @@ -11315,39 +11236,40 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $5 + local.get $3 i32.const 3 i32.shl - local.get $1 + local.get $4 i32.add f64.load call $~lib/util/number/dtoa_buffered local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $2 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 return end i32.const 32000 @@ -11364,37 +11286,37 @@ (local $5 i32) (local $6 i32) (local $7 i32) - block $__inlined_func$~lib/util/string/joinStringArray (result i32) - local.get $0 - i32.load offset=4 - local.set $7 - local.get $0 - i32.load offset=12 - local.set $5 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i32.const 0 - i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=12 + local.set $5 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinStringArray local.get $5 i32.const 1 i32.sub @@ -11407,6 +11329,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 + local.set $0 br $__inlined_func$~lib/util/string/joinStringArray end local.get $6 @@ -11418,23 +11341,24 @@ i32.load local.tee $0 i32.store - local.get $1 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 i32.const 9280 local.get $0 select + local.set $0 + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinStringArray end loop $for-loop|0 - local.get $0 + local.get $3 local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 2 i32.shl local.get $7 @@ -11450,14 +11374,14 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.get $3 + local.get $0 i32.add - local.set $3 + local.set $0 end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end @@ -11471,50 +11395,50 @@ i32.shr_u local.tee $5 i32.mul - local.get $3 + local.get $0 i32.add i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $0 i32.store offset=8 i32.const 0 - local.set $0 + local.set $3 loop $for-loop|1 - local.get $0 + local.get $3 local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 2 i32.shl local.get $7 i32.add i32.load - local.tee $3 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $4 if local.get $2 i32.const 1 i32.shl - local.get $4 + local.get $0 i32.add - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $3 + local.get $4 i32.add local.set $2 end @@ -11523,7 +11447,7 @@ local.get $2 i32.const 1 i32.shl - local.get $4 + local.get $0 i32.add local.get $1 local.get $5 @@ -11535,10 +11459,10 @@ i32.add local.set $2 end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|1 end end @@ -11549,17 +11473,17 @@ local.get $7 i32.add i32.load - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 if local.get $2 i32.const 1 i32.shl - local.get $4 - i32.add - local.get $0 local.get $0 + i32.add + local.get $1 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -11573,8 +11497,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end + local.get $0 ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) @@ -11582,34 +11506,36 @@ (local $3 i32) (local $4 i32) (local $5 i32) - block $__inlined_func$~lib/util/string/joinReferenceArray (result i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinReferenceArray + local.get $0 i32.const 1 i32.sub local.tee $2 @@ -11621,6 +11547,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray end local.get $2 @@ -11640,6 +11567,7 @@ i32.const 9280 local.get $1 select + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray end i32.const 9280 @@ -11708,9 +11636,9 @@ if global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $1 i32.const 13120 i32.store offset=8 + local.get $1 local.get $0 i32.const 13120 call $~lib/string/String.__concat @@ -11721,8 +11649,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end + local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -11810,14 +11738,15 @@ i32.add end end - local.get $2 - i32.add local.set $1 local.get $0 local.get $3 local.get $1 + local.get $2 + i32.add + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12054,6 +11983,7 @@ local.get $0 local.get $3 local.get $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut else local.get $0 @@ -12108,10 +12038,10 @@ i32.add end end - local.tee $2 + local.tee $0 call $~lib/util/number/utoa64_dec_lut end - local.get $2 + local.get $0 ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) @@ -12121,27 +12051,31 @@ (local $5 i32) (local $6 i32) (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -12150,27 +12084,28 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $7 + local.get $3 i32.eqz if - block $__inlined_func$~lib/util/number/utoa64 (result i32) - local.get $4 - i64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $4 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 local.get $2 i64.eqz if @@ -12179,6 +12114,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9872 + local.set $0 br $__inlined_func$~lib/util/number/utoa64 end local.get $2 @@ -12188,63 +12124,63 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.wrap_i64 - local.tee $0 local.tee $3 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.tee $6 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store - local.get $3 local.get $0 - local.get $6 + local.get $3 + local.get $1 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -12298,127 +12234,126 @@ i32.add end end - local.tee $6 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 local.get $2 - local.get $6 + local.get $1 call $~lib/util/number/utoa64_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 end - local.set $4 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.const 9564 i32.load i32.const 1 i32.shr_u - local.tee $6 + local.tee $5 i32.const 20 i32.add i32.mul i32.const 20 i32.add - local.tee $0 + local.tee $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store loop $for-loop|0 local.get $3 - local.get $7 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $5 + local.get $1 i32.add - local.get $3 + local.get $6 i32.const 3 i32.shl local.get $4 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 - local.get $6 + local.set $0 + local.get $5 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $5 + local.get $1 i32.add i32.const 9568 - local.get $6 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 - local.get $6 + local.get $0 + local.get $5 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end + local.get $7 local.get $0 - local.get $1 i32.const 1 i32.shl - local.get $5 + local.get $1 i32.add - local.get $7 + local.get $3 i32.const 3 i32.shl local.get $4 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $4 + local.tee $0 i32.gt_s if - local.get $5 - local.get $4 + local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $4 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end + local.get $0 return end i32.const 32000 @@ -12435,7 +12370,7 @@ local.get $1 i64.const 0 i64.lt_s - local.tee $2 + local.tee $3 if local.get $0 i32.const 45 @@ -12449,7 +12384,7 @@ i64.const 10 i64.lt_u if - local.get $2 + local.get $3 i32.const 1 i32.shl local.get $0 @@ -12458,7 +12393,7 @@ i64.const 48 i64.or i64.store16 - local.get $2 + local.get $3 i32.const 1 i32.add return @@ -12470,58 +12405,59 @@ local.get $1 i32.wrap_i64 local.tee $4 - local.tee $3 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.get $2 - i32.add local.set $2 local.get $0 local.get $4 local.get $2 + local.get $3 + i32.add + local.tee $0 call $~lib/util/number/utoa32_dec_lut else local.get $0 @@ -12576,281 +12512,625 @@ i32.add end end - local.get $2 + local.get $3 i32.add - local.tee $2 + local.tee $0 call $~lib/util/number/utoa64_dec_lut end - local.get $2 - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 255 - i32.and - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $1 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $1 - i32.const 255 - i32.and - local.tee $2 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $1 local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - local.get $1 ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) + (local $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $5 - local.get $0 - i32.load offset=12 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.set $5 + local.get $0 + i32.load offset=12 + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - if - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9280 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - local.get $4 - i32.eqz - if - local.get $5 - i32.load8_u - call $~lib/util/number/utoa32 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $6 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - loop $for-loop|0 - local.get $3 - local.get $4 + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 i32.lt_s if - local.get $0 - i32.const 1 - i32.shl - local.get $2 - i32.add - local.get $3 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9280 local.set $0 - local.get $6 - if - local.get $0 - i32.const 1 - i32.shl - local.get $2 - i32.add - local.get $1 - local.get $6 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $6 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + br $__inlined_func$~lib/util/string/joinIntegerArray end - end - local.get $7 - local.get $0 - i32.const 1 - i32.shl - local.get $2 - i32.add - local.get $4 - local.get $5 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $2 - local.get $0 - call $~lib/string/String#substring - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - end - ) - (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $3 - i32.const 1 - i32.add - local.tee $2 - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $3 - local.get $0 - i32.load offset=4 - i32.add - local.get $1 - i32.store8 - local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $3 - local.get $2 - local.get $1 - i32.sub - i32.const 1 - i32.add - local.tee $6 - local.get $3 - i32.sub - i32.const 1 - i32.and + block $folding-inner0 + local.get $4 + i32.eqz + if + local.get $5 + i64.load + i64.extend32_s + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa64 + local.get $2 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9872 + local.set $0 + br $__inlined_func$~lib/util/number/itoa64 + end + i64.const 0 + local.get $2 + i64.sub + local.get $2 + local.get $2 + i64.const 63 + i64.shr_u + i32.wrap_i64 + local.tee $3 + select + local.tee $2 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.wrap_i64 + local.tee $6 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $3 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $6 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + else + global.get $~lib/memory/__stack_pointer + local.get $2 + i64.const 1000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $2 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $2 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $2 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $2 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $2 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $2 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $2 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end + end + local.get $3 + i32.add + local.tee $1 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa64_dec_lut + end + local.get $3 + if + local.get $0 + i32.const 45 + i32.store16 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.const 9564 + i32.load + i32.const 1 + i32.shr_u + local.tee $7 + i32.const 21 + i32.add + i32.mul + i32.const 21 + i32.add + local.tee $6 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + loop $for-loop|0 + local.get $3 + local.get $4 + i32.lt_s + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $3 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.set $0 + local.get $7 + if + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + i32.const 9568 + local.get $7 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + local.get $7 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $6 + local.get $0 + i32.const 1 + i32.shl + local.get $1 + i32.add + local.get $4 + i32.const 3 + i32.shl + local.get $5 + i32.add + i64.load + call $~lib/util/number/itoa_buffered + local.get $0 + i32.add + local.tee $0 + i32.gt_s + if + local.get $1 + local.get $0 + call $~lib/string/String#substring + local.set $0 + br $folding-inner0 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + return + end + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 255 + i32.and + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 255 + i32.and + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $1 + i32.const 255 + i32.and + local.tee $2 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $1 + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $1 + ) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + if + i32.const 32000 + i32.const 32048 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 9280 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $3 + i32.eqz + if + local.get $4 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $4 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 + if + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $2 + i32.const 1 + i32.shl + local.get $0 + i32.add + local.get $3 + local.get $4 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + i32.gt_s + if + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 1 + i32.add + local.tee $2 + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $3 + local.get $0 + i32.load offset=4 + i32.add + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $6 + local.get $3 + i32.sub + i32.const 1 + i32.and i32.sub local.get $6 i32.const 1 @@ -13349,22 +13629,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $7 + local.get $5 i32.add local.set $11 i32.const 0 @@ -13389,27 +13659,17 @@ end end local.get $1 - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 - local.get $5 + local.get $1 i32.const 1 i32.sub local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -13424,26 +13684,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $7 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $7 + local.get $6 i32.sub i32.const 1 i32.add @@ -13452,9 +13712,9 @@ i32.lt_s if local.get $0 - local.get $7 + local.get $6 local.get $9 - local.get $7 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -13468,7 +13728,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -13480,7 +13740,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add @@ -13521,7 +13781,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -13551,12 +13811,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $7 + i32.store + local.get $6 local.set $3 local.get $5 - local.set $6 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -13911,16 +14171,16 @@ return end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $4 local.get $1 i32.const 2 i32.shl local.get $0 i32.add i32.load - local.tee $6 + local.tee $5 i32.store - local.get $5 + local.get $4 local.get $1 i32.const 1 i32.add @@ -13930,12 +14190,12 @@ local.get $0 i32.add i32.load - local.tee $7 + local.tee $6 i32.store offset=4 i32.const 2 global.set $~argumentsLength + local.get $5 local.get $6 - local.get $7 local.get $3 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -13961,12 +14221,12 @@ local.get $5 local.get $6 i32.load - local.tee $6 + local.tee $5 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $7 - local.get $6 + local.get $5 local.get $3 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -14006,14 +14266,14 @@ i32.shl local.get $0 i32.add - local.tee $6 + local.tee $3 i32.load i32.store local.get $1 i32.const 1 i32.add local.set $1 - local.get $6 + local.get $3 local.get $5 i32.store local.get $2 @@ -14043,12 +14303,12 @@ local.get $1 local.get $5 i32.load - local.tee $5 + local.tee $1 i32.store offset=4 i32.const 2 global.set $~argumentsLength local.get $6 - local.get $5 + local.get $1 local.get $3 i32.load call_indirect $0 (type $i32_i32_=>_i32) @@ -14072,231 +14332,16 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) - (func $std/array/assertStableSortedForComplexObjects - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i64.const 0 - i64.store offset=16 - local.get $1 - local.tee $4 - global.get $std/array/inputStabArr - local.tee $0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - i32.const 0 - local.get $0 - i32.load offset=12 - local.tee $2 - local.get $2 - i32.const 0 - i32.gt_s - select - local.set $5 - local.get $1 - local.get $2 - local.get $5 - i32.sub - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $6 - i32.const 2 - i32.const 20 - i32.const 0 - call $~lib/rt/__newArray - local.tee $2 - i32.store - local.get $2 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=4 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.set $5 - i32.const 0 - local.set $0 - local.get $6 - i32.const 2 - i32.shl - local.set $6 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_u - if - local.get $0 - local.get $3 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load - local.tee $1 - i32.store - local.get $2 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - local.tee $0 - i32.store - local.get $1 - i32.const 8928 - i32.store offset=4 - local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=12 - i32.const 8928 - call $~lib/util/sort/SORT - local.get $4 - local.get $0 - local.tee $3 - i32.store offset=12 - i32.const 1 - local.set $0 - global.get $~lib/memory/__stack_pointer - global.get $std/array/inputStabArr - local.tee $5 - i32.store - local.get $5 - i32.load offset=12 - local.set $1 - loop $for-loop|0 - local.get $1 - local.get $7 - i32.gt_s - if - block $for-break0 - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $7 - call $~lib/array/Array#__get - local.tee $5 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - global.get $std/array/outputStabArr - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - local.get $7 - call $~lib/array/Array#__get - local.tee $6 - i32.store offset=20 - local.get $5 - i32.load - local.get $6 - i32.load - i32.ne - if (result i32) - i32.const 1 - else - local.get $5 - i32.load offset=4 - local.get $6 - i32.load offset=4 - i32.ne - end - if - i32.const 0 - local.set $0 - br $for-break0 - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1042 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 32000 - i32.const 32048 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -14539,46 +14584,48 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 9568 i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> (result i32) - local.get $0 - i32.load offset=4 - local.set $1 + local.get $0 + i32.load offset=4 + local.set $2 + local.get $0 + i32.load offset=12 + local.set $0 + local.get $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> local.get $0 - i32.load offset=12 - local.get $2 - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 i32.const 1 i32.sub - local.tee $2 + local.tee $1 i32.const 0 i32.lt_s if @@ -14587,23 +14634,25 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 + local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $2 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) - local.get $1 + local.get $0 call $~lib/array/Array#toString else i32.const 9280 end + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -14621,7 +14670,7 @@ i32.shr_u local.set $5 loop $for-loop|0 - local.get $2 + local.get $1 local.get $4 i32.gt_s if @@ -14629,7 +14678,7 @@ local.get $4 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load local.tee $3 @@ -14666,25 +14715,25 @@ end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 call $~lib/array/Array#toString - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 @@ -14693,12 +14742,12 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end i32.const 32000 @@ -14714,88 +14763,87 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 f32) + (local $5 i32) (local $6 i32) - (local $7 f64) - (local $8 i64) - (local $9 i32) + (local $7 i32) + (local $8 i32) + (local $9 f64) (local $10 i32) - (local $11 i32) - (local $12 i32) + (local $11 f32) global.get $~lib/memory/__stack_pointer i32.const 172 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner2 + block $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i64.const 0 i64.store offset=16 - local.get $1 + local.get $0 i64.const 0 i64.store offset=24 - local.get $1 + local.get $0 i64.const 0 i64.store offset=32 - local.get $1 + local.get $0 i64.const 0 i64.store offset=40 - local.get $1 + local.get $0 i64.const 0 i64.store offset=48 - local.get $1 + local.get $0 i64.const 0 i64.store offset=56 - local.get $1 + local.get $0 i64.const 0 i64.store offset=64 - local.get $1 + local.get $0 i64.const 0 i64.store offset=72 - local.get $1 + local.get $0 i64.const 0 i64.store offset=80 - local.get $1 + local.get $0 i64.const 0 i64.store offset=88 - local.get $1 + local.get $0 i64.const 0 i64.store offset=96 - local.get $1 + local.get $0 i64.const 0 i64.store offset=104 - local.get $1 + local.get $0 i64.const 0 i64.store offset=112 - local.get $1 + local.get $0 i64.const 0 i64.store offset=120 - local.get $1 + local.get $0 i64.const 0 i64.store offset=128 - local.get $1 + local.get $0 i64.const 0 i64.store offset=136 - local.get $1 + local.get $0 i64.const 0 i64.store offset=144 - local.get $1 + local.get $0 i64.const 0 i64.store offset=152 - local.get $1 + local.get $0 i64.const 0 i64.store offset=160 - local.get $1 + local.get $0 i32.const 0 i32.store offset=168 memory.size @@ -14835,9 +14883,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -14846,12 +14894,12 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new @@ -14865,7 +14913,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -14934,9 +14982,9 @@ i32.store local.get $1 global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -14952,9 +15000,9 @@ i32.const 6 i32.const 1696 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i32.const 1 i32.const 3 @@ -14965,12 +15013,12 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -14981,7 +15029,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 i32.const 0 i32.const 2147483647 @@ -14992,12 +15040,12 @@ i32.const 6 i32.const 1760 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15008,7 +15056,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.const 0 i32.const -3 @@ -15019,12 +15067,12 @@ i32.const 6 i32.const 1792 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15035,7 +15083,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 i32.const -2 i32.const 2147483647 @@ -15046,12 +15094,12 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15062,7 +15110,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 i32.const 1 i32.const 0 @@ -15073,12 +15121,12 @@ i32.const 6 i32.const 1856 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -15095,43 +15143,43 @@ i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.load offset=4 local.set $4 i32.const 1 - local.get $1 + local.get $0 i32.load offset=12 - local.tee $12 - local.get $12 + local.tee $2 + local.get $2 i32.const 1 i32.gt_s select - local.set $2 + local.set $1 i32.const 3 - local.get $12 - local.get $12 + local.get $2 + local.get $2 i32.const 3 i32.gt_s select - local.set $0 + local.set $2 loop $for-loop|0 - local.get $0 + local.get $1 local.get $2 - i32.gt_s + i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl local.get $4 i32.add i32.const 1 i32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end @@ -15140,12 +15188,12 @@ i32.const 7 i32.const 1936 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 call $std/array/isArraysEqual i32.eqz if @@ -15156,9 +15204,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 + local.tee $1 i32.load offset=4 - local.set $12 + local.set $0 i32.const 0 local.get $1 i32.load offset=12 @@ -15167,26 +15216,24 @@ i32.const 0 i32.gt_s select - local.set $4 - local.get $2 - local.set $0 - loop $for-loop|01 - local.get $0 - local.get $4 + local.set $5 + loop $for-loop|03 + local.get $2 + local.get $5 i32.gt_s if - local.get $4 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $0 i32.add i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 - br $for-loop|01 + local.set $5 + br $for-loop|03 end end i32.const 5 @@ -15216,39 +15263,39 @@ i32.const 0 local.get $1 i32.load offset=12 - local.tee $12 - local.get $12 + local.tee $2 + local.get $2 i32.const 0 i32.gt_s select - local.set $2 - local.get $12 + local.set $0 + local.get $2 i32.const 3 i32.sub - local.tee $0 + local.tee $2 i32.const 0 - local.get $0 + local.get $2 i32.const 0 i32.gt_s select - local.set $0 - loop $for-loop|03 + local.set $2 + loop $for-loop|05 local.get $0 local.get $2 - i32.gt_s + i32.lt_s if - local.get $2 + local.get $0 i32.const 2 i32.shl local.get $4 i32.add i32.const 1 i32.store - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|03 + local.set $0 + br $for-loop|05 end end i32.const 5 @@ -15274,7 +15321,7 @@ end local.get $1 i32.load offset=4 - local.set $12 + local.set $4 local.get $1 i32.load offset=12 local.tee $2 @@ -15286,26 +15333,24 @@ i32.const 0 i32.gt_s select - local.set $4 - local.get $2 - local.set $0 - loop $for-loop|05 - local.get $0 - local.get $4 + local.set $5 + loop $for-loop|07 + local.get $2 + local.get $5 i32.gt_s if - local.get $4 + local.get $5 i32.const 2 i32.shl - local.get $12 + local.get $4 i32.add i32.const 2 i32.store - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $4 - br $for-loop|05 + local.set $5 + br $for-loop|07 end end i32.const 5 @@ -15335,36 +15380,36 @@ i32.const 1 local.get $1 i32.load offset=12 - local.tee $12 - local.get $12 + local.tee $2 + local.get $2 i32.const 1 i32.gt_s select - local.set $2 + local.set $0 i32.const 0 - local.get $12 - local.get $12 + local.get $2 + local.get $2 i32.const 0 i32.gt_s select - local.set $0 - loop $for-loop|07 + local.set $2 + loop $for-loop|09 local.get $0 local.get $2 - i32.gt_s + i32.lt_s if - local.get $2 + local.get $0 i32.const 2 i32.shl local.get $4 i32.add i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|07 + local.set $0 + br $for-loop|09 end end i32.const 5 @@ -15390,9 +15435,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -15404,9 +15449,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15420,17 +15465,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 42 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -15445,9 +15490,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 1 i32.ne @@ -15461,9 +15506,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15477,9 +15522,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -15493,9 +15538,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -15507,9 +15552,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15523,17 +15568,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 1 i32.ne @@ -15547,9 +15592,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15563,9 +15608,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15580,17 +15625,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 44 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -15604,9 +15649,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15620,9 +15665,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15637,9 +15682,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15654,17 +15699,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 45 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -15678,9 +15723,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15694,9 +15739,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15711,9 +15756,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15728,9 +15773,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15744,40 +15789,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $0 + local.get $1 i32.const 0 i32.store offset=12 - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -15793,9 +15838,9 @@ i32.const 3 i32.const 2224 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -15808,7 +15853,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -15821,7 +15866,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -15834,7 +15879,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -15854,19 +15899,19 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 local.get $2 call $~lib/array/Array#concat - local.tee $0 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15880,9 +15925,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -15894,7 +15939,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -15911,19 +15956,19 @@ i32.const 3 i32.const 2272 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -15935,7 +15980,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -15948,7 +15993,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -15961,7 +16006,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -15983,21 +16028,21 @@ call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 local.get $1 + local.get $0 local.get $2 call $~lib/array/Array#concat - local.tee $0 + local.tee $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16021,7 +16066,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 i32.const 5 i32.ne @@ -16033,7 +16078,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -16046,7 +16091,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -16059,7 +16104,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -16072,7 +16117,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -16085,7 +16130,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -16098,10 +16143,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/array/Array#pop drop - local.get $0 + local.get $1 i32.load offset=12 i32.const 4 i32.ne @@ -16132,17 +16177,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store offset=8 - local.get $0 - local.get $2 local.get $1 + local.get $2 + local.get $0 call $~lib/array/Array#concat - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -16170,28 +16215,28 @@ i32.const 3 i32.const 2336 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2384 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16209,28 +16254,28 @@ i32.const 3 i32.const 2432 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2480 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16248,28 +16293,28 @@ i32.const 3 i32.const 2528 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2576 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16287,28 +16332,28 @@ i32.const 3 i32.const 2624 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 2 i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2672 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16326,28 +16371,28 @@ i32.const 3 i32.const 2720 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2768 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16365,28 +16410,28 @@ i32.const 3 i32.const 2816 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2864 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16404,28 +16449,28 @@ i32.const 3 i32.const 2912 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 2960 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16443,28 +16488,28 @@ i32.const 3 i32.const 3008 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3056 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16482,28 +16527,28 @@ i32.const 3 i32.const 3104 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3152 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16521,28 +16566,28 @@ i32.const 3 i32.const 3200 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3248 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16560,28 +16605,28 @@ i32.const 3 i32.const 3296 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3344 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16599,28 +16644,28 @@ i32.const 3 i32.const 3392 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 3440 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -16634,17 +16679,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 42 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -16658,9 +16703,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16674,9 +16719,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16691,9 +16736,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16708,9 +16753,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -16725,9 +16770,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -16742,17 +16787,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 41 call $~lib/array/Array#unshift drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 5 i32.ne @@ -16766,9 +16811,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16782,9 +16827,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -16799,9 +16844,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -16816,9 +16861,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -16833,9 +16878,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -16850,9 +16895,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -16867,9 +16912,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $5 i32.store - local.get $1 + local.get $5 i32.load offset=12 local.tee $0 i32.const 1 @@ -16882,29 +16927,29 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 i32.load offset=4 - local.tee $12 + local.tee $4 i32.load - local.get $12 - local.get $12 + local.get $4 + local.get $4 i32.const 4 i32.add local.get $0 i32.const 1 i32.sub - local.tee $2 + local.tee $1 i32.const 2 i32.shl local.tee $0 call $~lib/memory/memory.copy local.get $0 - local.get $12 + local.get $4 i32.add i32.const 0 i32.store + local.get $5 local.get $1 - local.get $2 i32.store offset=12 global.set $std/array/i global.get $std/array/i @@ -16920,9 +16965,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -16936,9 +16981,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -16952,9 +16997,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -16969,9 +17014,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -16986,9 +17031,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -17003,9 +17048,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -17020,9 +17065,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -17038,9 +17083,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -17054,9 +17099,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17070,9 +17115,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -17087,9 +17132,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17104,9 +17149,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -17132,19 +17177,19 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 3 i32.const 2 i32.const 3 i32.const 3536 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17161,19 +17206,19 @@ i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3568 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17190,19 +17235,19 @@ i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 4 i32.const 2 i32.const 3 i32.const 3600 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17219,9 +17264,9 @@ i32.const 0 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 local.get $2 i32.const 0 call $std/array/isArraysEqual @@ -17239,19 +17284,19 @@ i32.const -2 i32.const 2147483647 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3648 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17268,19 +17313,19 @@ i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3680 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17297,19 +17342,19 @@ i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 2 i32.const 2 i32.const 3 i32.const 3712 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 local.get $1 + i32.store offset=8 local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -17325,11 +17370,11 @@ i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -17343,11 +17388,11 @@ i32.const 10 i32.const 2147483647 call $~lib/array/Array#slice - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -17363,7 +17408,7 @@ i32.store local.get $1 i32.load offset=4 - local.set $11 + local.set $6 i32.const 0 local.set $0 local.get $1 @@ -17375,20 +17420,20 @@ local.get $1 i32.const 1 i32.shr_u - local.set $12 + local.set $5 local.get $1 i32.const 1 i32.sub local.set $4 loop $while-continue|0 local.get $0 - local.get $12 + local.get $5 i32.lt_u if local.get $0 i32.const 2 i32.shl - local.get $11 + local.get $6 i32.add local.tee $1 i32.load @@ -17399,7 +17444,7 @@ i32.sub i32.const 2 i32.shl - local.get $11 + local.get $6 i32.add local.tee $1 i32.load @@ -17417,9 +17462,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 3 i32.ne @@ -17433,9 +17478,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -17449,9 +17494,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -17466,9 +17511,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -17483,9 +17528,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -17500,17 +17545,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 43 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 44 call $~lib/array/Array#push drop @@ -17525,26 +17570,23 @@ local.get $1 i32.store local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=12 - call $~lib/util/bytes/REVERSE - local.get $1 + call $~lib/array/Array#reverse + local.tee $2 i32.store offset=16 i32.const 0 local.set $0 - local.get $1 + local.get $2 i32.load offset=12 - local.set $2 - loop $for-loop|08 + local.set $1 + loop $for-loop|010 local.get $0 - local.get $2 + local.get $1 i32.lt_s if - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.get $1 + local.get $2 i32.load offset=12 local.get $0 i32.sub @@ -17563,7 +17605,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|08 + br $for-loop|010 end end global.get $~lib/memory/__stack_pointer @@ -17577,26 +17619,23 @@ local.get $1 i32.store local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=12 - call $~lib/util/bytes/REVERSE - local.get $1 + call $~lib/array/Array#reverse + local.tee $2 i32.store offset=4 i32.const 0 local.set $0 - local.get $1 + local.get $2 i32.load offset=12 - local.set $2 + local.set $1 loop $for-loop|1 local.get $0 - local.get $2 + local.get $1 i32.lt_s if - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.get $1 + local.get $2 i32.load offset=12 local.get $0 i32.sub @@ -17629,26 +17668,23 @@ local.get $1 i32.store local.get $1 - i32.load offset=4 - local.get $1 - i32.load offset=12 - call $~lib/util/bytes/REVERSE - local.get $1 + call $~lib/array/Array#reverse + local.tee $2 i32.store offset=12 i32.const 0 local.set $0 - local.get $1 + local.get $2 i32.load offset=12 - local.set $2 + local.set $1 loop $for-loop|2 local.get $0 - local.get $2 + local.get $1 i32.lt_s if - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.get $1 + local.get $2 i32.load offset=12 local.get $0 i32.sub @@ -17676,11 +17712,11 @@ i32.const 9 i32.const 3856 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#reverse local.tee $2 i32.store offset=20 @@ -17725,11 +17761,11 @@ i32.const 9 i32.const 3904 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#reverse local.tee $2 i32.store offset=24 @@ -17774,11 +17810,11 @@ i32.const 9 i32.const 3952 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#reverse local.tee $2 i32.store offset=28 @@ -17819,35 +17855,36 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $4 - select - br_if $__inlined_func$~lib/array/Array#indexOf local.get $2 + select + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf + end + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|012 - local.get $1 - local.get $4 + local.set $1 + loop $while-continue|011 + local.get $0 + local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 44 @@ -17856,8 +17893,8 @@ local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|012 + local.set $0 + br $while-continue|011 end end i32.const -1 @@ -17876,45 +17913,46 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf39 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf12 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $4 - select - br_if $__inlined_func$~lib/array/Array#indexOf39 local.get $2 + select + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf12 + end + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|040 - local.get $1 - local.get $4 + local.set $1 + loop $while-continue|013 + local.get $0 + local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf39 + br_if $__inlined_func$~lib/array/Array#indexOf12 local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|040 + local.set $0 + br $while-continue|013 end end i32.const -1 @@ -17935,45 +17973,46 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf41 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf14 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $4 - select - br_if $__inlined_func$~lib/array/Array#indexOf41 local.get $2 + select + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf14 + end + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|042 - local.get $1 - local.get $4 + local.set $1 + loop $while-continue|015 + local.get $0 + local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf41 + br_if $__inlined_func$~lib/array/Array#indexOf14 local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|042 + local.set $0 + br $while-continue|015 end end i32.const -1 @@ -17994,45 +18033,46 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store i32.const 100 - local.set $1 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf43 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf16 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 100 i32.le_s i32.const 1 - local.get $4 - select - br_if $__inlined_func$~lib/array/Array#indexOf43 local.get $2 + select + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf16 + end + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|044 - local.get $1 - local.get $4 + local.set $1 + loop $while-continue|017 + local.get $0 + local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf43 + br_if $__inlined_func$~lib/array/Array#indexOf16 local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|044 + local.set $0 + br $while-continue|017 end end i32.const -1 @@ -18053,36 +18093,38 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf45 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf18 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf45 - local.get $4 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf18 + end + local.get $2 i32.const 100 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|046 + loop $while-continue|019 local.get $0 - local.get $4 + local.get $2 i32.lt_s if local.get $0 @@ -18093,12 +18135,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf45 + br_if $__inlined_func$~lib/array/Array#indexOf18 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|046 + br $while-continue|019 end end i32.const -1 @@ -18119,36 +18161,38 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf47 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf20 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -2 i32.le_s i32.const 1 - local.get $4 + local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf47 - local.get $4 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf20 + end + local.get $2 i32.const 2 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|048 + loop $while-continue|021 local.get $0 - local.get $4 + local.get $2 i32.lt_s if local.get $0 @@ -18159,12 +18203,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf47 + br_if $__inlined_func$~lib/array/Array#indexOf20 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|048 + br $while-continue|021 end end i32.const -1 @@ -18185,36 +18229,38 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf49 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf22 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const -4 i32.le_s i32.const 1 - local.get $4 + local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf49 - local.get $4 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf22 + end + local.get $2 i32.const 4 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select local.set $0 - local.get $2 + local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|050 + loop $while-continue|023 local.get $0 - local.get $4 + local.get $2 i32.lt_s if local.get $0 @@ -18225,12 +18271,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf49 + br_if $__inlined_func$~lib/array/Array#indexOf22 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|050 + br $while-continue|023 end end i32.const -1 @@ -18251,45 +18297,46 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf51 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf24 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $4 - select - br_if $__inlined_func$~lib/array/Array#indexOf51 local.get $2 + select + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf24 + end + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|052 - local.get $1 - local.get $4 + local.set $1 + loop $while-continue|025 + local.get $0 + local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf51 + br_if $__inlined_func$~lib/array/Array#indexOf24 local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|052 + local.set $0 + br $while-continue|025 end end i32.const -1 @@ -18310,45 +18357,46 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store i32.const 1 - local.set $1 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf53 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf26 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 1 i32.le_s i32.const 1 - local.get $4 - select - br_if $__inlined_func$~lib/array/Array#indexOf53 local.get $2 + select + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf26 + end + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|054 - local.get $1 - local.get $4 + local.set $1 + loop $while-continue|027 + local.get $0 + local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf53 + br_if $__inlined_func$~lib/array/Array#indexOf26 local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|054 + local.set $0 + br $while-continue|027 end end i32.const -1 @@ -18369,45 +18417,46 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $1 i32.store i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf55 - local.get $2 + block $__inlined_func$~lib/array/Array#indexOf28 + local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 2 i32.le_s i32.const 1 - local.get $4 - select - br_if $__inlined_func$~lib/array/Array#indexOf55 local.get $2 + select + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf28 + end + local.get $1 i32.load offset=4 - local.set $2 - loop $while-continue|056 - local.get $1 - local.get $4 + local.set $1 + loop $while-continue|029 + local.get $0 + local.get $2 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf55 + br_if $__inlined_func$~lib/array/Array#indexOf28 local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|056 + local.set $0 + br $while-continue|029 end end i32.const -1 @@ -18436,9 +18485,9 @@ local.get $2 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=12 @@ -18452,13 +18501,13 @@ local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|057 - local.get $1 + loop $while-continue|010 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -18467,17 +18516,17 @@ f32.const nan:0x400000 f32.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|057 + local.set $0 + br $while-continue|010 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18498,9 +18547,9 @@ local.get $2 i32.store i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $__inlined_func$~lib/array/Array#indexOf local.get $2 i32.load offset=12 @@ -18514,13 +18563,13 @@ local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|058 - local.get $1 + loop $while-continue|037 + local.get $0 local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -18529,17 +18578,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $__inlined_func$~lib/array/Array#indexOf - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|058 + local.set $0 + br $while-continue|037 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18556,16 +18605,16 @@ i32.const 3 i32.const 4064 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=24 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $0 i32.load offset=12 local.tee $4 local.set $2 i32.const -1 - local.set $0 + local.set $1 block $__inlined_func$~lib/array/Array#lastIndexOf local.get $4 i32.eqz @@ -18586,16 +18635,16 @@ i32.lt_s select local.set $2 - local.get $1 + local.get $0 i32.load offset=4 local.set $4 - loop $while-continue|09 + loop $while-continue|00 local.get $2 i32.const 0 i32.ge_s if local.get $2 - local.tee $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -18604,17 +18653,17 @@ i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $0 + local.get $1 i32.const 1 i32.sub local.set $2 - br $while-continue|09 + br $while-continue|00 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18627,43 +18676,41 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 - local.tee $2 + local.get $0 i32.load offset=12 - local.set $0 + local.tee $4 + local.set $2 i32.const -1 local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf14 - local.get $2 - i32.load offset=12 - local.tee $4 + block $__inlined_func$~lib/array/Array#lastIndexOf5 + local.get $4 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf14 - local.get $0 + br_if $__inlined_func$~lib/array/Array#lastIndexOf5 + local.get $2 local.get $4 i32.add local.get $4 i32.const 1 i32.sub - local.get $0 - local.get $0 + local.get $2 + local.get $2 local.get $4 i32.ge_s select - local.get $0 + local.get $2 i32.const 0 i32.lt_s select - local.set $0 - local.get $2 + local.set $2 + local.get $0 i32.load offset=4 local.set $4 - loop $while-continue|015 - local.get $0 + loop $while-continue|06 + local.get $2 i32.const 0 i32.ge_s if - local.get $0 + local.get $2 local.tee $1 i32.const 2 i32.shl @@ -18672,12 +18719,12 @@ i32.load i32.const 7 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf14 + br_if $__inlined_func$~lib/array/Array#lastIndexOf5 local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|015 + local.set $2 + br $while-continue|06 end end i32.const -1 @@ -18694,27 +18741,29 @@ call $~lib/builtins/abort unreachable end - i32.const -1 - local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf16 - local.get $2 + block $__inlined_func$~lib/array/Array#lastIndexOf7 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf16 - local.get $0 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/array/Array#lastIndexOf7 + end + local.get $1 i32.const 1 i32.sub i32.const 3 - local.get $0 + local.get $1 i32.const 3 i32.le_s select local.set $1 - local.get $2 + local.get $0 i32.load offset=4 - local.set $0 - loop $while-continue|059 + local.set $2 + loop $while-continue|030 local.get $1 i32.const 0 i32.ge_s @@ -18722,17 +18771,17 @@ local.get $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf16 + br_if $__inlined_func$~lib/array/Array#lastIndexOf7 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|059 + br $while-continue|030 end end i32.const -1 @@ -18749,27 +18798,29 @@ call $~lib/builtins/abort unreachable end - i32.const -1 - local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf60 - local.get $2 + block $__inlined_func$~lib/array/Array#lastIndexOf31 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf60 - local.get $0 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/array/Array#lastIndexOf31 + end + local.get $1 i32.const 1 i32.sub i32.const 2 - local.get $0 + local.get $1 i32.const 2 i32.le_s select local.set $1 - local.get $2 + local.get $0 i32.load offset=4 - local.set $0 - loop $while-continue|061 + local.set $2 + loop $while-continue|032 local.get $1 i32.const 0 i32.ge_s @@ -18777,17 +18828,17 @@ local.get $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf60 + br_if $__inlined_func$~lib/array/Array#lastIndexOf31 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|061 + br $while-continue|032 end end i32.const -1 @@ -18802,22 +18853,24 @@ call $~lib/builtins/abort unreachable end - i32.const -1 - local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf62 - local.get $2 + block $__inlined_func$~lib/array/Array#lastIndexOf33 + local.get $0 i32.load offset=12 - local.tee $0 + local.tee $1 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf62 - local.get $0 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/array/Array#lastIndexOf33 + end + local.get $1 i32.const 2 i32.sub local.set $1 - local.get $2 + local.get $0 i32.load offset=4 - local.set $0 - loop $while-continue|063 + local.set $2 + loop $while-continue|034 local.get $1 i32.const 0 i32.ge_s @@ -18825,17 +18878,17 @@ local.get $1 i32.const 2 i32.shl - local.get $0 + local.get $2 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf62 + br_if $__inlined_func$~lib/array/Array#lastIndexOf33 local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|063 + br $while-continue|034 end end i32.const -1 @@ -18850,22 +18903,25 @@ call $~lib/builtins/abort unreachable end - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf64 - local.get $2 - i32.load offset=12 + block $__inlined_func$~lib/array/Array#lastIndexOf35 + local.get $0 local.tee $1 + i32.load offset=12 + local.tee $0 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf64 - local.get $1 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#lastIndexOf35 + end + local.get $0 i32.const 1 i32.sub local.set $0 - local.get $2 + local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|065 + loop $while-continue|036 local.get $0 i32.const 0 i32.ge_s @@ -18878,12 +18934,12 @@ i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf64 + br_if $__inlined_func$~lib/array/Array#lastIndexOf35 local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|065 + br $while-continue|036 end end i32.const -1 @@ -18905,29 +18961,30 @@ local.tee $1 i32.store i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf17 + block $__inlined_func$~lib/array/Array#indexOf37 local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf17 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf37 + end local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|018 + loop $while-continue|038 + local.get $0 local.get $2 - local.get $4 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 i32.const 2 i32.shl local.get $1 @@ -18935,12 +18992,12 @@ i32.load i32.const 44 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf17 + br_if $__inlined_func$~lib/array/Array#indexOf37 local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|018 + local.set $0 + br $while-continue|038 end end i32.const -1 @@ -18962,29 +19019,30 @@ local.tee $1 i32.store i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf20 + block $__inlined_func$~lib/array/Array#indexOf39 local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf20 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf39 + end local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|021 + loop $while-continue|040 + local.get $0 local.get $2 - local.get $4 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 i32.const 2 i32.shl local.get $1 @@ -18992,12 +19050,12 @@ i32.load i32.const 42 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf20 + br_if $__inlined_func$~lib/array/Array#indexOf39 local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|021 + local.set $0 + br $while-continue|040 end end i32.const -1 @@ -19019,29 +19077,30 @@ local.tee $1 i32.store i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf23 + block $__inlined_func$~lib/array/Array#indexOf41 local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf23 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf41 + end local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|024 + loop $while-continue|042 + local.get $0 local.get $2 - local.get $4 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 i32.const 2 i32.shl local.get $1 @@ -19049,12 +19108,12 @@ i32.load i32.const 45 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf23 + br_if $__inlined_func$~lib/array/Array#indexOf41 local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|024 + local.set $0 + br $while-continue|042 end end i32.const -1 @@ -19076,29 +19135,30 @@ local.tee $1 i32.store i32.const 100 - local.set $2 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf26 + block $__inlined_func$~lib/array/Array#indexOf43 local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 100 i32.le_s i32.const 1 - local.get $4 + local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf26 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf43 + end local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|027 + loop $while-continue|044 + local.get $0 local.get $2 - local.get $4 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 i32.const 2 i32.shl local.get $1 @@ -19106,12 +19166,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf26 + br_if $__inlined_func$~lib/array/Array#indexOf43 local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|027 + local.set $0 + br $while-continue|044 end end i32.const -1 @@ -19132,9 +19192,7 @@ global.get $std/array/arr local.tee $1 i32.store - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf29 + block $__inlined_func$~lib/array/Array#indexOf45 local.get $1 i32.load offset=12 local.tee $2 @@ -19143,7 +19201,11 @@ i32.const 1 local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf29 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf45 + end local.get $2 i32.const 100 i32.sub @@ -19157,7 +19219,7 @@ local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|030 + loop $while-continue|046 local.get $0 local.get $2 i32.lt_s @@ -19170,12 +19232,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf29 + br_if $__inlined_func$~lib/array/Array#indexOf45 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|030 + br $while-continue|046 end end i32.const -1 @@ -19196,9 +19258,7 @@ global.get $std/array/arr local.tee $1 i32.store - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf32 + block $__inlined_func$~lib/array/Array#indexOf47 local.get $1 i32.load offset=12 local.tee $2 @@ -19207,7 +19267,11 @@ i32.const 1 local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf32 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf47 + end local.get $2 i32.const 2 i32.sub @@ -19221,7 +19285,7 @@ local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|033 + loop $while-continue|048 local.get $0 local.get $2 i32.lt_s @@ -19234,12 +19298,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf32 + br_if $__inlined_func$~lib/array/Array#indexOf47 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|033 + br $while-continue|048 end end i32.const -1 @@ -19260,9 +19324,7 @@ global.get $std/array/arr local.tee $1 i32.store - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#indexOf35 + block $__inlined_func$~lib/array/Array#indexOf49 local.get $1 i32.load offset=12 local.tee $2 @@ -19271,7 +19333,11 @@ i32.const 1 local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf35 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf49 + end local.get $2 i32.const 4 i32.sub @@ -19285,7 +19351,7 @@ local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|036 + loop $while-continue|050 local.get $0 local.get $2 i32.lt_s @@ -19298,12 +19364,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf35 + br_if $__inlined_func$~lib/array/Array#indexOf49 local.get $0 i32.const 1 i32.add local.set $0 - br $while-continue|036 + br $while-continue|050 end end i32.const -1 @@ -19325,29 +19391,30 @@ local.tee $1 i32.store i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf38 + block $__inlined_func$~lib/array/Array#indexOf51 local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 0 i32.le_s i32.const 1 - local.get $4 + local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf38 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf51 + end local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|039 + loop $while-continue|052 + local.get $0 local.get $2 - local.get $4 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 i32.const 2 i32.shl local.get $1 @@ -19355,12 +19422,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf38 + br_if $__inlined_func$~lib/array/Array#indexOf51 local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|039 + local.set $0 + br $while-continue|052 end end i32.const -1 @@ -19382,29 +19449,30 @@ local.tee $1 i32.store i32.const 1 - local.set $2 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf42 + block $__inlined_func$~lib/array/Array#indexOf53 local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 1 i32.le_s i32.const 1 - local.get $4 + local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf42 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf53 + end local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|043 + loop $while-continue|054 + local.get $0 local.get $2 - local.get $4 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 i32.const 2 i32.shl local.get $1 @@ -19412,12 +19480,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf42 + br_if $__inlined_func$~lib/array/Array#indexOf53 local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|043 + local.set $0 + br $while-continue|054 end end i32.const -1 @@ -19439,29 +19507,30 @@ local.tee $1 i32.store i32.const 2 - local.set $2 - i32.const -1 local.set $0 - block $__inlined_func$~lib/array/Array#indexOf46 + block $__inlined_func$~lib/array/Array#indexOf55 local.get $1 i32.load offset=12 - local.tee $4 + local.tee $2 i32.const 2 i32.le_s i32.const 1 - local.get $4 + local.get $2 select - br_if $__inlined_func$~lib/array/Array#indexOf46 + if + i32.const -1 + local.set $0 + br $__inlined_func$~lib/array/Array#indexOf55 + end local.get $1 i32.load offset=4 local.set $1 - loop $while-continue|047 + loop $while-continue|056 + local.get $0 local.get $2 - local.get $4 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 i32.const 2 i32.shl local.get $1 @@ -19469,12 +19538,12 @@ i32.load i32.const 43 i32.eq - br_if $__inlined_func$~lib/array/Array#indexOf46 + br_if $__inlined_func$~lib/array/Array#indexOf55 local.get $0 i32.const 1 i32.add - local.set $2 - br $while-continue|047 + local.set $0 + br $while-continue|056 end end i32.const -1 @@ -19496,15 +19565,15 @@ i32.const 10 i32.const 4112 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const 0 @@ -19514,36 +19583,36 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.load offset=4 - local.set $0 - loop $while-continue|066 - local.get $1 + local.set $1 + loop $while-continue|047 + local.get $0 local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $0 + local.get $1 i32.add f32.load - local.tee $5 - local.get $5 + local.tee $11 + local.get $11 f32.ne - local.get $5 + local.get $11 f32.const nan:0x400000 f32.eq select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|066 + local.set $0 + br $while-continue|047 end end i32.const 0 @@ -19562,15 +19631,15 @@ i32.const 11 i32.const 4144 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store block $__inlined_func$~lib/array/Array#includes (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $0 + local.get $1 i32.load offset=12 local.tee $2 i32.const 0 @@ -19580,36 +19649,36 @@ select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $0 + local.get $1 i32.load offset=4 - local.set $0 - loop $while-continue|067 - local.get $1 + local.set $1 + loop $while-continue|04857 + local.get $0 local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $1 + local.get $0 i32.const 3 i32.shl - local.get $0 + local.get $1 i32.add f64.load - local.tee $7 - local.get $7 + local.tee $9 + local.get $9 f64.ne - local.get $7 + local.get $9 f64.const nan:0x8000000000000 f64.eq select br_if $__inlined_func$~lib/array/Array#includes drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|067 + local.set $0 + br $while-continue|04857 end end i32.const 0 @@ -19625,18 +19694,18 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/array/Array#splice drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 4 i32.ne @@ -19650,9 +19719,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19666,9 +19735,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -19683,9 +19752,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -19710,21 +19779,21 @@ i32.const 0 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 5 i32.const 2 i32.const 3 i32.const 4224 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19741,12 +19810,12 @@ i32.const 3 i32.const 4272 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19770,21 +19839,21 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 4352 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19801,12 +19870,12 @@ i32.const 3 i32.const 4384 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19830,21 +19899,21 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 3 i32.const 2 i32.const 3 i32.const 4480 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19861,12 +19930,12 @@ i32.const 3 i32.const 4512 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19890,21 +19959,21 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 4592 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19921,12 +19990,12 @@ i32.const 3 i32.const 4624 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19950,21 +20019,21 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4704 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19981,12 +20050,12 @@ i32.const 3 i32.const 4736 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20010,21 +20079,21 @@ i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 4832 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20041,12 +20110,12 @@ i32.const 3 i32.const 4864 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20070,21 +20139,21 @@ i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 2 i32.const 2 i32.const 3 i32.const 4960 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20101,12 +20170,12 @@ i32.const 3 i32.const 4992 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20130,21 +20199,21 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 5072 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20161,12 +20230,12 @@ i32.const 3 i32.const 5104 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20190,21 +20259,21 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 1 i32.const 2 i32.const 3 i32.const 5200 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20221,12 +20290,12 @@ i32.const 3 i32.const 5232 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20250,21 +20319,21 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5328 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20281,12 +20350,12 @@ i32.const 3 i32.const 5360 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20310,21 +20379,21 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5456 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20341,12 +20410,12 @@ i32.const 3 i32.const 5488 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20370,21 +20439,21 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5584 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20401,12 +20470,12 @@ i32.const 3 i32.const 5616 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20430,21 +20499,21 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5712 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20461,12 +20530,12 @@ i32.const 3 i32.const 5744 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20490,21 +20559,21 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store i32.const 0 i32.const 2 i32.const 3 i32.const 5840 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20521,12 +20590,12 @@ i32.const 3 i32.const 5872 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=8 local.get $2 - local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20544,15 +20613,15 @@ i32.const 8 i32.const 5920 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#splice - local.tee $1 + local.tee $0 i32.store offset=20 - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -20562,7 +20631,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 if i32.const 0 @@ -20573,53 +20642,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 5 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#splice - local.tee $1 + local.tee $0 i32.store offset=20 - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -20631,7 +20700,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get i32.load @@ -20645,7 +20714,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#__get i32.load @@ -20659,7 +20728,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=12 i32.const 3 i32.ne @@ -20671,7 +20740,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#__get i32.load @@ -20685,7 +20754,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/array/Array#__get i32.load @@ -20699,7 +20768,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 2 call $~lib/array/Array#__get i32.load @@ -20751,7 +20820,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -20764,11 +20833,11 @@ i32.const 0 i32.gt_s select - local.set $11 + local.set $5 local.get $1 i32.const 1 local.get $3 - local.get $11 + local.get $5 i32.sub local.tee $1 local.get $1 @@ -20781,42 +20850,42 @@ i32.const 0 i32.gt_s select - local.tee $10 + local.tee $6 i32.const 2 i32.const 12 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $7 i32.store - local.get $1 + local.get $7 i32.load offset=4 local.get $0 i32.load offset=4 - local.tee $4 - local.get $11 + local.tee $2 + local.get $5 i32.const 2 i32.shl i32.add - local.tee $2 - local.get $10 + local.tee $1 + local.get $6 i32.const 2 i32.shl call $~lib/memory/memory.copy local.get $3 - local.get $10 - local.get $11 + local.get $5 + local.get $6 i32.add - local.tee $11 + local.tee $5 i32.ne if - local.get $2 - local.get $11 + local.get $1 + local.get $5 i32.const 2 i32.shl - local.get $4 + local.get $2 i32.add local.get $3 - local.get $11 + local.get $5 i32.sub i32.const 2 i32.shl @@ -20824,16 +20893,16 @@ end local.get $0 local.get $3 - local.get $10 + local.get $6 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 - local.get $1 + local.get $7 i32.load offset=12 i32.const 1 i32.ne @@ -20846,7 +20915,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.const 0 call $~lib/array/Array#__get local.tee $1 @@ -20900,9 +20969,9 @@ local.get $0 i32.const 1 call $~lib/array/Array#__get - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.eqz if i32.const 6080 @@ -20912,7 +20981,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load i32.const 2 i32.ne @@ -20926,33 +20995,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.const 1 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 i32.const 2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 i32.const 3 call $~lib/array/Array#__set @@ -20969,7 +21038,7 @@ i32.load offset=12 local.set $2 block $__inlined_func$~lib/array/Array#findIndex - loop $for-loop|075 + loop $for-loop|059 local.get $2 local.get $4 i32.load offset=12 @@ -21000,7 +21069,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|075 + br $for-loop|059 end end i32.const -1 @@ -21018,11 +21087,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6176 i32.store offset=8 i32.const 0 @@ -21030,8 +21099,8 @@ local.get $4 i32.load offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex76 - loop $for-loop|077 + block $__inlined_func$~lib/array/Array#findIndex60 + loop $for-loop|061 local.get $2 local.get $4 i32.load offset=12 @@ -21057,12 +21126,12 @@ i32.const 6176 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex76 + br_if $__inlined_func$~lib/array/Array#findIndex60 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|077 + br $for-loop|061 end end i32.const -1 @@ -21082,11 +21151,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6208 i32.store offset=8 i32.const 0 @@ -21094,8 +21163,8 @@ local.get $4 i32.load offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex78 - loop $for-loop|079 + block $__inlined_func$~lib/array/Array#findIndex62 + loop $for-loop|063 local.get $2 local.get $4 i32.load offset=12 @@ -21121,12 +21190,12 @@ i32.const 6208 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex78 + br_if $__inlined_func$~lib/array/Array#findIndex62 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|079 + br $for-loop|063 end end i32.const -1 @@ -21146,11 +21215,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6240 i32.store offset=8 i32.const 0 @@ -21158,8 +21227,8 @@ local.get $4 i32.load offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex80 - loop $for-loop|081 + block $__inlined_func$~lib/array/Array#findIndex64 + loop $for-loop|065 local.get $2 local.get $4 i32.load offset=12 @@ -21185,12 +21254,12 @@ i32.const 6240 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex80 + br_if $__inlined_func$~lib/array/Array#findIndex64 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|081 + br $for-loop|065 end end i32.const -1 @@ -21211,9 +21280,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -21226,11 +21295,11 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6272 i32.store offset=8 i32.const 0 @@ -21238,8 +21307,8 @@ local.get $4 i32.load offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex83 - loop $for-loop|084 + block $__inlined_func$~lib/array/Array#findIndex66 + loop $for-loop|067 local.get $2 local.get $4 i32.load offset=12 @@ -21265,12 +21334,12 @@ i32.const 6272 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex83 + br_if $__inlined_func$~lib/array/Array#findIndex66 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|084 + br $for-loop|067 end end i32.const -1 @@ -21291,30 +21360,30 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer @@ -21329,8 +21398,8 @@ local.get $4 i32.load offset=12 local.set $2 - block $__inlined_func$~lib/array/Array#findIndex85 - loop $for-loop|086 + block $__inlined_func$~lib/array/Array#findIndex68 + loop $for-loop|069 local.get $2 local.get $4 i32.load offset=12 @@ -21356,12 +21425,12 @@ i32.const 6304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findIndex85 + br_if $__inlined_func$~lib/array/Array#findIndex68 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|086 + br $for-loop|069 end end i32.const -1 @@ -21382,9 +21451,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -21398,17 +21467,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop @@ -21418,49 +21487,48 @@ i32.const 3 i32.const 6336 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 6384 i32.store offset=8 - local.get $1 - local.tee $2 + local.get $2 i32.load offset=12 i32.const 1 i32.sub - local.set $1 + local.set $0 block $__inlined_func$~lib/array/Array#findLastIndex - loop $for-loop|088 - local.get $1 + loop $for-loop|058 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $2 i32.const 6384 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|088 + local.set $0 + br $for-loop|058 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i if @@ -21478,39 +21546,39 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex89 - loop $for-loop|090 - local.get $1 + local.set $0 + block $__inlined_func$~lib/array/Array#findLastIndex59 + loop $for-loop|060 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $2 i32.const 6416 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex89 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findLastIndex59 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|090 + local.set $0 + br $for-loop|060 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -21530,39 +21598,39 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $1 - block $__inlined_func$~lib/array/Array#findLastIndex91 - loop $for-loop|092 - local.get $1 + local.set $0 + block $__inlined_func$~lib/array/Array#findLastIndex61 + loop $for-loop|062 + local.get $0 i32.const 0 i32.ge_s if local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $2 i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex91 - local.get $1 + br_if $__inlined_func$~lib/array/Array#findLastIndex61 + local.get $0 i32.const 1 i32.sub - local.set $1 - br $for-loop|092 + local.set $0 + br $for-loop|062 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21582,39 +21650,39 @@ i32.load offset=12 i32.const 1 i32.sub - local.set $0 - block $__inlined_func$~lib/array/Array#findLastIndex93 - loop $for-loop|094 - local.get $0 + local.set $1 + block $__inlined_func$~lib/array/Array#findLastIndex63 + loop $for-loop|064 + local.get $1 i32.const 0 i32.ge_s if local.get $2 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $2 i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#findLastIndex93 - local.get $0 + br_if $__inlined_func$~lib/array/Array#findLastIndex63 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|094 + local.set $1 + br $for-loop|064 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 global.set $std/array/i global.get $std/array/i i32.const -1 @@ -21628,56 +21696,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6512 i32.store offset=8 block $__inlined_func$~lib/array/Array#every (result i32) i32.const 0 - local.set $0 - local.get $12 + local.set $1 + local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|095 + loop $for-loop|070 local.get $4 - local.get $12 + local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 - local.get $12 + local.get $1 + local.get $5 i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|095 + local.set $1 + br $for-loop|070 end end i32.const 1 @@ -21692,56 +21760,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6544 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every96 (result i32) + block $__inlined_func$~lib/array/Array#every71 (result i32) i32.const 0 - local.set $0 - local.get $12 + local.set $1 + local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|097 + loop $for-loop|072 local.get $4 - local.get $12 + local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 - local.get $12 + local.get $1 + local.get $5 i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every96 + br_if $__inlined_func$~lib/array/Array#every71 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|097 + local.set $1 + br $for-loop|072 end end i32.const 1 @@ -21755,56 +21823,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6576 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every98 (result i32) + block $__inlined_func$~lib/array/Array#every73 (result i32) i32.const 0 - local.set $0 - local.get $12 + local.set $1 + local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|099 + loop $for-loop|074 local.get $4 - local.get $12 + local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 - local.get $12 + local.get $1 + local.get $5 i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every98 + br_if $__inlined_func$~lib/array/Array#every73 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|099 + local.set $1 + br $for-loop|074 end end i32.const 1 @@ -21820,9 +21888,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -21835,56 +21903,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6608 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every101 (result i32) + block $__inlined_func$~lib/array/Array#every75 (result i32) i32.const 0 - local.set $0 - local.get $12 + local.set $1 + local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|0102 + loop $for-loop|076 local.get $4 - local.get $12 + local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 - local.get $12 + local.get $1 + local.get $5 i32.const 6608 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every101 + br_if $__inlined_func$~lib/array/Array#every75 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0102 + local.set $1 + br $for-loop|076 end end i32.const 1 @@ -21899,82 +21967,82 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $12 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer i32.const 6640 i32.store offset=8 - block $__inlined_func$~lib/array/Array#every103 (result i32) + block $__inlined_func$~lib/array/Array#every77 (result i32) i32.const 0 - local.set $0 - local.get $12 + local.set $1 + local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|0104 + loop $for-loop|078 local.get $4 - local.get $12 + local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 - local.get $12 + local.get $1 + local.get $5 i32.const 6640 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $__inlined_func$~lib/array/Array#every103 + br_if $__inlined_func$~lib/array/Array#every77 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0104 + local.set $1 + br $for-loop|078 end end i32.const 1 @@ -21990,9 +22058,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -22006,69 +22074,69 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $12 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer i32.const 6672 i32.store offset=8 block $__inlined_func$~lib/array/Array#some (result i32) i32.const 0 - local.set $0 - local.get $12 + local.set $1 + local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|0106 + loop $for-loop|079 local.get $4 - local.get $12 + local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 - local.get $12 + local.get $1 + local.get $5 i32.const 6672 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0106 + local.set $1 + br $for-loop|079 end end i32.const 0 @@ -22083,55 +22151,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6704 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some107 (result i32) + block $__inlined_func$~lib/array/Array#some80 (result i32) i32.const 0 - local.set $0 - local.get $12 + local.set $1 + local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|0108 + loop $for-loop|081 local.get $4 - local.get $12 + local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 - local.get $12 + local.get $1 + local.get $5 i32.const 6704 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some107 + br_if $__inlined_func$~lib/array/Array#some80 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0108 + local.set $1 + br $for-loop|081 end end i32.const 0 @@ -22145,55 +22213,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6736 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some109 (result i32) + block $__inlined_func$~lib/array/Array#some82 (result i32) i32.const 0 - local.set $0 - local.get $12 + local.set $1 + local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|0110 + loop $for-loop|083 local.get $4 - local.get $12 + local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 - local.get $12 + local.get $1 + local.get $5 i32.const 6736 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some109 + br_if $__inlined_func$~lib/array/Array#some82 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0110 + local.set $1 + br $for-loop|083 end end i32.const 0 @@ -22208,9 +22276,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -22223,55 +22291,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $5 i32.store - local.get $1 + local.get $0 i32.const 6768 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some112 (result i32) + block $__inlined_func$~lib/array/Array#some84 (result i32) i32.const 0 - local.set $0 - local.get $12 + local.set $1 + local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|0113 + loop $for-loop|085 local.get $4 - local.get $12 + local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 - local.get $12 + local.get $1 + local.get $5 i32.const 6768 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some112 + br_if $__inlined_func$~lib/array/Array#some84 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0113 + local.set $1 + br $for-loop|085 end end i32.const 0 @@ -22287,81 +22355,81 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $12 + local.tee $5 i32.store global.get $~lib/memory/__stack_pointer i32.const 6800 i32.store offset=8 - block $__inlined_func$~lib/array/Array#some114 (result i32) + block $__inlined_func$~lib/array/Array#some86 (result i32) i32.const 0 - local.set $0 - local.get $12 + local.set $1 + local.get $5 i32.load offset=12 local.set $4 - loop $for-loop|0115 + loop $for-loop|087 local.get $4 - local.get $12 + local.get $5 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $5 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 - local.get $12 + local.get $1 + local.get $5 i32.const 6800 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $__inlined_func$~lib/array/Array#some114 + br_if $__inlined_func$~lib/array/Array#some86 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0115 + local.set $1 + br $for-loop|087 end end i32.const 0 @@ -22376,9 +22444,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -22392,17 +22460,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop @@ -22416,41 +22484,41 @@ i32.const 6832 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 local.set $2 - loop $for-loop|0117 + loop $for-loop|06988 local.get $2 local.get $4 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6832 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0117 + local.set $1 + br $for-loop|06988 end end global.get $std/array/i @@ -22467,49 +22535,49 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6864 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 local.set $2 - loop $for-loop|0119 + loop $for-loop|071 local.get $2 local.get $4 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6864 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0119 + local.set $1 + br $for-loop|071 end end global.get $std/array/i @@ -22525,9 +22593,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -22542,49 +22610,49 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 6896 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 local.set $2 - loop $for-loop|0122 + loop $for-loop|07489 local.get $2 local.get $4 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6896 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0122 + local.set $1 + br $for-loop|07489 end end global.get $std/array/i @@ -22600,30 +22668,30 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop i32.const 0 @@ -22636,41 +22704,41 @@ i32.const 6928 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 local.set $2 - loop $for-loop|0124 + loop $for-loop|07690 local.get $2 local.get $4 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6928 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0124 + local.set $1 + br $for-loop|07690 end end global.get $std/array/i @@ -22686,9 +22754,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -22702,17 +22770,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop @@ -22724,48 +22792,48 @@ i32.const 6960 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=12 local.set $2 - loop $for-loop|0127 + loop $for-loop|07991 local.get $2 local.get $4 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 local.get $2 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6960 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0127 + local.set $1 + br $for-loop|07991 end end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 100 i32.ne @@ -22800,33 +22868,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop @@ -22839,7 +22907,7 @@ i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22847,71 +22915,71 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 local.get $3 i32.load offset=12 - local.tee $10 + local.tee $6 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $7 i32.store - local.get $1 + local.get $7 i32.load offset=4 - local.set $12 - loop $for-loop|0129 - local.get $10 + local.set $4 + loop $for-loop|08193 + local.get $6 local.get $3 i32.load offset=12 - local.tee $2 - local.get $2 - local.get $10 + local.tee $0 + local.get $0 + local.get $6 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.tee $4 + local.tee $2 local.get $3 i32.load offset=4 i32.add i32.load - local.set $2 + local.set $0 i32.const 3 global.set $~argumentsLength + local.get $2 local.get $4 - local.get $12 i32.add - local.get $2 local.get $0 + local.get $1 local.get $3 i32.const 6992 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) f32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0129 + local.set $1 + br $for-loop|08193 end end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=12 - local.get $1 + local.get $7 i32.load offset=12 i32.const 4 i32.ne @@ -22923,19 +22991,19 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $7 i32.const 0 call $~lib/array/Array#__get - local.set $5 + local.set $11 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s - local.get $5 + local.get $11 f32.ne if i32.const 0 @@ -22948,14 +23016,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 7024 i32.store offset=8 - local.get $1 + local.get $0 i32.const 7024 call $~lib/array/Array#map global.get $std/array/i @@ -22971,9 +23039,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -22988,14 +23056,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 7056 i32.store offset=8 - local.get $1 + local.get $0 i32.const 7056 call $~lib/array/Array#map global.get $std/array/i @@ -23011,42 +23079,42 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 7088 i32.store offset=8 - local.get $1 + local.get $0 i32.const 7088 call $~lib/array/Array#map global.get $std/array/i @@ -23062,9 +23130,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -23078,34 +23146,34 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 7120 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 7120 call $~lib/array/Array#filter - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -23120,14 +23188,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 7152 i32.store offset=8 - local.get $1 + local.get $0 i32.const 7152 call $~lib/array/Array#filter drop @@ -23144,9 +23212,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -23161,14 +23229,14 @@ i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std/array/arr local.tee $1 + global.get $std/array/arr + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 7184 i32.store offset=8 - local.get $1 + local.get $0 i32.const 7184 call $~lib/array/Array#filter drop @@ -23185,42 +23253,42 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 7216 i32.store offset=8 - local.get $1 + local.get $0 i32.const 7216 call $~lib/array/Array#filter drop @@ -23237,9 +23305,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -23253,72 +23321,72 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $12 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 7248 i32.store offset=8 i32.const 0 - local.set $0 + local.set $5 i32.const 0 local.set $1 - local.get $12 + local.get $4 i32.load offset=12 - local.set $4 - loop $for-loop|0136 + local.set $2 + loop $for-loop|094 + local.get $2 local.get $4 - local.get $12 i32.load offset=12 - local.tee $2 + local.tee $0 + local.get $0 local.get $2 - local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 + local.get $5 local.get $0 - local.get $12 + local.get $1 + local.get $4 i32.const 7248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0136 + local.set $1 + br $for-loop|094 end end - local.get $1 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23332,58 +23400,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7280 i32.store offset=8 - i32.const 0 - local.set $0 i32.const 4 + local.set $5 + i32.const 0 local.set $1 - local.get $12 + local.get $4 i32.load offset=12 - local.set $4 - loop $for-loop|0138 + local.set $2 + loop $for-loop|096 + local.get $2 local.get $4 - local.get $12 i32.load offset=12 - local.tee $2 + local.tee $0 + local.get $0 local.get $2 - local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 + local.get $5 local.get $0 - local.get $12 + local.get $1 + local.get $4 i32.const 7280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0138 + local.set $1 + br $for-loop|096 end end - local.get $1 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23397,58 +23465,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7312 i32.store offset=8 i32.const 0 - local.set $0 + local.set $5 i32.const 0 local.set $1 - local.get $12 + local.get $4 i32.load offset=12 - local.set $4 - loop $for-loop|0140 + local.set $2 + loop $for-loop|098 + local.get $2 local.get $4 - local.get $12 i32.load offset=12 - local.tee $2 + local.tee $0 + local.get $0 local.get $2 - local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 + local.get $5 local.get $0 - local.get $12 + local.get $1 + local.get $4 i32.const 7312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0140 + local.set $1 + br $for-loop|098 end end - local.get $1 + local.get $5 i32.eqz if i32.const 0 @@ -23459,58 +23527,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7344 i32.store offset=8 i32.const 0 - local.set $0 + local.set $5 i32.const 0 local.set $1 - local.get $12 + local.get $4 i32.load offset=12 - local.set $4 - loop $for-loop|0142 + local.set $2 + loop $for-loop|0100 + local.get $2 local.get $4 - local.get $12 i32.load offset=12 - local.tee $2 + local.tee $0 + local.get $0 local.get $2 - local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 + local.get $5 local.get $0 - local.get $12 + local.get $1 + local.get $4 i32.const 7344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0142 + local.set $1 + br $for-loop|0100 end end - local.get $1 + local.get $5 if i32.const 0 i32.const 1552 @@ -23520,58 +23588,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7376 i32.store offset=8 i32.const 0 - local.set $0 + local.set $5 i32.const 0 local.set $1 - local.get $12 + local.get $4 i32.load offset=12 - local.set $4 - loop $for-loop|0144 + local.set $2 + loop $for-loop|0102 + local.get $2 local.get $4 - local.get $12 i32.load offset=12 - local.tee $2 + local.tee $0 + local.get $0 local.get $2 - local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 + local.get $5 local.get $0 - local.get $12 + local.get $1 + local.get $4 i32.const 7376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0144 + local.set $1 + br $for-loop|0102 end end - local.get $1 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23586,9 +23654,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -23601,58 +23669,58 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr - local.tee $12 + local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7408 i32.store offset=8 i32.const 0 - local.set $0 + local.set $5 i32.const 0 local.set $1 - local.get $12 + local.get $4 i32.load offset=12 - local.set $4 - loop $for-loop|0147 + local.set $2 + loop $for-loop|0104 + local.get $2 local.get $4 - local.get $12 i32.load offset=12 - local.tee $2 + local.tee $0 + local.get $0 local.get $2 - local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 + local.get $5 local.get $0 - local.get $12 + local.get $1 + local.get $4 i32.const 7408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0147 + local.set $1 + br $for-loop|0104 end end - local.get $1 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23667,84 +23735,84 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $12 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 7440 i32.store offset=8 i32.const 0 - local.set $0 + local.set $5 i32.const 0 local.set $1 - local.get $12 + local.get $4 i32.load offset=12 - local.set $4 - loop $for-loop|0149 + local.set $2 + loop $for-loop|0106 + local.get $2 local.get $4 - local.get $12 i32.load offset=12 - local.tee $2 + local.tee $0 + local.get $0 local.get $2 - local.get $4 i32.gt_s select - local.get $0 + local.get $1 i32.gt_s if - local.get $12 + local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 + local.get $5 local.get $0 - local.get $12 + local.get $1 + local.get $4 i32.const 7440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $5 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0149 + local.set $1 + br $for-loop|0106 end end - local.get $1 + local.get $5 global.set $std/array/i global.get $std/array/i i32.const 1 @@ -23759,9 +23827,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 2 i32.ne @@ -23775,17 +23843,17 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop @@ -23797,20 +23865,20 @@ i32.const 7472 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0151 - local.get $0 + local.set $1 + loop $for-loop|090 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -23818,22 +23886,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7472 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0151 + local.set $1 + br $for-loop|090 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -23847,28 +23915,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7504 i32.store offset=8 i32.const 4 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0153 - local.get $0 + local.set $1 + loop $for-loop|092 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -23876,22 +23944,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7504 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0153 + local.set $1 + br $for-loop|092 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -23905,28 +23973,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7536 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0155 - local.get $0 + local.set $1 + loop $for-loop|094107 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -23934,22 +24002,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7536 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0155 + local.set $1 + br $for-loop|094107 end end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -23960,28 +24028,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7568 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0157 - local.get $0 + local.set $1 + loop $for-loop|096108 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -23989,22 +24057,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7568 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0157 + local.set $1 + br $for-loop|096108 end end - local.get $1 + local.get $0 if i32.const 0 i32.const 1552 @@ -24014,28 +24082,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7600 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0159 - local.get $0 + local.set $1 + loop $for-loop|098109 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -24043,22 +24111,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7600 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0159 + local.set $1 + br $for-loop|098109 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -24073,9 +24141,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -24088,28 +24156,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $std/array/arr local.tee $4 i32.store - local.get $1 + local.get $0 i32.const 7632 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0162 - local.get $0 + local.set $1 + loop $for-loop|0101 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -24117,22 +24185,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7632 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0162 + local.set $1 + br $for-loop|0101 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 10 @@ -24147,30 +24215,30 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer @@ -24181,20 +24249,20 @@ i32.const 7664 i32.store offset=8 i32.const 0 - local.set $1 + local.set $0 local.get $4 i32.load offset=12 i32.const 1 i32.sub - local.set $0 - loop $for-loop|0164 - local.get $0 + local.set $1 + loop $for-loop|0103 + local.get $1 i32.const 0 i32.ge_s if local.get $4 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -24202,22 +24270,22 @@ local.set $2 i32.const 4 global.set $~argumentsLength - local.get $1 - local.get $2 local.get $0 + local.get $2 + local.get $1 local.get $4 i32.const 7664 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0164 + local.set $1 + br $for-loop|0103 end end - local.get $1 + local.get $0 global.set $std/array/i global.get $std/array/i i32.const 6 @@ -24232,9 +24300,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -24246,33 +24314,33 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 1 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/array/Array#push drop @@ -24285,181 +24353,181 @@ i32.const 20 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=20 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 80 i32.store offset=4 - local.get $0 - i32.const 0 local.get $1 + i32.const 0 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=24 - local.get $1 + local.get $0 i32.const 90 i32.store - local.get $1 + local.get $0 i32.const 90 i32.store offset=4 - local.get $0 - i32.const 1 local.get $1 + i32.const 1 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=28 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 95 i32.store offset=4 - local.get $0 - i32.const 2 local.get $1 + i32.const 2 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 100 i32.store offset=4 - local.get $0 - i32.const 3 local.get $1 + i32.const 3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=32 - local.get $1 + local.get $0 i32.const 80 i32.store - local.get $1 + local.get $0 i32.const 110 i32.store offset=4 - local.get $0 - i32.const 4 local.get $1 + i32.const 4 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=36 - local.get $1 + local.get $0 i32.const 110 i32.store - local.get $1 + local.get $0 i32.const 115 i32.store offset=4 - local.get $0 - i32.const 5 local.get $1 + i32.const 5 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=40 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 120 i32.store offset=4 - local.get $0 - i32.const 6 local.get $1 + i32.const 6 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=44 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 125 i32.store offset=4 - local.get $0 - i32.const 7 local.get $1 + i32.const 7 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=48 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 130 i32.store offset=4 - local.get $0 - i32.const 8 local.get $1 + i32.const 8 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=52 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 135 i32.store offset=4 - local.get $0 - i32.const 9 local.get $1 + i32.const 9 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=56 - local.get $1 + local.get $0 i32.const 75 i32.store - local.get $1 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 - i32.const 10 local.get $1 + i32.const 10 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=60 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 - i32.const 11 local.get $1 - call $~lib/array/Array#__uset + i32.const 11 local.get $0 + call $~lib/array/Array#__uset + local.get $1 global.set $std/array/inputStabArr global.get $~lib/memory/__stack_pointer i32.const 12 @@ -24467,181 +24535,181 @@ i32.const 20 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=64 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 95 i32.store offset=4 - local.get $0 - i32.const 0 local.get $1 + i32.const 0 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=68 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 125 i32.store offset=4 - local.get $0 - i32.const 1 local.get $1 + i32.const 1 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=72 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 130 i32.store offset=4 - local.get $0 - i32.const 2 local.get $1 + i32.const 2 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=76 - local.get $1 + local.get $0 i32.const 70 i32.store - local.get $1 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 - i32.const 3 local.get $1 + i32.const 3 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=80 - local.get $1 + local.get $0 i32.const 75 i32.store - local.get $1 + local.get $0 i32.const 140 i32.store offset=4 - local.get $0 - i32.const 4 local.get $1 + i32.const 4 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=84 - local.get $1 + local.get $0 i32.const 80 i32.store - local.get $1 + local.get $0 i32.const 110 i32.store offset=4 - local.get $0 - i32.const 5 local.get $1 + i32.const 5 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=88 - local.get $1 + local.get $0 i32.const 90 i32.store - local.get $1 + local.get $0 i32.const 90 i32.store offset=4 - local.get $0 - i32.const 6 local.get $1 + i32.const 6 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=92 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 80 i32.store offset=4 - local.get $0 - i32.const 7 local.get $1 + i32.const 7 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=96 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 100 i32.store offset=4 - local.get $0 - i32.const 8 local.get $1 + i32.const 8 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=100 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 120 i32.store offset=4 - local.get $0 - i32.const 9 local.get $1 + i32.const 9 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=104 - local.get $1 + local.get $0 i32.const 100 i32.store - local.get $1 + local.get $0 i32.const 135 i32.store offset=4 - local.get $0 - i32.const 10 local.get $1 + i32.const 10 + local.get $0 call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $0 i32.store offset=108 - local.get $1 + local.get $0 i32.const 110 i32.store - local.get $1 + local.get $0 i32.const 115 i32.store offset=4 - local.get $0 - i32.const 11 local.get $1 - call $~lib/array/Array#__uset + i32.const 11 local.get $0 + call $~lib/array/Array#__uset + local.get $1 global.set $std/array/outputStabArr global.get $~lib/memory/__stack_pointer i32.const 3 @@ -24649,23 +24717,23 @@ i32.const 10 i32.const 7936 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=4 i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 call $~lib/array/Array#sort@varargs i32.const 3 i32.const 2 i32.const 10 i32.const 8000 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -24682,23 +24750,23 @@ i32.const 10 i32.const 8032 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=12 i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 call $~lib/array/Array#sort@varargs i32.const 8 i32.const 2 i32.const 10 i32.const 8096 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -24715,14 +24783,12 @@ i32.const 11 i32.const 8160 call $~lib/rt/__newArray - local.tee $1 + local.tee $5 i32.store offset=112 i32.const 0 global.set $~argumentsLength - local.get $1 - local.set $0 i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24730,29 +24796,29 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of148 - block $0of149 - block $outOfRange50 + block $1of18 + block $0of19 + block $outOfRange10 global.get $~argumentsLength - br_table $0of149 $1of148 $outOfRange50 + br_table $0of19 $1of18 $outOfRange10 end unreachable end i32.const 8256 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8256 i32.store end - local.get $0 + local.get $5 i32.load offset=4 - local.get $0 + local.get $5 i32.load offset=12 - local.get $1 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24763,45 +24829,45 @@ i32.const 11 i32.const 8288 call $~lib/rt/__newArray - local.set $12 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $4 i32.store offset=8 block $__inlined_func$std/array/isArraysEqual (result i32) i32.const 0 - local.set $1 + local.set $0 i32.const 0 - local.get $0 + local.get $5 i32.load offset=12 - local.tee $2 - local.get $12 + local.tee $1 + local.get $4 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual drop i32.const 1 - local.get $0 - local.get $12 + local.get $4 + local.get $5 i32.eq br_if $__inlined_func$std/array/isArraysEqual drop - loop $for-loop|028 + loop $for-loop|038 + local.get $0 local.get $1 - local.get $2 i32.lt_s if + local.get $5 local.get $0 - local.get $1 call $~lib/array/Array#__get - local.tee $7 - local.get $7 + local.tee $9 + local.get $9 f64.ne if (result i32) - local.get $12 - local.get $1 + local.get $4 + local.get $0 call $~lib/array/Array#__get - local.tee $7 - local.get $7 + local.tee $9 + local.get $9 f64.ne else i32.const 0 @@ -24809,21 +24875,21 @@ i32.eqz if i32.const 0 + local.get $5 local.get $0 - local.get $1 call $~lib/array/Array#__get - local.get $12 - local.get $1 + local.get $4 + local.get $0 call $~lib/array/Array#__get f64.ne br_if $__inlined_func$std/array/isArraysEqual drop end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|028 + local.set $0 + br $for-loop|038 end end i32.const 1 @@ -24847,10 +24913,8 @@ i32.store offset=116 i32.const 0 global.set $~argumentsLength - local.get $1 - local.set $0 i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -24858,29 +24922,29 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1212 - block $0of1213 - block $outOfRange214 + block $1of1151 + block $0of1152 + block $outOfRange153 global.get $~argumentsLength - br_table $0of1213 $1of1212 $outOfRange214 + br_table $0of1152 $1of1151 $outOfRange153 end unreachable end i32.const 8432 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8432 i32.store end - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $0 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24891,12 +24955,12 @@ i32.const 3 i32.const 8464 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -24914,11 +24978,11 @@ i32.const 7 i32.const 8512 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=120 i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 i32.const 0 call $~lib/array/Array#sort@varargs drop @@ -24927,12 +24991,12 @@ i32.const 7 i32.const 8592 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 local.get $1 + local.get $0 call $std/array/isArraysEqual i32.eqz if @@ -24949,7 +25013,7 @@ i32.const 3 i32.const 8640 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=124 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -24957,7 +25021,7 @@ i32.const 3 i32.const 8672 call $~lib/rt/__newArray - local.tee $9 + local.tee $8 i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -24973,7 +25037,7 @@ i32.const 3 i32.const 8736 call $~lib/rt/__newArray - local.tee $10 + local.tee $7 i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24981,17 +25045,17 @@ i32.const 3 i32.const 8784 call $~lib/rt/__newArray - local.tee $6 + local.tee $10 i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $11 + local.tee $6 i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $12 + local.tee $5 i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 1024 @@ -25006,23 +25070,23 @@ global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $1 + local.tee $0 i32.store offset=160 - local.get $0 + local.get $1 call $std/array/assertSortedDefault - local.get $9 + local.get $8 call $std/array/assertSortedDefault i32.const 1 i32.const 2 i32.const 3 i32.const 8864 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 - local.get $9 - local.get $0 + local.get $8 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25041,12 +25105,12 @@ i32.const 3 i32.const 8896 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=8 local.get $3 - local.get $0 + local.get $1 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25058,10 +25122,10 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $7 call $std/array/assertSortedDefault + local.get $7 local.get $10 - local.get $6 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -25073,10 +25137,10 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $6 call $std/array/assertSortedDefault - local.get $11 local.get $6 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -25088,10 +25152,10 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $5 call $std/array/assertSortedDefault - local.get $12 - local.get $6 + local.get $5 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -25106,7 +25170,7 @@ local.get $4 call $std/array/assertSortedDefault local.get $4 - local.get $6 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -25121,7 +25185,7 @@ local.get $2 call $std/array/assertSortedDefault local.get $2 - local.get $6 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -25133,46 +25197,240 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $std/array/assertSortedDefault - call $std/array/assertStableSortedForComplexObjects + i32.const 0 + local.set $8 + i32.const 0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + i64.const 0 + i64.store offset=8 + local.get $6 + i64.const 0 + i64.store offset=16 + local.get $6 + global.get $std/array/inputStabArr + local.tee $5 + i32.store offset=8 + local.get $6 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + i32.const 0 + local.get $5 + i32.load offset=12 + local.tee $2 + local.get $2 + i32.const 0 + i32.gt_s + select + local.set $1 + local.get $0 + local.get $2 + local.get $1 + i32.sub + local.tee $0 + i32.const 0 + local.get $0 + i32.const 0 + i32.gt_s + select + local.tee $0 + i32.const 2 + i32.const 20 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store + local.get $3 + i32.load offset=4 + local.set $4 + local.get $5 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $2 + local.get $0 + i32.const 2 + i32.shl + local.set $1 + loop $while-continue|012 + local.get $1 + local.get $8 + i32.gt_u + if + local.get $4 + local.get $8 + i32.add + local.get $2 + local.get $8 + i32.add + i32.load + local.tee $0 + i32.store + local.get $3 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $8 + i32.const 4 + i32.add + local.set $8 + br $while-continue|012 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.tee $0 + local.get $3 + i32.store + local.get $0 + i32.const 8928 + i32.store offset=4 + local.get $3 + i32.load offset=4 + local.get $3 + i32.load offset=12 + i32.const 8928 + call $~lib/util/sort/SORT + local.get $6 + local.get $3 + i32.store offset=12 + i32.const 1 + local.set $8 + global.get $~lib/memory/__stack_pointer + global.get $std/array/inputStabArr + local.tee $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $1 + loop $for-loop|013 + local.get $1 + local.get $7 + i32.gt_s + if + block $for-break0 + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $7 + call $~lib/array/Array#__get + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/outputStabArr + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $7 + call $~lib/array/Array#__get + local.tee $0 + i32.store offset=20 + local.get $2 + i32.load + local.get $0 + i32.load + i32.ne + if (result i32) + i32.const 1 + else + local.get $2 + i32.load offset=4 + local.get $0 + i32.load offset=4 + i32.ne + end + if + i32.const 0 + local.set $8 + br $for-break0 + end + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|013 + end + end + end + local.get $8 + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1042 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray - local.tee $0 + local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray - local.tee $1 + local.tee $0 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 8960 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8960 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 8992 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8992 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 9024 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9024 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 9056 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9056 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25180,120 +25438,120 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $4 i64.const 0 i64.store - local.get $1 + local.get $4 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 + local.get $0 i32.const 16 i32.const 26 call $~lib/rt/itcms/__new - local.tee $12 + local.tee $5 i32.store - local.get $12 + local.get $5 i32.const 0 i32.store - local.get $12 + local.get $5 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link - local.get $12 + local.get $5 i32.const 0 i32.store offset=4 - local.get $12 + local.get $5 i32.const 0 i32.store offset=8 - local.get $12 + local.get $5 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 32 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.const 32 call $~lib/memory/memory.fill - local.get $12 - local.get $2 + local.get $5 + local.get $0 i32.store - local.get $12 - local.get $2 + local.get $5 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $12 - local.get $2 + local.get $5 + local.get $0 i32.store offset=4 - local.get $12 + local.get $5 i32.const 32 i32.store offset=8 - local.get $12 + local.get $5 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $12 + local.get $4 + local.get $5 i32.store - loop $for-loop|0215 - local.get $0 + loop $for-loop|0154 + local.get $1 i32.const 2 i32.lt_s if global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 i32.const 1 - local.get $0 + local.get $1 i32.sub call $~lib/array/Array#__set - local.get $12 - local.get $0 + local.get $5 local.get $1 - call $~lib/array/Array<~lib/array/Array>#__set local.get $0 + call $~lib/array/Array<~lib/array/Array>#__set + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0215 + local.set $1 + br $for-loop|0154 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 + local.get $5 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 9088 i32.store offset=8 - local.get $12 + local.get $5 i32.const 9088 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $12 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25301,7 +25559,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -25313,7 +25571,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -25344,21 +25602,21 @@ i32.const 2048 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.const 2048 call $~lib/memory/memory.fill local.get $0 - local.get $2 + local.get $4 i32.store local.get $0 - local.get $2 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link local.get $0 - local.get $2 + local.get $4 i32.store offset=4 local.get $0 i32.const 2048 @@ -25373,15 +25631,11 @@ local.get $1 local.get $0 i32.store - loop $for-loop|051 - local.get $12 + loop $for-loop|015 + local.get $5 i32.const 512 i32.lt_s if - i32.const 511 - local.get $12 - i32.sub - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25389,7 +25643,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -25401,7 +25655,9 @@ local.tee $1 i32.store local.get $1 - local.get $2 + i32.const 511 + local.get $5 + i32.sub i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25411,14 +25667,14 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $12 + local.get $5 local.get $1 call $~lib/array/Array<~lib/array/Array>#__set - local.get $12 + local.get $5 i32.const 1 i32.add - local.set $12 - br $for-loop|051 + local.set $5 + br $for-loop|015 end end global.get $~lib/memory/__stack_pointer @@ -25439,7 +25695,7 @@ i32.const 31 i32.const 9312 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 7 @@ -25447,14 +25703,12 @@ i32.const 31 i32.const 9360 call $~lib/rt/__newArray - local.tee $11 + local.tee $6 i32.store offset=152 i32.const 1 global.set $~argumentsLength - local.get $1 - local.set $0 i32.const 0 - local.set $12 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25462,22 +25716,22 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of152 - block $0of153 - block $outOfRange54 + block $1of117 + block $0of118 + block $outOfRange19 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of153 $1of152 $outOfRange54 + br_table $0of118 $1of117 $outOfRange19 end unreachable end i32.const 9408 - local.set $12 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 9408 i32.store @@ -25489,7 +25743,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -25497,7 +25751,7 @@ i32.load offset=4 local.get $0 i32.load offset=12 - local.get $12 + local.get $5 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer local.tee $1 @@ -25511,22 +25765,22 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store i32.const 1 - local.set $10 + local.set $7 local.get $0 i32.load offset=12 local.set $1 - loop $for-loop|055 + loop $for-loop|020 local.get $1 - local.get $10 + local.get $7 i32.gt_s if local.get $0 - local.get $10 + local.get $7 i32.const 1 i32.sub call $~lib/array/Array#__get @@ -25535,7 +25789,7 @@ local.get $4 i32.store local.get $0 - local.get $10 + local.get $7 call $~lib/array/Array#__get local.set $2 global.get $~lib/memory/__stack_pointer @@ -25545,7 +25799,7 @@ global.set $~argumentsLength local.get $4 local.get $2 - local.get $12 + local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -25558,11 +25812,11 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $10 + local.get $7 i32.const 1 i32.add - local.set $10 - br $for-loop|055 + local.set $7 + br $for-loop|020 end end global.get $~lib/memory/__stack_pointer @@ -25590,7 +25844,7 @@ global.set $~lib/memory/__stack_pointer block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) i32.const 0 - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -25598,52 +25852,52 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store block $folding-inner1 - block $folding-inner0 + block $folding-inner021 local.get $0 i32.load offset=12 - local.tee $2 - local.get $11 + local.tee $1 + local.get $6 i32.load offset=12 i32.ne - br_if $folding-inner0 + br_if $folding-inner021 local.get $0 - local.get $11 + local.get $6 i32.eq br_if $folding-inner1 - loop $for-loop|042 + loop $for-loop|049 local.get $1 - local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if local.get $0 - local.get $1 + local.get $3 call $~lib/array/Array#__get - local.set $12 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $4 i32.store - local.get $11 - local.get $1 + local.get $6 + local.get $3 call $~lib/array/Array#__get - local.set $4 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.store offset=4 - local.get $12 local.get $4 + local.get $2 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner0 - local.get $1 + br_if $folding-inner021 + local.get $3 i32.const 1 i32.add - local.set $1 - br $for-loop|042 + local.set $3 + br $for-loop|049 end end br $folding-inner1 @@ -25671,28 +25925,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 local.set $3 - local.get $1 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor local.tee $2 i32.store - loop $for-loop|044 + loop $for-loop|0155 local.get $3 i32.const 400 i32.lt_s @@ -25701,9 +25955,9 @@ f64.const 32 f64.mul i32.trunc_f64_s - local.set $12 + local.set $5 i32.const 0 - local.set $9 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -25711,7 +25965,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -25724,11 +25978,13 @@ local.get $1 i32.const 9280 i32.store - loop $for-loop|0156 - local.get $9 - local.get $12 - i32.lt_s + loop $for-loop|00 + local.get $5 + local.get $8 + i32.gt_s if + local.get $0 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $4 i32.const 7744 @@ -25745,7 +26001,7 @@ f64.mul f64.floor i32.trunc_f64_s - local.set $10 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25753,7 +26009,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -25762,7 +26018,7 @@ i32.load i32.const 1 i32.shr_u - local.get $10 + local.get $7 i32.le_u if global.get $~lib/memory/__stack_pointer @@ -25770,17 +26026,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $1 + local.set $0 br $__inlined_func$~lib/string/String#charAt end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 - local.get $10 + local.get $0 + local.get $7 i32.const 1 i32.shl i32.const 7744 @@ -25793,19 +26049,19 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $4 - local.get $0 local.get $1 + local.get $0 call $~lib/string/String.__concat local.tee $0 i32.store - local.get $9 + local.get $8 i32.const 1 i32.add - local.set $9 - br $for-loop|0156 + local.set $8 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer @@ -25823,7 +26079,7 @@ i32.const 1 i32.add local.set $3 - br $for-loop|044 + br $for-loop|0155 end end global.get $~lib/memory/__stack_pointer @@ -25831,12 +26087,12 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.tee $1 + local.tee $0 i32.store offset=156 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -25844,28 +26100,28 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of146 - block $0of147 - block $outOfRange48 + block $1of1156 + block $0of1157 + block $outOfRange158 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of147 $1of146 $outOfRange48 + br_table $0of1157 $1of1156 $outOfRange158 end unreachable end i32.const 9440 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 9440 i32.store end - local.get $1 local.get $0 + local.get $1 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 4 @@ -25876,24 +26132,24 @@ i32.const 35 i32.const 9472 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer local.tee $2 - local.get $1 + local.get $0 i32.store offset=164 local.get $2 i32.const 9568 i32.store offset=168 - local.get $1 + local.get $0 i32.load offset=4 - local.set $10 - local.get $1 + local.set $7 + local.get $0 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $9 + local.set $8 local.get $2 i32.const 4 i32.sub @@ -25901,7 +26157,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -25918,20 +26174,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end - block $folding-inner04 + block $folding-inner01 local.get $3 i32.eqz if i32.const 9504 i32.const 9536 - local.get $10 + local.get $7 i32.load8_u select - local.set $0 - br $folding-inner04 + local.set $1 + br $folding-inner01 end global.get $~lib/memory/__stack_pointer local.get $3 @@ -25939,7 +26195,7 @@ i32.load i32.const 1 i32.shr_u - local.tee $11 + local.tee $6 i32.const 5 i32.add i32.mul @@ -25952,20 +26208,20 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|16 + loop $for-loop|13 local.get $3 - local.get $9 + local.get $8 i32.gt_s if - local.get $9 - local.get $10 + local.get $7 + local.get $8 i32.add i32.load8_u local.tee $2 i32.eqz i32.const 4 i32.add - local.set $12 + local.set $5 local.get $0 i32.const 1 i32.shl @@ -25975,15 +26231,15 @@ i32.const 9536 local.get $2 select - local.get $12 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $12 + local.get $5 i32.add local.set $0 - local.get $11 + local.get $6 if local.get $0 i32.const 1 @@ -25991,31 +26247,31 @@ local.get $1 i32.add i32.const 9568 - local.get $11 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $11 + local.get $6 i32.add local.set $0 end - local.get $9 + local.get $8 i32.const 1 i32.add - local.set $9 - br $for-loop|16 + local.set $8 + br $for-loop|13 end end local.get $3 - local.get $10 + local.get $7 i32.add i32.load8_u local.tee $2 i32.eqz i32.const 4 i32.add - local.set $12 + local.set $5 local.get $0 i32.const 1 i32.shl @@ -26025,13 +26281,13 @@ i32.const 9536 local.get $2 select - local.get $12 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $4 local.get $0 - local.get $12 + local.get $5 i32.add local.tee $0 i32.gt_s @@ -26039,15 +26295,13 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 - br $folding-inner04 + local.set $1 + br $folding-inner01 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 br $__inlined_func$~lib/util/string/joinBooleanArray end global.get $~lib/memory/__stack_pointer @@ -26056,13 +26310,13 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 9600 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9600 call $~lib/string/String.__eq i32.eqz @@ -26079,25 +26333,25 @@ i32.const 3 i32.const 9648 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 i32.const 9280 i32.store offset=168 - local.get $0 + local.get $1 i32.const 9280 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 11456 i32.store offset=8 - local.get $1 + local.get $0 i32.const 11456 call $~lib/string/String.__eq i32.eqz @@ -26114,25 +26368,25 @@ i32.const 7 i32.const 11488 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 i32.const 11520 i32.store offset=168 - local.get $0 + local.get $1 i32.const 11520 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 11456 i32.store offset=8 - local.get $1 + local.get $0 i32.const 11456 call $~lib/string/String.__eq i32.eqz @@ -26149,25 +26403,25 @@ i32.const 3 i32.const 11552 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 i32.const 11584 i32.store offset=168 - local.get $0 + local.get $1 i32.const 11584 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 11616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 11616 call $~lib/string/String.__eq i32.eqz @@ -26184,24 +26438,24 @@ i32.const 11 i32.const 11696 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 i32.const 11776 i32.store offset=168 - local.get $0 + local.get $1 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 12944 i32.store offset=8 - local.get $1 + local.get $0 i32.const 12944 call $~lib/string/String.__eq i32.eqz @@ -26218,25 +26472,25 @@ i32.const 31 i32.const 13088 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 i32.const 9280 i32.store offset=168 - local.get $0 + local.get $1 i32.const 9280 call $~lib/array/Array<~lib/string/String|null>#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 13056 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13056 call $~lib/string/String.__eq i32.eqz @@ -26249,48 +26503,48 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 3 i32.const 2 i32.const 12 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=152 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 2 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 9568 i32.store offset=168 - local.get $0 + local.get $1 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 13184 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13184 call $~lib/string/String.__eq i32.eqz @@ -26303,44 +26557,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=160 - local.get $0 + local.get $1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 9568 i32.store offset=168 - local.get $0 + local.get $1 call $~lib/array/Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 13280 i32.store offset=8 - local.get $1 + local.get $0 i32.const 13280 call $~lib/string/String.__eq i32.eqz @@ -26366,7 +26620,7 @@ i32.const 3 i32.const 13408 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -26382,7 +26636,7 @@ i32.const 3 i32.const 13472 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=144 local.get $4 call $~lib/array/Array#toString @@ -26405,14 +26659,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $~lib/array/Array#toString local.set $4 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 local.get $4 i32.store - local.get $1 + local.get $0 i32.const 13056 i32.store offset=8 local.get $4 @@ -26431,10 +26685,10 @@ call $~lib/array/Array#toString local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 local.get $2 i32.store - local.get $1 + local.get $0 i32.const 13520 i32.store offset=8 local.get $2 @@ -26449,17 +26703,17 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 call $~lib/array/Array#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 13552 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13552 call $~lib/string/String.__eq i32.eqz @@ -26476,19 +26730,19 @@ i32.const 36 i32.const 13600 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer local.tee $2 i32.const 0 @@ -26496,16 +26750,16 @@ local.get $2 i32.const 9568 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.set $12 - local.get $0 + local.set $5 + local.get $1 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $9 + local.set $8 local.get $2 i32.const 4 i32.sub @@ -26513,7 +26767,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -26521,7 +26775,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $11 + local.tee $6 i32.const 0 i32.lt_s if @@ -26530,21 +26784,21 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner09 - local.get $11 + block $folding-inner04 + local.get $6 i32.eqz if - local.get $12 + local.get $5 i32.load8_s call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner09 + local.set $1 + br $folding-inner04 end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $6 i32.const 9564 i32.load i32.const 1 @@ -26562,18 +26816,18 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|011 - local.get $9 - local.get $11 - i32.lt_s + loop $for-loop|06 + local.get $6 + local.get $8 + i32.gt_s if local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $9 - local.get $12 + local.get $5 + local.get $8 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -26597,11 +26851,11 @@ i32.add local.set $0 end - local.get $9 + local.get $8 i32.const 1 i32.add - local.set $9 - br $for-loop|011 + local.set $8 + br $for-loop|06 end end local.get $2 @@ -26610,8 +26864,8 @@ i32.shl local.get $1 i32.add - local.get $11 - local.get $12 + local.get $5 + local.get $6 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -26623,15 +26877,13 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 - br $folding-inner09 + local.set $1 + br $folding-inner04 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -26644,13 +26896,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 13632 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13632 call $~lib/string/String.__eq i32.eqz @@ -26667,19 +26919,19 @@ i32.const 9 i32.const 13664 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer local.tee $2 i32.const 0 @@ -26687,16 +26939,16 @@ local.get $2 i32.const 9568 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.set $12 - local.get $0 + local.set $5 + local.get $1 i32.load offset=12 local.set $1 i32.const 0 local.set $0 i32.const 0 - local.set $9 + local.set $8 local.get $2 i32.const 4 i32.sub @@ -26704,7 +26956,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -26712,7 +26964,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $11 + local.tee $6 i32.const 0 i32.lt_s if @@ -26721,21 +26973,21 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 9280 - local.set $0 + local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner013 - local.get $11 + block $folding-inner07 + local.get $6 i32.eqz if - local.get $12 + local.get $5 i32.load16_u call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner013 + local.set $1 + br $folding-inner07 end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $6 i32.const 9564 i32.load i32.const 1 @@ -26753,20 +27005,20 @@ call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|015 - local.get $9 - local.get $11 - i32.lt_s + loop $for-loop|09124 + local.get $6 + local.get $8 + i32.gt_s if local.get $0 i32.const 1 i32.shl local.get $1 i32.add - local.get $9 + local.get $8 i32.const 1 i32.shl - local.get $12 + local.get $5 i32.add i32.load16_u call $~lib/util/number/itoa_buffered @@ -26790,11 +27042,11 @@ i32.add local.set $0 end - local.get $9 + local.get $8 i32.const 1 i32.add - local.set $9 - br $for-loop|015 + local.set $8 + br $for-loop|09124 end end local.get $2 @@ -26803,10 +27055,10 @@ i32.shl local.get $1 i32.add - local.get $11 + local.get $6 i32.const 1 i32.shl - local.get $12 + local.get $5 i32.add i32.load16_u call $~lib/util/number/itoa_buffered @@ -26818,15 +27070,13 @@ local.get $1 local.get $0 call $~lib/string/String#substring - local.set $0 - br $folding-inner013 + local.set $1 + br $folding-inner07 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer @@ -26839,13 +27089,13 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 13696 i32.store offset=8 - local.get $0 + local.get $1 i32.const 13696 call $~lib/string/String.__eq i32.eqz @@ -26862,27 +27112,27 @@ i32.const 37 i32.const 13744 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9568 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -26890,10 +27140,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13792 i32.store offset=8 local.get $0 @@ -26913,359 +27162,37 @@ i32.const 38 i32.const 13872 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=164 + local.tee $0 local.get $1 + i32.store offset=164 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 9568 i32.store - local.get $0 - i32.load offset=4 - local.set $12 - local.get $0 - i32.load offset=12 - local.set $1 - i32.const 0 + local.get $1 + call $~lib/array/Array#join local.set $0 - i32.const 0 - local.set $9 - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $1 - i32.const 1 - i32.sub - local.tee $11 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9280 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - block $folding-inner017 - local.get $11 - i32.eqz - if - local.get $12 - i64.load - i64.extend32_s - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa64 - local.get $8 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 9872 - local.set $0 - br $__inlined_func$~lib/util/number/itoa64 - end - i64.const 0 - local.get $8 - i64.sub - local.get $8 - local.get $8 - i64.const 63 - i64.shr_u - i32.wrap_i64 - local.tee $4 - select - local.tee $8 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.wrap_i64 - local.tee $2 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.get $4 - i32.add - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $8 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $8 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $8 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $8 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $8 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $8 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $8 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $8 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $8 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $8 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.get $4 - i32.add - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $8 - local.get $1 - call $~lib/util/number/utoa64_dec_lut - end - local.get $4 - if - local.get $0 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - br $folding-inner017 - end - global.get $~lib/memory/__stack_pointer - local.get $11 - i32.const 9564 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 21 - i32.add - i32.mul - i32.const 21 - i32.add - local.tee $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - loop $for-loop|019 - local.get $9 - local.get $11 - i32.lt_s - if - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - local.get $9 - i32.const 3 - i32.shl - local.get $12 - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $4 - if - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.const 9568 - local.get $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - local.get $4 - i32.add - local.set $0 - end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|019 - end - end - local.get $2 - local.get $0 - i32.const 1 - i32.shl - local.get $1 - i32.add - local.get $11 - i32.const 3 - i32.shl - local.get $12 - i32.add - i64.load - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $0 - i32.gt_s - if - local.get $1 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner017 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 13936 i32.store offset=8 local.get $0 @@ -27286,18 +27213,18 @@ i32.const 31 i32.const 14048 call $~lib/rt/__newArray - local.tee $1 + local.tee $0 i32.store offset=140 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 14096 i32.store offset=8 - local.get $1 + local.get $0 i32.const 14096 call $~lib/string/String.__eq i32.eqz @@ -27314,20 +27241,20 @@ i32.const 31 i32.const 14208 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=164 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 14256 i32.store offset=8 - local.get $1 + local.get $0 i32.const 14256 call $~lib/string/String.__eq i32.eqz @@ -27340,19 +27267,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 26 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=160 - local.get $0 + local.get $1 i32.const 0 i32.const 2 i32.const 2 @@ -27360,7 +27287,7 @@ i32.const 14288 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 2 @@ -27368,8 +27295,8 @@ i32.const 14320 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27378,42 +27305,42 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9568 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.set $11 - local.get $0 + local.set $7 + local.get $1 i32.load offset=12 - local.set $0 + local.set $2 i32.const 0 - local.set $10 - local.get $1 + local.set $1 + local.get $0 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $0 + local.get $2 i32.const 1 i32.sub - local.tee $12 + local.tee $6 i32.const 0 i32.lt_s if @@ -27425,17 +27352,17 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $12 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $7 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) - local.get $1 + local.get $0 call $~lib/array/Array#toString else i32.const 9280 @@ -27456,37 +27383,37 @@ i32.load i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|022 - local.get $10 - local.get $12 + local.set $4 + loop $for-loop|011 + local.get $1 + local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $1 i32.const 2 i32.shl - local.get $11 + local.get $7 i32.add i32.load - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 call $~lib/array/Array#toString - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 local.get $0 - local.get $4 + local.get $5 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 end - local.get $2 + local.get $4 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27495,18 +27422,18 @@ local.tee $0 i32.store offset=4 end - local.get $10 + local.get $1 i32.const 1 i32.add - local.set $10 - br $for-loop|022 + local.set $1 + br $for-loop|011 end end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $6 i32.const 2 i32.shl - local.get $11 + local.get $7 i32.add i32.load local.tee $2 @@ -27555,19 +27482,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 39 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=132 - local.get $0 + local.get $1 i32.const 0 i32.const 2 i32.const 0 @@ -27575,7 +27502,7 @@ i32.const 14400 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 2 i32.const 0 @@ -27583,8 +27510,8 @@ i32.const 14432 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -27593,42 +27520,42 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9568 i32.store - local.get $0 + local.get $1 i32.load offset=4 - local.set $11 - local.get $0 + local.set $7 + local.get $1 i32.load offset=12 - local.set $0 + local.set $2 i32.const 0 - local.set $10 - local.get $1 + local.set $1 + local.get $0 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> - local.get $0 + local.get $2 i32.const 1 i32.sub - local.tee $12 + local.tee $6 i32.const 0 i32.lt_s if @@ -27640,17 +27567,17 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - local.get $12 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $7 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) - local.get $1 + local.get $0 call $~lib/array/Array#toString else i32.const 9280 @@ -27671,37 +27598,37 @@ i32.load i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|025 - local.get $10 - local.get $12 + local.set $4 + loop $for-loop|01322 + local.get $1 + local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $1 i32.const 2 i32.shl - local.get $11 + local.get $7 i32.add i32.load - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 call $~lib/array/Array#toString - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 local.get $0 - local.get $4 + local.get $5 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 end - local.get $2 + local.get $4 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27710,18 +27637,18 @@ local.tee $0 i32.store offset=4 end - local.get $10 + local.get $1 i32.const 1 i32.add - local.set $10 - br $for-loop|025 + local.set $1 + br $for-loop|01322 end end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $6 i32.const 2 i32.shl - local.get $11 + local.get $7 i32.add i32.load local.tee $2 @@ -27770,7 +27697,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 1 i32.const 2 i32.const 41 @@ -27788,13 +27715,13 @@ i32.const 40 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=124 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=120 - local.get $0 + local.get $1 i32.const 0 i32.const 1 i32.const 2 @@ -27804,9 +27731,9 @@ call $~lib/array/Array#__uset local.get $2 i32.const 0 - local.get $0 - call $~lib/array/Array#__uset local.get $1 + call $~lib/array/Array#__uset + local.get $0 local.get $2 i32.store offset=128 global.get $~lib/memory/__stack_pointer @@ -27816,42 +27743,42 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9568 i32.store local.get $2 i32.load offset=4 - local.set $11 + local.set $7 local.get $2 i32.load offset=12 - local.set $0 + local.set $2 i32.const 0 - local.set $10 - local.get $1 + local.set $1 + local.get $0 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - local.get $0 + local.get $2 i32.const 1 i32.sub - local.tee $12 + local.tee $6 i32.const 0 i32.lt_s if @@ -27863,17 +27790,17 @@ local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end - local.get $12 + local.get $6 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $7 i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if (result i32) - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString else i32.const 9280 @@ -27894,37 +27821,37 @@ i32.load i32.const 1 i32.shr_u - local.set $2 - loop $for-loop|029 - local.get $10 - local.get $12 + local.set $4 + loop $for-loop|01523 + local.get $1 + local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $1 i32.const 2 i32.shl - local.get $11 + local.get $7 i32.add i32.load - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 call $~lib/array/Array<~lib/array/Array>#toString - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.store offset=8 local.get $0 - local.get $4 + local.get $5 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 end - local.get $2 + local.get $4 if global.get $~lib/memory/__stack_pointer local.get $0 @@ -27933,18 +27860,18 @@ local.tee $0 i32.store offset=4 end - local.get $10 + local.get $1 i32.const 1 i32.add - local.set $10 - br $for-loop|029 + local.set $1 + br $for-loop|01523 end end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $6 i32.const 2 i32.shl - local.get $11 + local.get $7 i32.add i32.load local.tee $2 @@ -27993,19 +27920,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.const 2 i32.const 26 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=128 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=132 - local.get $0 + local.get $1 i32.const 0 i32.const 1 i32.const 2 @@ -28013,7 +27940,7 @@ i32.const 14496 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 3 i32.const 2 @@ -28021,7 +27948,7 @@ i32.const 14528 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 2 i32.const 3 i32.const 2 @@ -28029,7 +27956,7 @@ i32.const 14560 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 3 i32.const 3 i32.const 2 @@ -28037,11 +27964,11 @@ i32.const 14592 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 call $~lib/array/Array<~lib/array/Array>#flat local.tee $1 i32.store offset=128 @@ -28085,7 +28012,7 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.const 2 i32.const 42 @@ -28129,14 +28056,14 @@ i32.const 14944 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 + local.get $0 local.get $2 i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 0 local.set $1 i32.const 0 - local.set $0 + local.set $8 i32.const 0 local.set $3 global.get $~lib/memory/__stack_pointer @@ -28146,101 +28073,101 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner3 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store local.get $2 i32.load offset=4 - local.set $10 + local.set $6 local.get $2 i32.load offset=12 - local.set $11 - loop $for-loop|0217 + local.set $5 + loop $for-loop|0133 local.get $1 - local.get $11 + local.get $5 i32.lt_s if local.get $1 i32.const 2 i32.shl - local.get $10 + local.get $6 i32.add i32.load - local.tee $2 + local.tee $0 if (result i32) - local.get $2 + local.get $0 i32.load offset=12 else i32.const 0 end - local.get $0 + local.get $8 i32.add - local.set $0 + local.set $8 local.get $1 i32.const 1 i32.add local.set $1 - br $for-loop|0217 + br $for-loop|0133 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.const 2 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 31 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store offset=4 - local.get $2 local.get $0 + local.get $8 i32.store offset=12 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 - local.get $2 - local.get $9 + local.get $0 + local.get $7 i32.store offset=4 - local.get $2 - local.get $9 + local.get $0 + local.get $7 i32.store - local.get $2 - local.get $9 + local.get $0 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 local.set $1 - loop $for-loop|1218 + loop $for-loop|1134 local.get $1 - local.get $11 + local.get $5 i32.lt_s if local.get $1 i32.const 2 i32.shl - local.get $10 + local.get $6 i32.add i32.load - local.tee $4 + local.tee $2 if local.get $3 - local.get $9 + local.get $7 i32.add - local.get $4 + local.get $2 i32.load offset=4 - local.get $4 + local.get $2 i32.load offset=8 - local.tee $4 + local.tee $2 call $~lib/memory/memory.copy + local.get $2 local.get $3 - local.get $4 i32.add local.set $3 end @@ -28248,21 +28175,21 @@ i32.const 1 i32.add local.set $1 - br $for-loop|1218 + br $for-loop|1134 end end i32.const 0 local.set $1 - loop $for-loop|2219 - local.get $0 + loop $for-loop|2135 local.get $1 - i32.gt_s + local.get $8 + i32.lt_s if - local.get $9 + local.get $7 local.get $1 i32.const 2 i32.shl - local.get $9 + local.get $7 i32.add i32.load i32.const 1 @@ -28271,14 +28198,14 @@ i32.const 1 i32.add local.set $1 - br $for-loop|2219 + br $for-loop|2135 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 local.tee $1 i32.store offset=160 global.get $~lib/memory/__stack_pointer @@ -28287,9 +28214,9 @@ i32.const 31 i32.const 14976 call $~lib/rt/__newArray - local.tee $12 + local.tee $5 i32.store offset=148 - local.get $1 + local.get $0 i32.load offset=12 i32.const 8 i32.ne @@ -28304,7 +28231,7 @@ i32.const 0 local.set $0 loop $for-loop|8 - local.get $12 + local.get $5 i32.load offset=12 local.get $0 i32.gt_s @@ -28316,7 +28243,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $12 + local.get $5 local.get $0 call $~lib/array/Array#__get local.set $2 @@ -28343,19 +28270,19 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2 i32.const 2 i32.const 26 i32.const 0 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load offset=4 i32.store offset=156 - local.get $0 + local.get $1 i32.const 0 i32.const 0 i32.const 2 @@ -28363,7 +28290,7 @@ i32.const 15040 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $0 + local.get $1 i32.const 1 i32.const 0 i32.const 2 @@ -28371,16 +28298,16 @@ i32.const 15072 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $1 local.get $0 + local.get $1 i32.store offset=156 - local.get $0 + local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -28402,12 +28329,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0223 + loop $while-continue|0163 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0223 + br $while-continue|0163 end end end @@ -28498,7 +28425,7 @@ end local.get $0 i32.load offset=4 - local.set $4 + local.set $0 loop $while-continue|0 local.get $2 local.get $3 @@ -28508,12 +28435,12 @@ local.get $2 i32.const 2 i32.shl - local.get $4 + local.get $0 i32.add i32.load - local.tee $0 + local.tee $4 i32.store - local.get $0 + local.get $4 local.get $1 call $~lib/string/String.__eq if @@ -28672,6 +28599,7 @@ (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -28691,41 +28619,40 @@ local.tee $5 i32.const 0 i32.store - local.get $5 local.get $0 local.get $1 i32.shl - local.tee $1 - local.set $5 - local.get $1 + local.tee $4 + local.set $6 + local.get $4 i32.const 0 call $~lib/rt/itcms/__new - local.set $4 + local.set $1 local.get $3 if - local.get $4 + local.get $1 local.get $3 - local.get $5 + local.get $6 call $~lib/memory/memory.copy end - local.get $4 - local.tee $3 + local.get $5 + local.get $1 i32.store i32.const 16 local.get $2 call $~lib/rt/itcms/__new local.tee $2 - local.get $3 + local.get $1 i32.store local.get $2 - local.get $3 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link local.get $2 - local.get $3 + local.get $1 i32.store offset=4 local.get $2 - local.get $1 + local.get $4 i32.store offset=8 local.get $2 local.get $0 @@ -28796,14 +28723,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=12 - local.tee $3 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select + local.tee $3 + local.get $0 + i32.load offset=12 local.tee $4 i32.add local.tee $2 @@ -28830,17 +28757,17 @@ local.tee $5 local.get $0 i32.load offset=4 - local.get $3 + local.get $4 i32.const 2 i32.shl - local.tee $3 + local.tee $0 call $~lib/memory/memory.copy - local.get $3 + local.get $0 local.get $5 i32.add local.get $1 i32.load offset=4 - local.get $4 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -28971,20 +28898,20 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i32.const 0 i32.store - local.get $5 + local.get $3 local.get $2 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $4 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $3 + local.get $4 i32.add local.tee $1 i32.const 0 @@ -28994,17 +28921,17 @@ select else local.get $1 - local.get $3 + local.get $4 local.get $1 - local.get $3 + local.get $4 i32.lt_s select end local.tee $1 i32.sub - local.tee $4 + local.tee $3 local.get $2 - local.get $4 + local.get $3 i32.lt_s select local.tee $2 @@ -29018,9 +28945,9 @@ i32.const 3 i32.const 0 call $~lib/rt/__newArray - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.load offset=4 local.get $0 i32.load offset=4 @@ -29034,7 +28961,7 @@ i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $3 + local.get $4 local.get $1 local.get $2 i32.add @@ -29047,7 +28974,7 @@ i32.shl local.get $5 i32.add - local.get $3 + local.get $4 local.get $1 i32.sub i32.const 2 @@ -29055,7 +28982,7 @@ call $~lib/memory/memory.copy end local.get $0 - local.get $3 + local.get $4 local.get $2 i32.sub i32.store offset=12 @@ -29063,7 +28990,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 ) (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -29315,24 +29242,24 @@ local.get $2 local.get $0 i32.load offset=12 - local.tee $5 + local.tee $2 i32.const 2 i32.const 3 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.load offset=4 - local.set $2 + local.set $4 loop $for-loop|0 - local.get $5 + local.get $2 local.get $0 i32.load offset=12 - local.tee $4 - local.get $4 + local.tee $5 + local.get $2 local.get $5 - i32.gt_s + i32.lt_s select local.get $3 i32.gt_s @@ -29340,7 +29267,7 @@ local.get $3 i32.const 2 i32.shl - local.tee $4 + local.tee $5 local.get $0 i32.load offset=4 i32.add @@ -29348,8 +29275,8 @@ local.set $6 i32.const 3 global.set $~argumentsLength - local.get $2 local.get $4 + local.get $5 i32.add local.get $6 local.get $3 @@ -29400,19 +29327,19 @@ i32.const 3 i32.const 0 call $~lib/rt/__newArray - local.tee $5 + local.tee $2 i32.store local.get $0 i32.load offset=12 - local.set $2 + local.set $5 loop $for-loop|0 - local.get $2 + local.get $5 local.get $0 i32.load offset=12 local.tee $3 - local.get $2 local.get $3 - i32.lt_s + local.get $5 + i32.gt_s select local.get $4 i32.gt_s @@ -29434,7 +29361,7 @@ i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $5 + local.get $2 local.get $3 call $~lib/array/Array#push drop @@ -29450,7 +29377,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $2 ) (func $std/array/Dim#constructor (result i32) (local $0 i32) @@ -29816,8 +29743,6 @@ i32.shr_u local.tee $2 local.get $2 - i32.const 0 - i32.gt_s select local.tee $3 local.get $1 @@ -29935,71 +29860,71 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $1 select + local.tee $2 local.tee $0 - local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.get $2 + local.get $1 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 local.get $0 + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -30007,7 +29932,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) (func $~lib/util/number/utoa32 (param $0 i32) (result i32) (local $1 i32) @@ -30088,7 +30013,7 @@ i32.add end end - local.tee $1 + local.tee $0 i32.const 1 i32.shl i32.const 1 @@ -30096,8 +30021,8 @@ local.tee $2 i32.store local.get $2 - local.get $0 local.get $1 + local.get $0 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 @@ -30273,11 +30198,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -30299,7 +30224,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -30322,7 +30247,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -30501,43 +30426,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#every (result i32) - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.gt_s select - local.get $2 + local.get $4 i32.gt_s if local.get $0 i32.load offset=4 - local.get $2 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 local.get $2 + local.get $4 local.get $0 local.get $1 i32.load @@ -30545,10 +30468,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -30579,18 +30502,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 - block $__inlined_func$~lib/array/Array#findIndex (result i32) - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $4 + local.get $0 + i32.load offset=12 + local.set $4 + block $__inlined_func$~lib/array/Array#findIndex loop $for-loop|0 local.get $4 local.get $0 @@ -30610,18 +30531,14 @@ i32.shl i32.add i32.load - local.set $3 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $3 - local.get $2 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex - drop local.get $2 i32.const 1 i32.add @@ -30630,11 +30547,13 @@ end end i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $export:~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -30661,12 +30580,12 @@ local.get $2 local.get $1 i32.store offset=4 - block $__inlined_func$~lib/array/Array#findLastIndex (result i32) - local.get $0 - i32.load offset=12 - i32.const 1 - i32.sub - local.set $2 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + block $__inlined_func$~lib/array/Array#findLastIndex loop $for-loop|0 local.get $2 i32.const 0 @@ -30679,18 +30598,14 @@ i32.shl i32.add i32.load - local.set $3 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $3 - local.get $2 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex - drop local.get $2 i32.const 1 i32.sub @@ -30699,11 +30614,13 @@ end end i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $export:~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -30727,19 +30644,17 @@ i32.store i32.const 0 local.get $0 - local.tee $2 i32.load offset=12 - local.tee $0 + local.tee $2 local.get $1 i32.const 0 i32.ge_s select local.get $1 i32.add - local.set $1 - local.get $0 - local.get $1 - i32.le_u + local.tee $1 + local.get $2 + i32.ge_u if i32.const 1344 i32.const 1104 @@ -30748,7 +30663,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=4 local.get $1 i32.const 2 @@ -30910,8 +30825,7 @@ i32.const 0 local.set $2 end - block $__inlined_func$~lib/array/Array#indexOf (result i32) - i32.const -1 + block $__inlined_func$~lib/array/Array#indexOf local.get $2 local.get $0 i32.load offset=12 @@ -30920,8 +30834,11 @@ i32.const 1 local.get $3 select - br_if $__inlined_func$~lib/array/Array#indexOf - drop + if + i32.const -1 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf + end local.get $2 i32.const 0 i32.lt_s @@ -30945,7 +30862,6 @@ local.get $3 i32.lt_s if - local.get $2 local.get $1 local.get $2 i32.const 2 @@ -30955,7 +30871,6 @@ i32.load i32.eq br_if $__inlined_func$~lib/array/Array#indexOf - drop local.get $2 i32.const 1 i32.add @@ -30964,13 +30879,15 @@ end end i32.const -1 + local.set $2 end - i32.const 0 - i32.ge_s global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.ge_s ) (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -31005,8 +30922,7 @@ i32.const 0 local.set $2 end - block $__inlined_func$~lib/array/Array#indexOf (result i32) - i32.const -1 + block $__inlined_func$~lib/array/Array#indexOf local.get $2 local.get $0 i32.load offset=12 @@ -31015,8 +30931,11 @@ i32.const 1 local.get $3 select - br_if $__inlined_func$~lib/array/Array#indexOf - drop + if + i32.const -1 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf + end local.get $2 i32.const 0 i32.lt_s @@ -31040,7 +30959,6 @@ local.get $3 i32.lt_s if - local.get $2 local.get $1 local.get $2 i32.const 2 @@ -31050,7 +30968,6 @@ i32.load i32.eq br_if $__inlined_func$~lib/array/Array#indexOf - drop local.get $2 i32.const 1 i32.add @@ -31059,14 +30976,17 @@ end end i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $export:~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -31099,32 +31019,31 @@ i32.load offset=12 local.set $2 end - block $__inlined_func$~lib/array/Array#lastIndexOf (result i32) - i32.const -1 + i32.const -1 + local.set $3 + block $__inlined_func$~lib/array/Array#lastIndexOf local.get $0 - local.tee $3 i32.load offset=12 - local.tee $0 + local.tee $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf - drop - local.get $0 local.get $2 + local.get $4 i32.add - local.get $0 + local.get $4 i32.const 1 i32.sub local.get $2 - local.get $0 local.get $2 - i32.le_s + local.get $4 + i32.ge_s select local.get $2 i32.const 0 i32.lt_s select local.set $2 - local.get $3 + local.get $0 i32.load offset=4 local.set $0 loop $while-continue|0 @@ -31132,9 +31051,9 @@ i32.const 0 i32.ge_s if - local.get $2 local.get $1 local.get $2 + local.tee $3 i32.const 2 i32.shl local.get $0 @@ -31142,8 +31061,7 @@ i32.load i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - drop - local.get $2 + local.get $3 i32.const 1 i32.sub local.set $2 @@ -31151,11 +31069,13 @@ end end i32.const -1 + local.set $3 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) (func $export:~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -31189,11 +31109,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -31216,14 +31136,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 - i32.load offset=12 - local.tee $3 local.get $1 i32.load offset=12 i32.const 0 local.get $1 select + local.tee $3 + local.get $0 + i32.load offset=12 local.tee $4 i32.add local.tee $2 @@ -31250,17 +31170,17 @@ local.tee $5 local.get $0 i32.load offset=4 - local.get $3 + local.get $4 i32.const 2 i32.shl - local.tee $3 + local.tee $0 call $~lib/memory/memory.copy - local.get $3 + local.get $0 local.get $5 i32.add local.get $1 i32.load offset=4 - local.get $4 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -31347,7 +31267,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1 i32.lt_s if @@ -31360,16 +31280,16 @@ end local.get $0 i32.load offset=4 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $1 i32.const 2 i32.shl i32.add i32.load local.get $0 - local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31402,41 +31322,39 @@ local.get $2 local.get $1 i32.store offset=4 - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $2 loop $for-loop|0 - local.get $4 + local.get $2 local.get $0 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $4 + local.get $2 local.get $4 - i32.gt_s + i32.lt_s select - local.get $2 + local.get $3 i32.gt_s if local.get $0 i32.load offset=4 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $2 + local.get $3 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end @@ -31450,11 +31368,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -31474,13 +31392,11 @@ i32.const 15596 i32.lt_s br_if $folding-inner0 - local.get $1 - local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 0 i32.const 2 i32.const 7 @@ -31490,15 +31406,15 @@ i32.store local.get $0 i32.load offset=12 - local.set $1 + local.set $5 loop $for-loop|0 - local.get $1 + local.get $5 local.get $0 i32.load offset=12 - local.tee $5 - local.get $1 + local.tee $3 + local.get $3 local.get $5 - i32.lt_s + i32.gt_s select local.get $4 i32.gt_s @@ -31510,18 +31426,18 @@ i32.shl i32.add i32.load - local.set $5 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $5 + local.get $3 local.get $4 local.get $0 - local.get $3 + local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $5 + local.get $3 call $~lib/array/Array#push drop end @@ -31575,7 +31491,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1 i32.lt_s if @@ -31588,27 +31504,27 @@ end local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.load - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 4 i32.add - local.get $2 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $1 i32.const 2 i32.shl local.tee $4 call $~lib/memory/memory.copy - local.get $3 + local.get $2 local.get $4 i32.add i32.const 0 i32.store local.get $0 - local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31635,53 +31551,51 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#some (result i32) - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.gt_s select - local.get $2 + local.get $4 i32.gt_s if local.get $0 i32.load offset=4 - local.get $2 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 local.get $2 + local.get $4 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -31721,11 +31635,11 @@ ) (func $export:~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -31814,14 +31728,14 @@ i32.const 0 i32.gt_s select - local.tee $2 + local.tee $3 i32.const 2 i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.load offset=4 local.get $0 i32.load offset=4 @@ -31829,7 +31743,7 @@ i32.const 2 i32.shl i32.add - local.get $2 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -31841,7 +31755,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return end i32.const 32000 @@ -31856,11 +31770,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -31890,13 +31804,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i32.const 0 i32.store - local.get $5 + local.get $3 local.get $2 local.get $0 - local.tee $3 i32.load offset=12 local.tee $4 local.get $1 @@ -31906,9 +31819,9 @@ local.get $1 local.get $4 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -31920,63 +31833,63 @@ i32.lt_s select end - local.tee $0 - i32.sub local.tee $1 - local.get $1 + i32.sub + local.tee $3 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select - local.tee $1 + local.tee $2 i32.const 2 i32.const 7 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store - local.get $2 - i32.load offset=4 local.get $3 i32.load offset=4 - local.tee $5 local.get $0 + i32.load offset=4 + local.tee $5 + local.get $1 i32.const 2 i32.shl i32.add local.tee $6 - local.get $1 + local.get $2 i32.const 2 i32.shl call $~lib/memory/memory.copy local.get $4 - local.get $0 local.get $1 + local.get $2 i32.add - local.tee $0 + local.tee $1 i32.ne if local.get $6 - local.get $0 + local.get $1 i32.const 2 i32.shl local.get $5 i32.add local.get $4 - local.get $0 + local.get $1 i32.sub i32.const 2 i32.shl call $~lib/memory/memory.copy end - local.get $3 + local.get $0 local.get $4 - local.get $1 + local.get $2 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -31987,7 +31900,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end i32.const 32000 @@ -32024,7 +31937,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $4 local.get $0 i32.load offset=12 local.tee $1 @@ -32034,36 +31947,36 @@ local.get $1 i32.const 1 i32.shr_u - local.set $4 + local.set $5 local.get $1 i32.const 1 i32.sub - local.set $5 + local.set $1 loop $while-continue|0 local.get $2 - local.get $4 + local.get $5 i32.lt_u if local.get $2 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add - local.tee $1 + local.tee $3 i32.load local.set $6 + local.get $3 local.get $1 - local.get $5 local.get $2 i32.sub i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add - local.tee $1 + local.tee $3 i32.load i32.store - local.get $1 + local.get $3 local.get $6 i32.store local.get $2 @@ -32114,11 +32027,11 @@ ) (func $export:~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -32235,11 +32148,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -32261,7 +32174,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -32284,7 +32197,7 @@ global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -32433,41 +32346,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#every (result i32) - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.gt_s select - local.get $2 + local.get $4 i32.gt_s if - local.get $2 + local.get $4 local.get $0 i32.load offset=4 i32.add i32.load8_u - local.set $3 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $3 local.get $2 + local.get $4 local.get $0 local.get $1 i32.load @@ -32475,10 +32386,10 @@ i32.eqz br_if $__inlined_func$~lib/array/Array#every drop - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -32509,18 +32420,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 - block $__inlined_func$~lib/array/Array#findIndex (result i32) - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=12 - local.set $4 + local.get $0 + i32.load offset=12 + local.set $4 + block $__inlined_func$~lib/array/Array#findIndex loop $for-loop|0 local.get $4 local.get $0 @@ -32538,18 +32447,14 @@ i32.load offset=4 i32.add i32.load8_u - local.set $3 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $3 - local.get $2 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findIndex - drop local.get $2 i32.const 1 i32.add @@ -32558,11 +32463,13 @@ end end i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $export:~lib/array/Array#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -32589,12 +32496,12 @@ local.get $2 local.get $1 i32.store offset=4 - block $__inlined_func$~lib/array/Array#findLastIndex (result i32) - local.get $0 - i32.load offset=12 - i32.const 1 - i32.sub - local.set $2 + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + block $__inlined_func$~lib/array/Array#findLastIndex loop $for-loop|0 local.get $2 i32.const 0 @@ -32605,18 +32512,14 @@ i32.load offset=4 i32.add i32.load8_u - local.set $3 i32.const 3 global.set $~argumentsLength local.get $2 - local.get $3 - local.get $2 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#findLastIndex - drop local.get $2 i32.const 1 i32.sub @@ -32625,11 +32528,13 @@ end end i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $export:~lib/array/Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -32653,19 +32558,17 @@ i32.store i32.const 0 local.get $0 - local.tee $2 i32.load offset=12 - local.tee $0 + local.tee $2 local.get $1 i32.const 0 i32.ge_s select local.get $1 i32.add - local.set $1 - local.get $0 - local.get $1 - i32.le_u + local.tee $1 + local.get $2 + i32.ge_u if i32.const 1344 i32.const 1104 @@ -32675,7 +32578,7 @@ unreachable end local.get $1 - local.get $2 + local.get $0 i32.load offset=4 i32.add i32.load8_u @@ -32763,8 +32666,7 @@ i32.const 0 local.set $2 end - block $__inlined_func$~lib/array/Array#indexOf (result i32) - i32.const -1 + block $__inlined_func$~lib/array/Array#indexOf local.get $2 local.get $0 i32.load offset=12 @@ -32773,8 +32675,11 @@ i32.const 1 local.get $3 select - br_if $__inlined_func$~lib/array/Array#indexOf - drop + if + i32.const -1 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf + end local.get $2 i32.const 0 i32.lt_s @@ -32798,7 +32703,6 @@ local.get $3 i32.lt_s if - local.get $2 local.get $0 local.get $2 i32.add @@ -32808,7 +32712,6 @@ i32.and i32.eq br_if $__inlined_func$~lib/array/Array#indexOf - drop local.get $2 i32.const 1 i32.add @@ -32817,13 +32720,15 @@ end end i32.const -1 + local.set $2 end - i32.const 0 - i32.ge_s global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + i32.ge_s ) (func $export:~lib/array/Array#indexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -32858,8 +32763,7 @@ i32.const 0 local.set $2 end - block $__inlined_func$~lib/array/Array#indexOf (result i32) - i32.const -1 + block $__inlined_func$~lib/array/Array#indexOf local.get $2 local.get $0 i32.load offset=12 @@ -32868,8 +32772,11 @@ i32.const 1 local.get $3 select - br_if $__inlined_func$~lib/array/Array#indexOf - drop + if + i32.const -1 + local.set $2 + br $__inlined_func$~lib/array/Array#indexOf + end local.get $2 i32.const 0 i32.lt_s @@ -32893,7 +32800,6 @@ local.get $3 i32.lt_s if - local.get $2 local.get $0 local.get $2 i32.add @@ -32903,7 +32809,6 @@ i32.and i32.eq br_if $__inlined_func$~lib/array/Array#indexOf - drop local.get $2 i32.const 1 i32.add @@ -32912,14 +32817,17 @@ end end i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $export:~lib/array/Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -32952,32 +32860,31 @@ i32.load offset=12 local.set $2 end - block $__inlined_func$~lib/array/Array#lastIndexOf (result i32) - i32.const -1 + i32.const -1 + local.set $3 + block $__inlined_func$~lib/array/Array#lastIndexOf local.get $0 - local.tee $3 i32.load offset=12 - local.tee $0 + local.tee $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf - drop - local.get $0 local.get $2 + local.get $4 i32.add - local.get $0 + local.get $4 i32.const 1 i32.sub local.get $2 - local.get $0 local.get $2 - i32.le_s + local.get $4 + i32.ge_s select local.get $2 i32.const 0 i32.lt_s select local.set $2 - local.get $3 + local.get $0 i32.load offset=4 local.set $0 loop $while-continue|0 @@ -32986,8 +32893,8 @@ i32.ge_s if local.get $2 + local.tee $3 local.get $0 - local.get $2 i32.add i32.load8_u local.get $1 @@ -32995,8 +32902,7 @@ i32.and i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - drop - local.get $2 + local.get $3 i32.const 1 i32.sub local.set $2 @@ -33004,11 +32910,13 @@ end end i32.const -1 + local.set $3 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 ) (func $export:~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -33042,11 +32950,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -33071,7 +32979,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 local.get $1 i32.load offset=12 i32.const 0 @@ -33079,7 +32987,7 @@ select local.tee $4 i32.add - local.tee $2 + local.tee $3 i32.const 1073741820 i32.gt_u if @@ -33091,21 +32999,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.load offset=4 local.tee $5 local.get $0 i32.load offset=4 - local.get $3 + local.get $2 call $~lib/memory/memory.copy - local.get $3 + local.get $2 local.get $5 i32.add local.get $1 @@ -33120,7 +33028,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end i32.const 32000 @@ -33133,6 +33041,7 @@ (func $export:~lib/array/Array#copyWithin@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -33166,13 +33075,14 @@ end local.get $3 local.get $0 - i32.load offset=12 local.tee $4 + i32.load offset=12 + local.tee $5 local.get $3 - local.get $4 + local.get $5 i32.lt_s select - local.set $5 + local.set $6 local.get $0 i32.load offset=4 local.tee $3 @@ -33181,19 +33091,19 @@ i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $5 i32.add - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select else local.get $1 - local.get $4 + local.get $5 local.get $1 - local.get $4 + local.get $5 i32.lt_s select end @@ -33204,63 +33114,63 @@ i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $5 i32.add - local.tee $2 + local.tee $0 i32.const 0 - local.get $2 + local.get $0 i32.const 0 i32.gt_s select else local.get $2 - local.get $4 + local.get $5 local.get $2 - local.get $4 + local.get $5 i32.lt_s select end - local.tee $2 + local.tee $0 local.get $3 i32.add - local.get $5 + local.get $6 i32.const 0 i32.lt_s if (result i32) - local.get $4 local.get $5 + local.get $6 i32.add - local.tee $3 + local.tee $2 i32.const 0 - local.get $3 + local.get $2 i32.const 0 i32.gt_s select else + local.get $6 local.get $5 - local.get $4 - local.get $4 local.get $5 + local.get $6 i32.gt_s select end - local.get $2 + local.get $0 i32.sub - local.tee $2 - local.get $4 + local.tee $0 + local.get $5 local.get $1 i32.sub local.tee $1 + local.get $0 local.get $1 - local.get $2 - i32.gt_s + i32.lt_s select call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $4 ) (func $export:~lib/array/Array#pop (param $0 i32) (result i32) (local $1 i32) @@ -33285,7 +33195,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1 i32.lt_s if @@ -33296,16 +33206,16 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $1 local.get $0 i32.load offset=4 i32.add i32.load8_u local.get $0 - local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -33338,39 +33248,37 @@ local.get $2 local.get $1 i32.store offset=4 - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $2 loop $for-loop|0 - local.get $4 + local.get $2 local.get $0 i32.load offset=12 - local.tee $3 - local.get $3 + local.tee $4 + local.get $2 local.get $4 - i32.gt_s + i32.lt_s select - local.get $2 + local.get $3 i32.gt_s if - local.get $2 + local.get $3 local.get $0 i32.load offset=4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $2 + local.get $3 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $for-loop|0 end end @@ -33384,11 +33292,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -33408,13 +33316,11 @@ i32.const 15596 i32.lt_s br_if $folding-inner0 - local.get $1 - local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 0 i32.const 0 i32.const 6 @@ -33424,15 +33330,15 @@ i32.store local.get $0 i32.load offset=12 - local.set $1 + local.set $5 loop $for-loop|0 - local.get $1 + local.get $5 local.get $0 i32.load offset=12 - local.tee $5 - local.get $1 + local.tee $3 + local.get $3 local.get $5 - i32.lt_s + i32.gt_s select local.get $4 i32.gt_s @@ -33442,18 +33348,18 @@ i32.load offset=4 i32.add i32.load8_u - local.set $5 + local.set $3 i32.const 3 global.set $~argumentsLength - local.get $5 + local.get $3 local.get $4 local.get $0 - local.get $3 + local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $5 + local.get $3 call $~lib/array/Array#push drop end @@ -33506,7 +33412,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1 i32.lt_s if @@ -33519,24 +33425,24 @@ end local.get $0 i32.load offset=4 - local.tee $3 + local.tee $2 i32.load8_u - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.const 1 i32.add - local.get $2 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $1 call $~lib/memory/memory.copy + local.get $1 local.get $2 - local.get $3 i32.add i32.const 0 i32.store8 local.get $0 - local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -33563,51 +33469,49 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.store - local.get $2 + local.get $3 local.get $1 i32.store offset=4 block $__inlined_func$~lib/array/Array#some (result i32) - i32.const 0 - local.set $2 local.get $0 i32.load offset=12 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $4 + local.get $3 local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 + local.get $2 local.get $3 - local.get $4 i32.gt_s select - local.get $2 + local.get $4 i32.gt_s if - local.get $2 + local.get $4 local.get $0 i32.load offset=4 i32.add i32.load8_u - local.set $3 + local.set $2 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $3 local.get $2 + local.get $4 local.get $0 local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $__inlined_func$~lib/array/Array#some drop - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|0 end end @@ -33672,11 +33576,11 @@ ) (func $export:~lib/array/Array#slice@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -33765,20 +33669,20 @@ i32.const 0 i32.gt_s select - local.tee $2 + local.tee $3 i32.const 0 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.load offset=4 local.get $1 local.get $0 i32.load offset=4 i32.add - local.get $2 + local.get $3 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 @@ -33788,7 +33692,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return end i32.const 32000 @@ -33803,11 +33707,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -33837,13 +33741,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i32.const 0 i32.store - local.get $5 + local.get $3 local.get $2 local.get $0 - local.tee $3 i32.load offset=12 local.tee $4 local.get $1 @@ -33853,9 +33756,9 @@ local.get $1 local.get $4 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -33867,55 +33770,55 @@ i32.lt_s select end - local.tee $0 - i32.sub local.tee $1 - local.get $1 + i32.sub + local.tee $3 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select - local.tee $1 + local.tee $2 i32.const 0 i32.const 6 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.load offset=4 + local.get $1 local.get $0 - local.get $3 i32.load offset=4 local.tee $5 i32.add local.tee $6 - local.get $1 + local.get $2 call $~lib/memory/memory.copy local.get $4 - local.get $0 local.get $1 + local.get $2 i32.add - local.tee $0 + local.tee $1 i32.ne if local.get $6 - local.get $0 + local.get $1 local.get $5 i32.add local.get $4 - local.get $0 + local.get $1 i32.sub call $~lib/memory/memory.copy end - local.get $3 + local.get $0 local.get $4 - local.get $1 + local.get $2 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -33926,7 +33829,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end i32.const 32000 @@ -33956,23 +33859,19 @@ local.get $0 i32.store local.get $0 - i32.load offset=4 - local.get $0 - i32.load offset=12 - call $~lib/util/bytes/REVERSE + call $~lib/array/Array#reverse global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $export:~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34035,11 +33934,11 @@ ) (func $export:~lib/array/Array#join@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34123,11 +34022,11 @@ global.set $~lib/memory/__stack_pointer ) (func $export:std/array/ArrayStr#constructor@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34195,11 +34094,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34295,11 +34194,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34311,21 +34210,21 @@ local.get $3 local.get $1 i32.store offset=4 - block $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex (result i32) - local.get $3 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load offset=12 - local.set $3 + local.get $3 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + block $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex loop $for-loop|0 local.get $3 local.get $0 @@ -34361,7 +34260,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#findIndex end local.get $2 @@ -34376,11 +34274,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 return end i32.const 32000 @@ -34393,11 +34293,11 @@ (func $export:~lib/array/Array<~lib/string/String>#findLastIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34409,23 +34309,23 @@ local.get $2 local.get $1 i32.store offset=4 - block $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex (result i32) - local.get $2 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load offset=12 - i32.const 1 - i32.sub - local.set $2 + local.get $2 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 1 + i32.sub + local.set $2 + block $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex loop $for-loop|0 local.get $2 i32.const 0 @@ -34454,7 +34354,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#findLastIndex end local.get $2 @@ -34469,11 +34368,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 return end i32.const 32000 @@ -34485,11 +34386,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34571,7 +34472,6 @@ (func $export:~lib/array/Array<~lib/string/String>#fill@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -34612,30 +34512,29 @@ local.set $3 end local.get $0 - local.tee $4 i32.load offset=4 - local.set $6 + local.set $5 local.get $0 i32.load offset=12 - local.set $5 + local.set $4 local.get $2 i32.const 0 i32.lt_s if (result i32) local.get $2 - local.get $5 + local.get $4 i32.add - local.tee $0 + local.tee $2 i32.const 0 - local.get $0 + local.get $2 i32.const 0 i32.gt_s select else local.get $2 - local.get $5 + local.get $4 local.get $2 - local.get $5 + local.get $4 i32.lt_s select end @@ -34645,36 +34544,36 @@ i32.lt_s if (result i32) local.get $3 - local.get $5 + local.get $4 i32.add - local.tee $0 + local.tee $3 i32.const 0 - local.get $0 + local.get $3 i32.const 0 i32.gt_s select else local.get $3 - local.get $5 + local.get $4 local.get $3 - local.get $5 + local.get $4 i32.lt_s select end - local.set $0 + local.set $3 loop $for-loop|0 - local.get $0 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s if local.get $2 i32.const 2 i32.shl - local.get $6 + local.get $5 i32.add local.get $1 i32.store - local.get $4 + local.get $0 local.get $1 i32.const 1 call $~lib/rt/itcms/__link @@ -34689,7 +34588,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $0 ) (func $export:~lib/array/Array<~lib/string/String>#includes@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -34787,11 +34686,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#lastIndexOf@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -34817,18 +34716,18 @@ i32.load offset=12 local.set $2 end - block $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15596 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15596 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf local.get $0 i32.load offset=12 local.tee $3 @@ -34839,6 +34738,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf end local.get $2 @@ -34859,7 +34759,7 @@ local.set $2 local.get $0 i32.load offset=4 - local.set $3 + local.set $0 loop $while-continue|0 local.get $2 i32.const 0 @@ -34869,12 +34769,12 @@ local.get $2 i32.const 2 i32.shl - local.get $3 + local.get $0 i32.add i32.load - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 local.get $1 call $~lib/string/String.__eq if @@ -34882,7 +34782,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 br $__inlined_func$~lib/array/Array<~lib/string/String>#lastIndexOf end local.get $2 @@ -34897,11 +34796,13 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $2 return end i32.const 32000 @@ -34950,23 +34851,26 @@ (local $5 i32) (local $6 i32) (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer + local.tee $3 local.tee $2 local.get $0 i32.store local.get $2 local.get $1 i32.store offset=4 - local.get $2 + i32.const 0 + local.set $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -34985,9 +34889,9 @@ i32.const 0 local.get $1 select - local.tee $5 + local.tee $6 i32.add - local.tee $2 + local.tee $3 i32.const 268435455 i32.gt_u if @@ -34999,56 +34903,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 2 i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.load offset=4 - local.set $6 + local.set $5 local.get $4 i32.const 2 i32.shl local.set $4 local.get $0 i32.load offset=4 - local.set $7 + local.set $0 loop $for-loop|0 - local.get $3 + local.get $2 local.get $4 i32.lt_u if - local.get $3 - local.get $6 + local.get $2 + local.get $5 i32.add - local.get $3 - local.get $7 + local.get $0 + local.get $2 i32.add i32.load - local.tee $0 + local.tee $7 i32.store - local.get $2 - local.get $0 + local.get $3 + local.get $7 i32.const 1 call $~lib/rt/itcms/__link - local.get $3 + local.get $2 i32.const 4 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end local.get $4 - local.get $6 + local.get $5 i32.add - local.set $3 + local.set $2 local.get $1 i32.load offset=4 - local.set $4 - local.get $5 + local.set $1 + local.get $6 i32.const 2 i32.shl local.set $5 @@ -35060,16 +34964,16 @@ i32.lt_u if local.get $0 - local.get $3 + local.get $2 i32.add local.get $0 - local.get $4 + local.get $1 i32.add i32.load - local.tee $1 + local.tee $4 i32.store - local.get $2 - local.get $1 + local.get $3 + local.get $4 i32.const 1 call $~lib/rt/itcms/__link local.get $0 @@ -35087,7 +34991,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end i32.const 32000 @@ -35101,20 +35005,20 @@ (local $1 i32) (local $2 i32) (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -35127,7 +35031,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $2 + local.tee $1 i32.const 1 i32.lt_s if @@ -35139,23 +35043,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 local.get $0 i32.load offset=4 - local.get $2 + local.get $1 i32.const 1 i32.sub - local.tee $2 + local.tee $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $3 i32.store local.get $0 - local.get $2 + local.get $1 i32.store offset=12 - local.get $3 + local.get $2 i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -35163,7 +35067,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 return end i32.const 32000 @@ -35177,11 +35081,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35266,11 +35170,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35290,13 +35194,11 @@ i32.const 15596 i32.lt_s br_if $folding-inner0 - local.get $1 - local.set $3 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i64.const 0 i64.store - local.get $1 + local.get $2 i32.const 0 i32.const 2 i32.const 33 @@ -35311,8 +35213,8 @@ local.get $5 local.get $0 i32.load offset=12 - local.tee $1 - local.get $1 + local.tee $3 + local.get $3 local.get $5 i32.gt_s select @@ -35327,19 +35229,19 @@ i32.shl i32.add i32.load - local.tee $1 + local.tee $3 i32.store offset=4 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $3 local.get $4 local.get $0 - local.get $3 + local.get $1 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.get $1 + local.get $3 call $~lib/array/Array<~lib/string/String>#push drop end @@ -35373,20 +35275,20 @@ (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 local.get $0 i32.store - local.get $2 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -35399,7 +35301,7 @@ i32.store local.get $0 i32.load offset=12 - local.tee $3 + local.tee $2 i32.const 1 i32.lt_s if @@ -35413,29 +35315,29 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - local.tee $2 - i32.load local.tee $1 + i32.load + local.tee $3 i32.store - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 4 i32.add - local.get $3 + local.get $2 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.const 2 i32.shl local.tee $4 call $~lib/memory/memory.copy - local.get $2 + local.get $1 local.get $4 i32.add i32.const 0 i32.store local.get $0 - local.get $3 + local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -35445,7 +35347,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 return end i32.const 32000 @@ -35459,11 +35361,11 @@ (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35620,11 +35522,11 @@ (local $3 i32) (local $4 i32) (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35660,13 +35562,13 @@ i32.store local.get $0 i32.load offset=12 - local.set $4 + local.set $3 local.get $1 i32.const 0 i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -35676,9 +35578,9 @@ select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end @@ -35689,7 +35591,7 @@ i32.lt_s if (result i32) local.get $2 - local.get $4 + local.get $3 i32.add local.tee $2 i32.const 0 @@ -35699,9 +35601,9 @@ select else local.get $2 - local.get $4 + local.get $3 local.get $2 - local.get $4 + local.get $3 i32.lt_s select end @@ -35713,16 +35615,16 @@ i32.const 0 i32.gt_s select - local.tee $4 + local.tee $3 i32.const 2 i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store - local.get $3 + local.get $2 i32.load offset=4 - local.set $2 + local.set $4 local.get $0 i32.load offset=4 local.get $1 @@ -35730,32 +35632,34 @@ i32.shl i32.add local.set $1 - local.get $4 + i32.const 0 + local.set $0 + local.get $3 i32.const 2 i32.shl - local.set $0 + local.set $3 loop $while-continue|0 local.get $0 - local.get $5 - i32.gt_u + local.get $3 + i32.lt_u if - local.get $2 - local.get $5 + local.get $0 + local.get $4 i32.add + local.get $0 local.get $1 - local.get $5 i32.add i32.load - local.tee $4 + local.tee $5 i32.store - local.get $3 - local.get $4 + local.get $2 + local.get $5 i32.const 1 call $~lib/rt/itcms/__link - local.get $5 + local.get $0 i32.const 4 i32.add - local.set $5 + local.set $0 br $while-continue|0 end end @@ -35767,7 +35671,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $2 return end i32.const 32000 @@ -35782,11 +35686,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35816,13 +35720,12 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $3 i32.const 0 i32.store - local.get $5 + local.get $3 local.get $2 local.get $0 - local.tee $3 i32.load offset=12 local.tee $4 local.get $1 @@ -35832,9 +35735,9 @@ local.get $1 local.get $4 i32.add - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select @@ -35846,63 +35749,63 @@ i32.lt_s select end - local.tee $0 - i32.sub local.tee $1 - local.get $1 + i32.sub + local.tee $3 local.get $2 - i32.gt_s + local.get $3 + i32.lt_s select - local.tee $1 + local.tee $2 i32.const 0 - local.get $1 + local.get $2 i32.const 0 i32.gt_s select - local.tee $1 + local.tee $2 i32.const 2 i32.const 33 i32.const 0 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store - local.get $2 - i32.load offset=4 local.get $3 i32.load offset=4 - local.tee $5 local.get $0 + i32.load offset=4 + local.tee $5 + local.get $1 i32.const 2 i32.shl i32.add local.tee $6 - local.get $1 + local.get $2 i32.const 2 i32.shl call $~lib/memory/memory.copy local.get $4 - local.get $0 local.get $1 + local.get $2 i32.add - local.tee $0 + local.tee $1 i32.ne if local.get $6 - local.get $0 + local.get $1 i32.const 2 i32.shl local.get $5 i32.add local.get $4 - local.get $0 + local.get $1 i32.sub i32.const 2 i32.shl call $~lib/memory/memory.copy end - local.get $3 + local.get $0 local.get $4 - local.get $1 + local.get $2 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -35913,7 +35816,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 return end i32.const 32000 @@ -35930,11 +35833,11 @@ (local $4 i32) (local $5 i32) (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -35945,7 +35848,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $4 + local.set $5 local.get $0 i32.load offset=12 local.set $1 @@ -35967,39 +35870,39 @@ local.get $1 i32.const 1 i32.shr_u - local.set $5 + local.set $3 local.get $1 i32.const 1 i32.sub - local.set $6 + local.set $1 loop $while-continue|0 local.get $2 - local.get $5 + local.get $3 i32.lt_u if global.get $~lib/memory/__stack_pointer local.get $2 i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add - local.tee $1 + local.tee $4 i32.load - local.tee $3 + local.tee $6 i32.store + local.get $4 local.get $1 - local.get $6 local.get $2 i32.sub i32.const 2 i32.shl - local.get $4 + local.get $5 i32.add - local.tee $1 + local.tee $4 i32.load i32.store - local.get $1 - local.get $3 + local.get $4 + local.get $6 i32.store local.get $2 i32.const 1 @@ -36029,11 +35932,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#sort@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s @@ -36096,11 +35999,11 @@ ) (func $export:~lib/array/Array<~lib/string/String>#join@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 15596 i32.lt_s diff --git a/tests/compiler/std/arraybuffer.optimized.wat b/tests/compiler/std/arraybuffer.optimized.wat index 4e7c1482c5..88486e11d5 100644 --- a/tests/compiler/std/arraybuffer.optimized.wat +++ b/tests/compiler/std/arraybuffer.optimized.wat @@ -116,7 +116,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -124,10 +123,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18228 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -141,7 +140,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -166,21 +165,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1712 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1360 i32.const 1424 @@ -189,7 +186,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1716 @@ -204,28 +201,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1488,7 +1485,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1516,11 +1513,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1539,9 +1536,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1557,7 +1554,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1572,18 +1569,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1594,7 +1591,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1608,16 +1605,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1630,89 +1624,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1720,7 +1714,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2732,11 +2726,11 @@ (local $0 i32) (local $1 i32) (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1844 i32.lt_s @@ -2784,7 +2778,6 @@ i32.const 1456 global.set $~lib/rt/itcms/fromSpace local.get $1 - local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2793,10 +2786,10 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8 i32.const 0 call $~lib/rt/itcms/__new @@ -2809,8 +2802,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $0 - local.tee $1 i32.store local.get $0 i32.const 20 @@ -2827,13 +2820,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2859,13 +2852,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2880,13 +2873,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const -1 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2901,13 +2894,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 3 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2922,13 +2915,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2943,13 +2936,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const -3 i32.const -1 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2964,13 +2957,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const -4 i32.const 42 call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -2985,7 +2978,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 42 i32.const 1073741820 call $~lib/arraybuffer/ArrayBuffer#slice @@ -3031,20 +3024,19 @@ i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.const 0 call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.tee $1 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3058,32 +3050,32 @@ local.tee $0 i32.const 0 i32.store - local.get $0 i32.const 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.const 1632 i32.const 8 call $~lib/memory/memory.copy local.get $0 + local.get $2 i32.store i32.const 16 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - i32.store + local.tee $0 local.get $2 + i32.store local.get $0 - call $~lib/rt/itcms/__link local.get $2 + call $~lib/rt/itcms/__link local.get $0 - i32.store offset=4 local.get $2 + i32.store offset=4 + local.get $0 i32.const 8 i32.store offset=8 - local.get $2 + local.get $0 i32.const 2 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -3091,7 +3083,7 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3130,11 +3122,10 @@ local.tee $1 i32.store offset=16 local.get $1 - local.tee $0 i32.const 20 i32.sub i32.load offset=16 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -3144,34 +3135,34 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 12 i32.const 15 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 + local.get $0 i32.const 0 i32.store - local.get $2 + local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $0 i32.const 0 i32.store offset=4 - local.get $2 + local.get $0 i32.const 0 i32.store offset=8 + local.get $2 local.get $1 - local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.gt_u - local.get $1 + local.get $2 i32.const 1073741820 i32.gt_u i32.or @@ -3183,24 +3174,24 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $0 + local.get $1 i32.store - local.get $2 local.get $0 + local.get $1 call $~lib/rt/itcms/__link - local.get $2 local.get $0 + local.get $1 i32.store offset=4 + local.get $0 local.get $2 - local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=12 i32.const 18228 global.set $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index 7ae1cee419..79fa20cf26 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -122,7 +122,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -130,10 +129,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18172 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -147,7 +146,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -172,21 +171,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1744 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1360 i32.const 1424 @@ -195,7 +192,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1748 @@ -210,28 +207,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1494,7 +1491,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1522,11 +1519,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1545,9 +1542,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1563,7 +1560,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1578,18 +1575,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1600,7 +1597,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1614,16 +1611,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1636,89 +1630,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1726,7 +1720,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2545,11 +2539,12 @@ (local $0 i32) (local $1 i32) (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1788 i32.lt_s @@ -2594,7 +2589,6 @@ i32.const 1456 global.set $~lib/rt/itcms/fromSpace local.get $0 - local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -2603,14 +2597,14 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -2624,107 +2618,107 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - local.get $0 + local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store end - local.get $0 + local.get $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $1 i32.const 0 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 8 call $~lib/memory/memory.fill - local.get $0 local.get $1 + local.get $2 i32.store - local.get $0 local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $0 local.get $1 + local.get $2 i32.store offset=4 - local.get $0 + local.get $1 i32.const 8 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.tee $2 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 246 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 224 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 88 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 3 i32.const 159 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 4 i32.const 130 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 5 i32.const 101 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 6 i32.const 67 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 7 i32.const 95 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.load local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $1 i32.load offset=4 - local.get $2 + local.get $1 i32.load i32.sub - local.get $2 + local.get $1 i32.load offset=8 call $~lib/dataview/DataView#constructor local.tee $0 @@ -3954,7 +3948,6 @@ unreachable end local.get $0 - local.tee $1 i32.load offset=8 i32.eqz if @@ -3965,11 +3958,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 i32.const 108 i32.store8 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt8 i32.const 108 @@ -3982,11 +3975,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const -13360 i32.const 1 call $~lib/dataview/DataView#setInt16 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt16 @@ -4002,11 +3995,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 14689 i32.const 0 call $~lib/dataview/DataView#setInt16 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt16 @@ -4022,11 +4015,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1204680201 i32.const 1 call $~lib/dataview/DataView#setInt32 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getInt32 @@ -4040,11 +4033,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 660673230 i32.const 0 call $~lib/dataview/DataView#setInt32 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getInt32 @@ -4058,11 +4051,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i64.const -3290739641816099749 i32.const 1 call $~lib/dataview/DataView#setInt64 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getInt64 i64.const -3290739641816099749 @@ -4075,11 +4068,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i64.const 8178932412950708047 i32.const 0 call $~lib/dataview/DataView#setInt64 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getInt64 i64.const 8178932412950708047 @@ -4092,7 +4085,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.eqz if @@ -4103,11 +4096,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 i32.const 238 i32.store8 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint8 i32.const 238 @@ -4120,11 +4113,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 58856 i32.const 1 call $~lib/dataview/DataView#setUint16 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint16 @@ -4140,11 +4133,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 60400 i32.const 0 call $~lib/dataview/DataView#setUint16 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint16 @@ -4160,11 +4153,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const -846805744 i32.const 1 call $~lib/dataview/DataView#setUint32 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/dataview/DataView#getUint32 @@ -4178,11 +4171,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const -1510791631 i32.const 0 call $~lib/dataview/DataView#setUint32 - local.get $1 + local.get $0 i32.const 0 i32.const 0 call $~lib/dataview/DataView#getUint32 @@ -4196,11 +4189,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i64.const 2334704782995986958 i32.const 1 call $~lib/dataview/DataView#setUint64 - local.get $1 + local.get $0 i32.const 1 call $~lib/dataview/DataView#getUint64 i64.const 2334704782995986958 @@ -4213,11 +4206,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i64.const -7123186897289856329 i32.const 0 call $~lib/dataview/DataView#setUint64 - local.get $1 + local.get $0 i32.const 0 call $~lib/dataview/DataView#getUint64 i64.const -7123186897289856329 @@ -4231,24 +4224,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.load local.tee $0 - i32.store offset=4 local.get $1 + i32.load + local.tee $1 + i32.store offset=4 local.get $0 + local.get $1 i32.const 0 - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 call $~lib/dataview/DataView#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 + local.get $1 i32.load i32.sub if @@ -4259,7 +4252,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 8 i32.ne diff --git a/tests/compiler/std/date.optimized.wat b/tests/compiler/std/date.optimized.wat index 315d7b1c47..d2136f4d4e 100644 --- a/tests/compiler/std/date.optimized.wat +++ b/tests/compiler/std/date.optimized.wat @@ -233,20 +233,7 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/date/epochMillis (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (param $6 i32) (result i64) - local.get $6 - i64.extend_i32_s - local.get $5 - i32.const 1000 - i32.mul - i64.extend_i32_s - local.get $4 - i32.const 60000 - i32.mul - i64.extend_i32_s - local.get $3 - i32.const 3600000 - i32.mul - i64.extend_i32_s + (local $7 i32) local.get $0 local.get $1 i32.const 2 @@ -262,7 +249,21 @@ select i32.const 400 i32.div_s - local.set $3 + local.set $7 + local.get $6 + i64.extend_i32_s + local.get $5 + i32.const 1000 + i32.mul + i64.extend_i32_s + local.get $4 + i32.const 60000 + i32.mul + i64.extend_i32_s + local.get $3 + i32.const 3600000 + i32.mul + i64.extend_i32_s local.get $2 i32.const -3 i32.const 9 @@ -280,7 +281,7 @@ i32.div_u i32.add local.get $0 - local.get $3 + local.get $7 i32.const 400 i32.mul i32.sub @@ -296,7 +297,7 @@ i32.div_u i32.sub i32.add - local.get $3 + local.get $7 i32.const 146097 i32.mul i32.add @@ -482,7 +483,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -490,10 +490,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 23948 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -507,7 +507,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -532,21 +532,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 7504 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1392 i32.const 1456 @@ -555,7 +553,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 7508 @@ -570,28 +568,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1854,7 +1852,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1882,11 +1880,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1905,9 +1903,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1923,7 +1921,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1938,18 +1936,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1960,7 +1958,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1974,16 +1972,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1996,89 +1991,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -2086,7 +2081,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2245,7 +2240,8 @@ (func $~lib/date/Date#setUTCDate (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) + (local $4 i32) + (local $5 i64) local.get $1 local.get $0 i32.load offset=8 @@ -2254,45 +2250,45 @@ return end local.get $0 - i64.const 86400000 - i64.const 0 - local.get $0 - i64.load offset=16 - i64.const 86400000 - i64.rem_s - local.tee $4 - i64.const 0 - i64.lt_s - select - local.get $4 - i64.add - local.get $0 i32.load local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 2 i32.le_s i32.sub - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 399 i32.sub - local.get $0 + local.get $2 i32.const 0 i32.ge_s select i32.const 400 i32.div_s - local.set $3 + local.set $4 + local.get $0 + local.get $0 + i64.load offset=16 + i64.const 86400000 + i64.rem_s + local.tee $5 + i64.const 86400000 + i64.const 0 + local.get $5 + i64.const 0 + i64.lt_s + select + i64.add local.get $1 i32.const -3 i32.const 9 - local.get $2 + local.get $3 i32.const 2 i32.gt_s select - local.get $2 + local.get $3 i32.add i32.const 153 i32.mul @@ -2301,8 +2297,8 @@ i32.const 5 i32.div_u i32.add - local.get $0 - local.get $3 + local.get $2 + local.get $4 i32.const 400 i32.mul i32.sub @@ -2318,7 +2314,7 @@ i32.div_u i32.sub i32.add - local.get $3 + local.get $4 i32.const 146097 i32.mul i32.add @@ -2342,7 +2338,6 @@ return end local.get $0 - local.get $0 i32.load local.get $1 i32.const 1 @@ -2362,17 +2357,18 @@ i32.const 400 i32.div_s local.set $3 - i64.const 86400000 - i64.const 0 + local.get $0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s local.tee $4 + i64.const 86400000 + i64.const 0 + local.get $4 i64.const 0 i64.lt_s select - local.get $4 i64.add local.get $0 i32.load offset=8 @@ -2396,14 +2392,14 @@ i32.const 400 i32.mul i32.sub - local.tee $1 + local.tee $0 i32.const 365 i32.mul - local.get $1 + local.get $0 i32.const 2 i32.shr_u i32.add - local.get $1 + local.get $0 i32.const 100 i32.div_u i32.sub @@ -2431,7 +2427,6 @@ if return end - local.get $0 local.get $1 local.get $0 i32.load offset=4 @@ -2450,17 +2445,18 @@ i32.const 400 i32.div_s local.set $3 - i64.const 86400000 - i64.const 0 + local.get $0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s local.tee $4 + i64.const 86400000 + i64.const 0 + local.get $4 i64.const 0 i64.lt_s select - local.get $4 i64.add local.get $0 i32.load offset=8 @@ -2484,14 +2480,14 @@ i32.const 400 i32.mul i32.sub - local.tee $1 + local.tee $0 i32.const 365 i32.mul - local.get $1 + local.get $0 i32.const 2 i32.shr_u i32.add - local.get $1 + local.get $0 i32.const 100 i32.div_u i32.sub @@ -2513,26 +2509,26 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/util/number/itoa32 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7564 - i32.lt_s - if - i32.const 23968 - i32.const 24016 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7564 + i32.lt_s + if + i32.const 23968 + i32.const 24016 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32 + local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -2540,9 +2536,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1872 + local.set $1 br $__inlined_func$~lib/util/number/itoa32 end - global.get $~lib/memory/__stack_pointer i32.const 0 local.get $0 i32.sub @@ -2553,47 +2549,49 @@ local.tee $3 select local.tee $0 - local.tee $2 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -2719,8 +2717,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $1 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3627,25 +3625,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/string/String#concat (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7564 - i32.lt_s - if - i32.const 23968 - i32.const 24016 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 7564 + i32.lt_s + if + i32.const 23968 + i32.const 24016 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/string/String#concat local.get $0 i32.const 20 i32.sub @@ -3673,6 +3671,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3456 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer @@ -3695,8 +3694,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $2 ) (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -4482,7 +4481,6 @@ (local $2 i32) (local $3 i32) (local $4 i64) - (local $5 i32) global.get $~lib/memory/__stack_pointer i32.const 112 i32.sub @@ -4556,7 +4554,6 @@ if global.get $~lib/memory/__stack_pointer local.tee $3 - local.get $3 i32.const 1616 i32.const 1648 local.get $2 @@ -4564,12 +4561,12 @@ local.tee $2 i32.store local.get $1 + local.get $1 i32.const 31 i32.shr_s - local.tee $3 - local.get $1 - local.get $3 + local.tee $1 i32.add + local.get $1 i32.xor call $~lib/number/I32#toString local.set $1 @@ -4586,6 +4583,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $3 local.get $2 local.get $1 call $~lib/string/String.__concat @@ -4686,17 +4684,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=60 - i64.const 86400000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s local.tee $4 + i64.const 86400000 + i64.const 0 + local.get $4 i64.const 0 i64.lt_s select - local.get $4 i64.add i32.wrap_i64 i32.const 3600000 @@ -4734,17 +4732,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=44 - i64.const 3600000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s local.tee $4 + i64.const 3600000 + i64.const 0 + local.get $4 i64.const 0 i64.lt_s select - local.get $4 i64.add i32.wrap_i64 i32.const 60000 @@ -4782,17 +4780,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=28 - i64.const 60000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s local.tee $4 + i64.const 60000 + i64.const 0 + local.get $4 i64.const 0 i64.lt_s select - local.get $4 i64.add i32.wrap_i64 i32.const 1000 @@ -4830,17 +4828,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - i64.const 1000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s local.tee $4 + i64.const 1000 + i64.const 0 + local.get $4 i64.const 0 i64.lt_s select - local.get $4 i64.add i32.wrap_i64 call $~lib/number/I32#toString @@ -4962,6 +4960,7 @@ i32.load8_u local.get $2 local.get $2 + local.get $2 i32.const 3 i32.sub local.get $5 @@ -4986,7 +4985,6 @@ i32.const 400 i32.div_s i32.add - local.get $2 i32.add i32.add i32.add @@ -5143,17 +5141,17 @@ local.get $1 i64.const 0 i64.store offset=32 - i64.const 86400000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s local.tee $3 + i64.const 86400000 + i64.const 0 + local.get $3 i64.const 0 i64.lt_s select - local.get $3 i64.add i32.wrap_i64 i32.const 3600000 @@ -5184,17 +5182,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 - i64.const 3600000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s local.tee $3 + i64.const 3600000 + i64.const 0 + local.get $3 i64.const 0 i64.lt_s select - local.get $3 i64.add i32.wrap_i64 i32.const 60000 @@ -5232,17 +5230,17 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - i64.const 60000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s local.tee $3 + i64.const 60000 + i64.const 0 + local.get $3 i64.const 0 i64.lt_s select - local.get $3 i64.add i32.wrap_i64 i32.const 1000 @@ -5375,6 +5373,7 @@ i32.load8_u local.get $4 local.get $4 + local.get $4 i32.const 3 i32.sub local.get $2 @@ -5399,7 +5398,6 @@ i32.const 400 i32.div_s i32.add - local.get $4 i32.add i32.add i32.add @@ -5954,6 +5952,7 @@ (local $5 i32) (local $6 i32) (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer i32.const 28 i32.sub @@ -6121,47 +6120,47 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 1616 i32.store - local.get $2 + local.get $0 local.get $1 i32.const 1616 call $~lib/string/String#split - local.tee $0 + local.tee $2 i32.store offset=24 - local.get $0 + local.get $2 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/util/string/strtol i32.const 1 local.set $1 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $2 + local.tee $8 i32.const 2 i32.ge_s if (result i32) - local.get $0 + local.get $2 i32.const 1 call $~lib/array/Array<~lib/string/String>#__get - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/util/string/strtol local.set $1 - local.get $2 + local.get $8 i32.const 3 i32.ge_s if (result i32) - local.get $0 + local.get $2 i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.set $0 @@ -6176,9 +6175,9 @@ else i32.const 1 end - local.set $2 + local.set $0 local.get $1 - local.get $2 + local.get $0 local.get $5 local.get $6 local.get $3 @@ -6192,9 +6191,10 @@ ) (func $start:std/date (local $0 i32) - (local $1 i32) - (local $2 i64) + (local $1 i64) + (local $2 i32) (local $3 i32) + (local $4 i32) global.get $~lib/memory/__stack_pointer i32.const 36 i32.sub @@ -6235,15 +6235,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.eqz i32.eqz if @@ -6262,15 +6262,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.eqz i32.eqz if @@ -6289,15 +6289,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.eqz i32.eqz if @@ -6316,15 +6316,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.const 631152000000 i64.ne if @@ -6343,15 +6343,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.const -65007360000000 i64.ne if @@ -6370,15 +6370,15 @@ i32.const 0 i32.const 1 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.const 1541847600001 i64.ne if @@ -6397,15 +6397,15 @@ i32.const 0 i32.const 0 call $~lib/date/epochMillis - local.tee $2 + local.tee $1 i64.const -8640000000000000 i64.lt_s - local.get $2 + local.get $1 i64.const 8640000000000000 i64.gt_s i32.or br_if $folding-inner0 - local.get $2 + local.get $1 i64.const 8640000000000000 i64.ne if @@ -6521,17 +6521,17 @@ call $~lib/builtins/abort unreachable end - i64.const 86400000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 86400000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -6546,17 +6546,17 @@ call $~lib/builtins/abort unreachable end - i64.const 3600000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 3600000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -6571,17 +6571,17 @@ call $~lib/builtins/abort unreachable end - i64.const 60000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 60000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -6596,17 +6596,17 @@ call $~lib/builtins/abort unreachable end - i64.const 1000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 1000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 706 @@ -6660,17 +6660,17 @@ call $~lib/builtins/abort unreachable end - i64.const 86400000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 86400000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -6685,17 +6685,17 @@ call $~lib/builtins/abort unreachable end - i64.const 3600000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 3600000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -6710,17 +6710,17 @@ call $~lib/builtins/abort unreachable end - i64.const 60000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 60000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -6735,17 +6735,17 @@ call $~lib/builtins/abort unreachable end - i64.const 1000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 1000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 274 @@ -6763,17 +6763,17 @@ call $~lib/date/Date#constructor local.tee $0 i32.store - i64.const 1000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 1000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 984 @@ -6789,17 +6789,17 @@ local.get $0 i32.const 12 call $~lib/date/Date#setUTCMilliseconds - i64.const 1000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 1000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 12 @@ -6815,17 +6815,17 @@ local.get $0 i32.const 568 call $~lib/date/Date#setUTCMilliseconds - i64.const 1000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 1000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 568 @@ -6871,17 +6871,17 @@ local.get $0 i32.const 2000 call $~lib/date/Date#setUTCMilliseconds - i64.const 1000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 1000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 if @@ -6907,17 +6907,17 @@ local.get $0 i32.const -2000 call $~lib/date/Date#setUTCMilliseconds - i64.const 1000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 1000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 if @@ -6945,17 +6945,17 @@ call $~lib/date/Date#constructor local.tee $0 i32.store - i64.const 60000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 60000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -6973,17 +6973,17 @@ local.get $0 i32.const 12 call $~lib/date/Date#setUTCSeconds - i64.const 60000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 60000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -7001,17 +7001,17 @@ local.get $0 i32.const 50 call $~lib/date/Date#setUTCSeconds - i64.const 60000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 60000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -7061,17 +7061,17 @@ call $~lib/date/Date#constructor local.tee $0 i32.store - i64.const 3600000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 3600000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -7089,17 +7089,17 @@ local.get $0 i32.const 12 call $~lib/date/Date#setUTCMinutes - i64.const 3600000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 3600000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -7117,17 +7117,17 @@ local.get $0 i32.const 50 call $~lib/date/Date#setUTCMinutes - i64.const 3600000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 3600000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -7177,17 +7177,17 @@ call $~lib/date/Date#constructor local.tee $0 i32.store - i64.const 86400000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 86400000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -7205,17 +7205,17 @@ local.get $0 i32.const 12 call $~lib/date/Date#setUTCHours - i64.const 86400000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 86400000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -7233,17 +7233,17 @@ local.get $0 i32.const 2 call $~lib/date/Date#setUTCHours - i64.const 86400000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 86400000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -7398,17 +7398,17 @@ call $~lib/builtins/abort unreachable end - i64.const 3600000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 3600000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -7423,17 +7423,17 @@ call $~lib/builtins/abort unreachable end - i64.const 60000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 60000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -7448,17 +7448,17 @@ call $~lib/builtins/abort unreachable end - i64.const 1000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 1000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 274 @@ -7609,65 +7609,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1467763200000 call $~lib/date/Date#constructor - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.load - local.get $0 + local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $1 - i32.const 7 + local.tee $0 i32.const 0 - local.get $0 + i32.ge_s + local.set $3 + local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 i32.const 3 i32.sub - local.get $1 - i32.const 0 - i32.ge_s - local.tee $0 + local.get $3 select i32.const 4 i32.div_s - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 99 i32.sub - local.get $0 + local.get $3 select i32.const 100 i32.div_s i32.sub - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 399 i32.sub - local.get $0 + local.get $3 select i32.const 400 i32.div_s i32.add - local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 + i32.const 7 + i32.const 0 + local.get $0 i32.const 0 i32.lt_s select - local.get $0 i32.add i32.const 3 i32.ne @@ -7682,65 +7682,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1467763199999 call $~lib/date/Date#constructor - local.tee $0 + local.tee $2 i32.store offset=8 - local.get $0 + local.get $2 i32.load - local.get $0 + local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $1 - i32.const 7 + local.tee $0 i32.const 0 - local.get $0 + i32.ge_s + local.set $3 + local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 i32.const 3 i32.sub - local.get $1 - i32.const 0 - i32.ge_s - local.tee $0 + local.get $3 select i32.const 4 i32.div_s - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 99 i32.sub - local.get $0 + local.get $3 select i32.const 100 i32.div_s i32.sub - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 399 i32.sub - local.get $0 + local.get $3 select i32.const 400 i32.div_s i32.add - local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 + i32.const 7 + i32.const 0 + local.get $0 i32.const 0 i32.lt_s select - local.get $0 i32.add i32.const 2 i32.ne @@ -7755,65 +7755,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1467849599999 call $~lib/date/Date#constructor - local.tee $0 + local.tee $2 i32.store offset=12 - local.get $0 + local.get $2 i32.load - local.get $0 + local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $1 - i32.const 7 + local.tee $0 i32.const 0 - local.get $0 + i32.ge_s + local.set $3 + local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 i32.const 3 i32.sub - local.get $1 - i32.const 0 - i32.ge_s - local.tee $0 + local.get $3 select i32.const 4 i32.div_s - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 99 i32.sub - local.get $0 + local.get $3 select i32.const 100 i32.div_s i32.sub - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 399 i32.sub - local.get $0 + local.get $3 select i32.const 400 i32.div_s i32.add - local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 + i32.const 7 + i32.const 0 + local.get $0 i32.const 0 i32.lt_s select - local.get $0 i32.add i32.const 3 i32.ne @@ -7828,65 +7828,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1467849600000 call $~lib/date/Date#constructor - local.tee $0 + local.tee $2 i32.store offset=16 - local.get $0 + local.get $2 i32.load - local.get $0 + local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $1 - i32.const 7 + local.tee $0 i32.const 0 - local.get $0 + i32.ge_s + local.set $3 + local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 i32.const 3 i32.sub - local.get $1 - i32.const 0 - i32.ge_s - local.tee $0 + local.get $3 select i32.const 4 i32.div_s - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 99 i32.sub - local.get $0 + local.get $3 select i32.const 100 i32.div_s i32.sub - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 399 i32.sub - local.get $0 + local.get $3 select i32.const 400 i32.div_s i32.add - local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 + i32.const 7 + i32.const 0 + local.get $0 i32.const 0 i32.lt_s select - local.get $0 i32.add i32.const 4 i32.ne @@ -7901,65 +7901,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1468022400000 call $~lib/date/Date#constructor - local.tee $0 + local.tee $2 i32.store offset=20 - local.get $0 + local.get $2 i32.load - local.get $0 + local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $1 - i32.const 7 + local.tee $0 i32.const 0 - local.get $0 + i32.ge_s + local.set $3 + local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 i32.const 3 i32.sub - local.get $1 - i32.const 0 - i32.ge_s - local.tee $0 + local.get $3 select i32.const 4 i32.div_s - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 99 i32.sub - local.get $0 + local.get $3 select i32.const 100 i32.div_s i32.sub - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 399 i32.sub - local.get $0 + local.get $3 select i32.const 400 i32.div_s i32.add - local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 + i32.const 7 + i32.const 0 + local.get $0 i32.const 0 i32.lt_s select - local.get $0 i32.add i32.const 6 i32.ne @@ -7974,65 +7974,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1468022399999 call $~lib/date/Date#constructor - local.tee $0 + local.tee $2 i32.store offset=24 - local.get $0 + local.get $2 i32.load - local.get $0 + local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $1 - i32.const 7 + local.tee $0 i32.const 0 - local.get $0 + i32.ge_s + local.set $3 + local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 i32.const 3 i32.sub - local.get $1 - i32.const 0 - i32.ge_s - local.tee $0 + local.get $3 select i32.const 4 i32.div_s - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 99 i32.sub - local.get $0 + local.get $3 select i32.const 100 i32.div_s i32.sub - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 399 i32.sub - local.get $0 + local.get $3 select i32.const 400 i32.div_s i32.add - local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 + i32.const 7 + i32.const 0 + local.get $0 i32.const 0 i32.lt_s select - local.get $0 i32.add i32.const 5 i32.ne @@ -8047,65 +8047,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1468108799999 call $~lib/date/Date#constructor - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.load - local.get $0 + local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $1 - i32.const 7 + local.tee $0 i32.const 0 - local.get $0 + i32.ge_s + local.set $3 + local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 i32.const 3 i32.sub - local.get $1 - i32.const 0 - i32.ge_s - local.tee $0 + local.get $3 select i32.const 4 i32.div_s - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 99 i32.sub - local.get $0 + local.get $3 select i32.const 100 i32.div_s i32.sub - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 399 i32.sub - local.get $0 + local.get $3 select i32.const 400 i32.div_s i32.add - local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 + i32.const 7 + i32.const 0 + local.get $0 i32.const 0 i32.lt_s select - local.get $0 i32.add i32.const 6 i32.ne @@ -8120,65 +8120,65 @@ global.get $~lib/memory/__stack_pointer i64.const 1468108800000 call $~lib/date/Date#constructor - local.tee $0 + local.tee $2 i32.store offset=4 - local.get $0 + local.get $2 i32.load - local.get $0 + local.get $2 i32.load offset=4 - local.tee $3 + local.tee $4 i32.const 3 i32.lt_s i32.sub - local.set $1 - i32.const 7 + local.tee $0 i32.const 0 - local.get $0 + i32.ge_s + local.set $3 + local.get $2 i32.load offset=8 - local.get $3 + local.get $4 i32.const 1579 i32.add i32.load8_u - local.get $1 - local.get $1 + local.get $0 + local.get $0 + local.get $0 i32.const 3 i32.sub - local.get $1 - i32.const 0 - i32.ge_s - local.tee $0 + local.get $3 select i32.const 4 i32.div_s - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 99 i32.sub - local.get $0 + local.get $3 select i32.const 100 i32.div_s i32.sub - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 399 i32.sub - local.get $0 + local.get $3 select i32.const 400 i32.div_s i32.add - local.get $1 i32.add i32.add i32.add i32.const 7 i32.rem_s local.tee $0 + i32.const 7 + i32.const 0 + local.get $0 i32.const 0 i32.lt_s select - local.get $0 i32.add if i32.const 0 @@ -8194,7 +8194,6 @@ local.tee $0 i32.store offset=4 local.get $0 - local.tee $1 i32.load offset=4 i32.const 4 i32.ne @@ -8206,10 +8205,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 10 call $~lib/date/Date#setUTCMonth - local.get $1 + local.get $0 i32.load offset=4 i32.const 11 i32.ne @@ -8221,10 +8220,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 call $~lib/date/Date#setUTCMonth - local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.ne @@ -8236,7 +8235,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i64.load offset=16 i64.const 7899941177818720 i64.ne @@ -8248,13 +8247,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/date/Date#setUTCMonth - local.get $1 + local.get $0 i32.const 12 call $~lib/date/Date#setUTCMonth - local.get $1 + local.get $0 i64.load offset=16 i64.const 7899967616218720 i64.ne @@ -8266,10 +8265,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/date/Date#setUTCMonth - local.get $1 + local.get $0 i64.load offset=16 i64.const 7899967616218720 i64.ne @@ -8281,10 +8280,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 13 call $~lib/date/Date#setUTCMonth - local.get $1 + local.get $0 i64.load offset=16 i64.const 7900001830618720 i64.ne @@ -8801,10 +8800,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 6400 i32.store offset=28 - local.get $1 + local.get $0 i32.const 6400 call $~lib/date/Date.fromString local.tee $0 @@ -8822,10 +8821,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 6672 i32.store offset=28 - local.get $1 + local.get $0 i32.const 6672 call $~lib/date/Date.fromString local.tee $0 @@ -8843,10 +8842,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 6720 i32.store offset=28 - local.get $1 + local.get $0 i32.const 6720 call $~lib/date/Date.fromString local.tee $0 @@ -8864,10 +8863,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 6768 i32.store offset=28 - local.get $1 + local.get $0 i32.const 6768 call $~lib/date/Date.fromString local.tee $0 @@ -8885,10 +8884,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 6832 i32.store offset=28 - local.get $1 + local.get $0 i32.const 6832 call $~lib/date/Date.fromString local.tee $0 @@ -8906,10 +8905,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 6912 i32.store offset=28 - local.get $1 + local.get $0 i32.const 6912 call $~lib/date/Date.fromString local.tee $0 @@ -8927,10 +8926,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 6992 i32.store offset=28 - local.get $1 + local.get $0 i32.const 6992 call $~lib/date/Date.fromString local.tee $0 @@ -8948,10 +8947,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 7024 i32.store offset=28 - local.get $1 + local.get $0 i32.const 7024 call $~lib/date/Date.fromString local.tee $0 @@ -8969,10 +8968,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 7056 i32.store offset=28 - local.get $1 + local.get $0 i32.const 7056 call $~lib/date/Date.fromString local.tee $0 @@ -8990,10 +8989,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 7088 i32.store offset=28 - local.get $1 + local.get $0 i32.const 7088 call $~lib/date/Date.fromString local.tee $0 @@ -9011,10 +9010,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 6400 i32.store offset=28 - local.get $1 + local.get $0 i32.const 6400 call $~lib/date/Date.fromString local.tee $0 @@ -9032,10 +9031,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 7136 i32.store offset=28 - local.get $1 + local.get $0 i32.const 7136 call $~lib/date/Date.fromString local.tee $0 @@ -9053,10 +9052,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 6768 i32.store offset=28 - local.get $1 + local.get $0 i32.const 6768 call $~lib/date/Date.fromString local.tee $0 @@ -9081,7 +9080,7 @@ global.get $~lib/memory/__stack_pointer i64.const 8640000000000000 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store local.get $0 i64.load offset=16 @@ -9095,7 +9094,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i64.load offset=16 i64.const 8640000000000000 i64.ne @@ -9119,7 +9118,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load i32.const 275760 i32.ne @@ -9143,7 +9142,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=4 i32.const 9 i32.ne @@ -9167,7 +9166,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=8 i32.const 13 i32.ne @@ -9201,14 +9200,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store offset=28 - local.get $1 + local.get $2 i32.const 7280 i32.store offset=32 local.get $0 @@ -9226,7 +9225,7 @@ global.get $~lib/memory/__stack_pointer i64.const 8639999999999999 call $~lib/date/Date#constructor - local.tee $1 + local.tee $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer i64.const -8639999999999999 @@ -9269,17 +9268,17 @@ call $~lib/builtins/abort unreachable end - i64.const 86400000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 86400000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 86400000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 3600000 @@ -9292,17 +9291,17 @@ call $~lib/builtins/abort unreachable end - i64.const 3600000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 3600000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 3600000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 60000 @@ -9315,17 +9314,17 @@ call $~lib/builtins/abort unreachable end - i64.const 60000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 60000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 60000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 1000 @@ -9338,17 +9337,17 @@ call $~lib/builtins/abort unreachable end - i64.const 1000 - i64.const 0 local.get $0 i64.load offset=16 i64.const 1000 i64.rem_s - local.tee $2 + local.tee $1 + i64.const 1000 + i64.const 0 + local.get $1 i64.const 0 i64.lt_s select - local.get $2 i64.add i32.wrap_i64 i32.const 1 @@ -9361,17 +9360,17 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 call $~lib/date/Date#toISOString - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer local.tee $3 - local.get $1 + local.get $2 i32.store offset=28 local.get $3 i32.const 7360 i32.store offset=32 - local.get $1 + local.get $2 i32.const 7360 call $~lib/string/String.__eq i32.eqz @@ -9387,10 +9386,10 @@ call $~lib/date/Date#toISOString local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store offset=28 - local.get $1 + local.get $2 i32.const 7440 i32.store offset=32 local.get $0 @@ -9543,7 +9542,7 @@ local.get $1 i32.const 1 i32.shl - local.tee $3 + local.tee $1 i32.gt_u select i32.eqz @@ -9556,65 +9555,61 @@ return end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $3 i32.store local.get $2 - local.get $3 + local.get $1 local.get $6 i32.sub - local.tee $3 + local.tee $4 i32.lt_u if local.get $2 - local.get $3 + local.get $4 i32.const 2 i32.sub local.get $2 i32.div_u - local.tee $5 i32.mul + local.tee $1 local.set $7 - local.get $2 - local.get $5 - i32.mul - local.set $5 loop $while-continue|0 - local.get $4 + local.get $1 local.get $5 - i32.lt_u + i32.gt_u if - local.get $1 - local.get $4 + local.get $3 + local.get $5 i32.add i32.const 1872 local.get $2 call $~lib/memory/memory.copy local.get $2 - local.get $4 + local.get $5 i32.add - local.set $4 + local.set $5 br $while-continue|0 end end - local.get $1 + local.get $3 local.get $7 i32.add i32.const 1872 - local.get $3 + local.get $4 local.get $7 i32.sub call $~lib/memory/memory.copy else - local.get $1 - i32.const 1872 local.get $3 + i32.const 1872 + local.get $4 call $~lib/memory/memory.copy end - local.get $1 local.get $3 + local.get $4 i32.add local.get $0 local.get $6 @@ -9623,7 +9618,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $3 ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) diff --git a/tests/compiler/std/map.optimized.wat b/tests/compiler/std/map.optimized.wat index 80075b8f08..e0ae5df9e7 100644 --- a/tests/compiler/std/map.optimized.wat +++ b/tests/compiler/std/map.optimized.wat @@ -130,7 +130,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -138,10 +137,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18404 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -155,7 +154,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -180,21 +179,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1760 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -203,7 +200,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1764 @@ -218,28 +215,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1502,7 +1499,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1530,11 +1527,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1553,9 +1550,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1571,7 +1568,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1586,18 +1583,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1608,7 +1605,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1622,16 +1619,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1644,89 +1638,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1734,7 +1728,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1821,26 +1815,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -1848,37 +1842,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $7 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $8 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $5 + local.get $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load8_s - local.tee $4 + local.tee $8 i32.store8 local.get $2 - local.get $5 + local.get $7 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $4 + local.get $8 i32.extend8_s i32.const -1028477379 i32.mul @@ -1888,24 +1882,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $4 i32.xor local.get $1 i32.and @@ -1913,10 +1907,10 @@ i32.shl local.get $6 i32.add - local.tee $4 + local.tee $8 i32.load i32.store offset=8 - local.get $4 + local.get $8 local.get $2 i32.store local.get $2 @@ -1924,10 +1918,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 12 i32.add - local.set $5 + local.set $7 br $while-continue|0 end end @@ -1947,7 +1941,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -1960,54 +1954,52 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) @@ -2015,14 +2007,13 @@ else local.get $0 i32.load8_u - local.get $2 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -2030,8 +2021,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -2754,237 +2746,16 @@ i32.store8 end ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 20 - i32.sub - local.tee $2 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u - if - local.get $2 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $4 - local.get $1 - local.get $2 - i32.load offset=16 - local.tee $2 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $5 - block $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.tee $1 - local.get $0 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $1 - i32.sub - local.get $5 - i32.sub - i32.const 0 - local.get $5 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $1 - local.get $0 - local.get $5 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - local.get $1 - i32.gt_u - if - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $1 - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $1 - local.get $0 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 8 - i32.add - local.set $0 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $5 - if - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $1 - local.get $5 - i32.add - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - local.get $4 - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 i32.load offset=8 - local.tee $4 + local.tee $8 local.get $2 i32.shr_u local.get $1 @@ -3003,6 +2774,9 @@ call $~lib/builtins/abort unreachable end + local.get $0 + i32.load + local.set $4 local.get $1 i32.const 8 local.get $1 @@ -3012,53 +2786,272 @@ local.get $2 i32.shl local.set $1 - local.get $0 - i32.load - local.tee $5 - local.get $3 - if + block $__inlined_func$~lib/rt/itcms/__renew (result i32) + local.get $3 + if (result i32) + local.get $8 + i32.const 1 + i32.shl + local.tee $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.lt_u + select + else + local.get $1 + end + local.tee $6 local.get $4 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select local.tee $2 + i32.const 20 + i32.sub + local.tee $1 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $1 + local.get $6 + i32.store offset=16 + local.get $2 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $6 + local.get $1 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $9 + local.set $3 + local.get $6 local.get $1 + i32.load offset=16 + local.tee $1 local.get $1 - local.get $2 - i32.lt_u + local.get $6 + i32.gt_u select - local.set $1 + local.set $7 + block $~lib/util/memory/memmove|inlined.0 + local.get $3 + local.get $2 + local.tee $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $3 + i32.sub + local.get $7 + i32.sub + i32.const 0 + local.get $7 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $3 + local.get $1 + local.get $7 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $1 + local.get $3 + i32.gt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $3 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $3 + i32.const 7 + i32.and + if + local.get $7 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $3 + local.tee $5 + i32.const 1 + i32.add + local.set $3 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $5 + local.get $4 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $7 + i32.const 8 + i32.ge_u + if + local.get $3 + local.get $1 + i64.load + i64.store + local.get $7 + i32.const 8 + i32.sub + local.set $7 + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $7 + if + local.get $3 + local.tee $5 + i32.const 1 + i32.add + local.set $3 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $5 + local.get $4 + i32.load8_u + i32.store8 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $3 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $3 + local.get $7 + i32.add + i32.const 7 + i32.and + if + local.get $7 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $3 + local.get $7 + i32.const 1 + i32.sub + local.tee $7 + i32.add + local.get $1 + local.get $7 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $7 + i32.const 8 + i32.ge_u + if + local.get $3 + local.get $7 + i32.const 8 + i32.sub + local.tee $7 + i32.add + local.get $1 + local.get $7 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $7 + if + local.get $3 + local.get $7 + i32.const 1 + i32.sub + local.tee $7 + i32.add + local.get $1 + local.get $7 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + local.get $9 end - local.get $1 - call $~lib/rt/itcms/__renew - local.tee $2 - local.get $4 + local.tee $1 + local.get $8 i32.add - local.get $1 - local.get $4 + local.get $6 + local.get $8 i32.sub call $~lib/memory/memory.fill + local.get $1 local.get $2 - local.get $5 i32.ne if local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 i32.store offset=4 local.get $0 - local.get $2 + local.get $1 call $~lib/rt/itcms/__link end local.get $0 - local.get $1 + local.get $6 i32.store offset=8 end ) @@ -3183,26 +3176,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -3210,37 +3203,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $7 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $8 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $5 + local.get $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load - local.tee $4 + local.tee $8 i32.store local.get $2 - local.get $5 + local.get $7 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $4 + local.get $8 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3249,24 +3242,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $4 i32.xor local.get $1 i32.and @@ -3274,10 +3267,10 @@ i32.shl local.get $6 i32.add - local.tee $4 + local.tee $8 i32.load i32.store offset=8 - local.get $4 + local.get $8 local.get $2 i32.store local.get $2 @@ -3285,10 +3278,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 12 i32.add - local.set $5 + local.set $7 br $while-continue|0 end end @@ -3308,7 +3301,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -3317,56 +3310,55 @@ global.get $~lib/memory/__stack_pointer i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -3383,7 +3375,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -3392,8 +3383,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -3498,86 +3490,85 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i64.const 0 i64.store - local.get $0 + local.get $4 i64.const 0 i64.store offset=8 - local.get $0 + local.get $4 i32.const 0 i32.store offset=16 - local.get $0 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $0 i32.store - local.get $4 - local.get $15 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 i32.const 3 i32.store offset=4 - local.get $4 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $0 i32.store offset=8 - local.get $4 - local.get $15 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 i32.const 4 i32.store offset=12 - local.get $4 + local.get $5 i32.const 0 i32.store offset=16 - local.get $4 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $4 - local.tee $7 + local.get $5 i32.store loop $for-loop|1 - local.get $16 + local.get $2 i32.extend8_s i32.const 100 i32.lt_s if - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $16 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -3587,62 +3578,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $4 if - local.get $0 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $4 i32.load8_u - local.get $16 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $4 end - local.get $0 + local.get $4 if i32.const 0 i32.const 1568 @@ -3651,19 +3642,19 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 - local.get $16 + local.get $5 + local.get $2 + local.get $2 i32.extend8_s - local.tee $0 + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $0 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3672,62 +3663,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $0 + local.get $4 if - local.get $0 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $4 i32.load8_u - local.get $16 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $4 end - local.get $0 + local.get $4 i32.eqz if i32.const 0 @@ -3737,10 +3728,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $16 + local.get $2 i32.extend8_s i32.const 10 i32.add @@ -3753,14 +3744,14 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $2 i32.const 1 i32.add - local.set $16 + local.set $2 br $for-loop|1 end end - local.get $7 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -3773,18 +3764,18 @@ unreachable end i32.const 0 - local.set $16 + local.set $2 loop $for-loop|3 - local.get $16 + local.get $2 i32.extend8_s i32.const 100 i32.lt_s if - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $16 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -3794,62 +3785,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $0 + local.get $4 if - local.get $0 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $4 i32.load8_u - local.get $16 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $0 + local.set $4 end - local.get $0 + local.get $4 i32.eqz if i32.const 0 @@ -3859,10 +3850,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $16 + local.get $2 i32.extend8_s i32.const 10 i32.add @@ -3875,19 +3866,19 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 - local.get $16 + local.get $5 + local.get $2 + local.get $2 i32.extend8_s - local.tee $0 + local.tee $4 i32.const 20 i32.add call $~lib/map/Map#set - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $0 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761394 @@ -3896,62 +3887,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $0 + local.get $4 if - local.get $0 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $4 i32.load8_u - local.get $16 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $4 end - local.get $0 + local.get $4 i32.eqz if i32.const 0 @@ -3961,10 +3952,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $16 + local.get $2 i32.extend8_s i32.const 20 i32.add @@ -3977,14 +3968,14 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $2 i32.const 1 i32.add - local.set $16 + local.set $2 br $for-loop|3 end end - local.get $7 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -3997,60 +3988,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $3 i32.const 0 i32.store - local.get $7 + local.get $5 i32.load offset=8 - local.set $15 - local.get $7 + local.set $11 + local.get $5 i32.load offset=16 - local.tee $4 - local.set $14 - local.get $16 + local.tee $12 + local.set $4 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $2 i32.const 0 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 0 i32.store offset=12 - local.get $14 + local.get $4 i32.const 1073741820 i32.gt_u if @@ -4062,94 +4053,94 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $4 i32.const 8 - local.get $14 + local.get $4 i32.const 8 i32.gt_u select - local.tee $6 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $0 i32.store offset=4 - local.get $13 - local.get $6 + local.get $0 + local.get $8 call $~lib/memory/memory.fill + local.get $2 local.get $0 - local.get $13 i32.store + local.get $2 local.get $0 - local.get $13 call $~lib/rt/itcms/__link + local.get $2 local.get $0 - local.get $13 i32.store offset=4 - local.get $0 - local.get $6 + local.get $2 + local.get $8 i32.store offset=8 - local.get $0 - local.get $14 + local.get $2 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 - local.get $0 + local.get $3 + local.get $2 i32.store loop $for-loop|0 - local.get $2 - local.get $4 + local.get $7 + local.get $12 i32.lt_s if - local.get $2 + local.get $7 i32.const 12 i32.mul - local.get $15 + local.get $11 i32.add - local.tee $16 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $0 - local.get $3 - local.get $16 + local.get $2 + local.get $1 + local.get $4 i32.load8_s call $~lib/array/Array#__set - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 end - local.get $2 + local.get $7 i32.const 1 i32.add - local.set $2 + local.set $7 br $for-loop|0 end end - local.get $0 - local.get $3 + local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $0 - local.get $3 + local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.tee $6 + local.get $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 call $~lib/map/Map#values - local.tee $8 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -4159,66 +4150,65 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i32.const 0 i32.store - local.get $0 + local.get $4 i32.const 24 i32.const 6 call $~lib/rt/itcms/__new - local.tee $16 + local.tee $4 i32.store - local.get $16 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $16 + local.get $4 local.get $0 call $~lib/rt/itcms/__link - local.get $16 + local.get $4 i32.const 3 i32.store offset=4 - local.get $16 + local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $16 + local.get $4 local.get $0 call $~lib/rt/itcms/__link - local.get $16 + local.get $4 i32.const 4 i32.store offset=12 - local.get $16 + local.get $4 i32.const 0 i32.store offset=16 - local.get $16 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $10 + local.tee $11 i32.store offset=16 loop $for-loop|4 - local.get $6 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $6 i32.gt_s if local.get $1 - local.tee $4 - local.get $6 i32.load offset=12 - i32.ge_u + local.get $6 + i32.le_u if i32.const 1248 i32.const 1728 @@ -4227,22 +4217,21 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $6 + local.get $1 i32.load offset=4 i32.add i32.load8_s - local.set $5 - local.get $8 - local.get $4 + local.set $2 + local.get $13 + local.get $6 call $~lib/array/Array#__get - local.set $9 - local.get $7 + local.set $12 + local.get $5 i32.load - local.get $7 - i32.load offset=4 local.get $5 - local.tee $0 + i32.load offset=4 + local.get $2 i32.extend8_s i32.const -1028477379 i32.mul @@ -4252,62 +4241,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $15 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - i32.load8_u local.get $0 + i32.load8_u + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $15 + local.get $3 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|011 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -4317,14 +4306,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $9 + local.get $12 i32.const 20 i32.sub - local.tee $2 + local.tee $3 i32.extend8_s i32.const -1028477379 i32.mul @@ -4334,62 +4323,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $15 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 i32.load8_u - local.get $2 + local.get $3 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $15 + local.get $8 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -4406,13 +4395,14 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $16 + local.get $4 i32.load - local.get $0 + local.get $2 + local.tee $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -4422,47 +4412,47 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $7 i32.const 15 i32.shr_u + local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $7 i32.const 13 i32.shr_u + local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $7 i32.const 16 i32.shr_u + local.get $7 i32.xor - local.tee $5 - local.get $16 + local.tee $14 + local.get $4 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $1 + local.get $7 if - local.get $1 + local.get $7 i32.load offset=4 - local.tee $15 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $7 i32.load8_u local.get $0 i32.const 255 @@ -4470,31 +4460,31 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $15 + local.get $8 i32.const -2 i32.and - local.set $1 + local.set $7 br $while-continue|015 end end i32.const 0 - local.set $1 + local.set $7 end - local.get $1 + local.get $7 if - local.get $1 - local.get $0 + local.get $7 + local.get $2 i32.store8 offset=1 else - local.get $16 + local.get $4 i32.load offset=16 - local.get $16 + local.get $4 i32.load offset=12 i32.eq if - local.get $16 + local.get $4 i32.load offset=20 - local.get $16 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -4502,17 +4492,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $16 + local.get $4 i32.load offset=4 else - local.get $16 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $15 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -4520,66 +4510,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 - local.get $15 + local.get $0 + local.get $7 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $14 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $3 i32.store offset=4 - local.get $16 + local.get $4 i32.load offset=8 - local.tee $12 - local.get $16 + local.tee $8 + local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $13 - local.get $1 - local.set $2 + local.set $16 + local.get $3 + local.set $0 loop $while-continue|016 - local.get $12 - local.get $13 + local.get $8 + local.get $16 i32.ne if - local.get $12 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $12 + local.get $0 + local.get $8 i32.load8_s - local.tee $3 + local.tee $9 i32.store8 - local.get $2 - local.get $12 + local.get $0 + local.get $8 i32.load8_s offset=1 i32.store8 offset=1 - local.get $2 - local.get $3 + local.get $0 + local.get $9 i32.extend8_s i32.const -1028477379 i32.mul @@ -4589,69 +4579,69 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor - local.get $15 + local.get $7 i32.and i32.const 2 i32.shl - local.get $11 + local.get $10 i32.add - local.tee $3 + local.tee $9 i32.load i32.store offset=4 - local.get $3 - local.get $2 + local.get $9 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 8 i32.add - local.set $2 + local.set $0 end - local.get $12 + local.get $8 i32.const 8 i32.add - local.set $12 + local.set $8 br $while-continue|016 end end - local.get $16 - local.get $11 + local.get $4 + local.get $10 i32.store - local.get $16 - local.get $11 + local.get $4 + local.get $10 call $~lib/rt/itcms/__link - local.get $16 - local.get $15 + local.get $4 + local.get $7 i32.store offset=4 - local.get $16 - local.get $1 + local.get $4 + local.get $3 i32.store offset=8 - local.get $16 - local.get $1 + local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $16 - local.get $14 + local.get $4 + local.get $15 i32.store offset=12 - local.get $16 - local.get $16 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4660,70 +4650,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $4 i32.load offset=8 - local.tee $15 + local.tee $0 i32.store - local.get $16 - local.get $16 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $1 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $1 + local.get $7 i32.const 3 i32.shl - local.get $15 - i32.add - local.tee $15 local.get $0 + i32.add + local.tee $0 + local.get $2 i32.store8 - local.get $15 local.get $0 + local.get $2 i32.store8 offset=1 - local.get $16 - local.get $16 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $15 - local.get $16 + local.get $0 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $5 + local.get $14 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=4 - local.get $1 - local.get $15 + local.get $2 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 - local.get $9 + local.get $11 + local.get $12 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 call $~lib/map/Map#set - local.get $4 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|4 end end - local.get $16 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -4735,7 +4725,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -4748,19 +4738,18 @@ unreachable end i32.const 0 - local.set $1 + local.set $6 loop $for-loop|6 - local.get $1 + local.get $6 i32.extend8_s i32.const 50 i32.lt_s if - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $6 i32.extend8_s i32.const -1028477379 i32.mul @@ -4770,62 +4759,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 i32.load8_u - local.get $0 + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $16 + local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|019 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -4835,10 +4824,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#get - local.get $0 + local.get $6 i32.extend8_s i32.const 20 i32.add @@ -4851,14 +4840,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $0 + local.get $6 i32.extend8_s i32.const -1028477379 i32.mul @@ -4868,62 +4857,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 i32.load8_u - local.get $0 + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $16 + local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|022 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -4932,14 +4921,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|6 end end - local.get $7 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -4952,19 +4941,18 @@ unreachable end i32.const 0 - local.set $1 + local.set $6 loop $for-loop|8 - local.get $1 + local.get $6 i32.extend8_s i32.const 50 i32.lt_s if - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $6 i32.extend8_s i32.const -1028477379 i32.mul @@ -4974,62 +4962,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 i32.load8_u - local.get $0 + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $16 + local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|025 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -5038,19 +5026,19 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 - local.get $0 + local.get $5 + local.get $6 + local.get $6 i32.extend8_s - local.tee $1 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $1 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5059,62 +5047,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 i32.load8_u - local.get $0 + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $16 + local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|028 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -5124,14 +5112,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $0 + local.get $6 i32.extend8_s i32.const -1028477379 i32.mul @@ -5141,62 +5129,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 i32.load8_u - local.get $0 + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $16 + local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|031 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -5205,14 +5193,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|8 end end - local.get $7 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -5224,9 +5212,9 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $5 call $~lib/map/Map#clear - local.get $7 + local.get $5 i32.load offset=20 if i32.const 0 @@ -5273,26 +5261,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -5300,39 +5288,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $7 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $8 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $5 + local.get $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load8_u - local.tee $4 + local.tee $8 i32.store8 local.get $2 - local.get $5 + local.get $7 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $4 - i32.const 255 - i32.and + local.get $8 i32.const -1028477379 i32.mul i32.const 374761394 @@ -5341,24 +5327,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $4 i32.xor local.get $1 i32.and @@ -5366,10 +5352,10 @@ i32.shl local.get $6 i32.add - local.tee $4 + local.tee $8 i32.load i32.store offset=8 - local.get $4 + local.get $8 local.get $2 i32.store local.get $2 @@ -5377,10 +5363,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 12 i32.add - local.set $5 + local.set $7 br $while-continue|0 end end @@ -5400,7 +5386,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -5413,55 +5399,53 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) @@ -5469,14 +5453,13 @@ else local.get $0 i32.load8_u - local.get $2 + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -5484,69 +5467,69 @@ end end i32.const 0 + local.set $0 end - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - ) - (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + ) + (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -5563,7 +5546,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -5572,8 +5554,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -5643,16 +5626,15 @@ (local $14 i32) (local $15 i32) (local $16 i32) - (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $4 i64.const 0 @@ -5670,43 +5652,43 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $5 i32.const 0 i32.store - local.get $1 + local.get $5 i32.const 24 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $0 i32.store - local.get $1 - local.get $7 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $1 + local.get $5 i32.const 3 i32.store offset=4 - local.get $1 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $0 i32.store offset=8 - local.get $1 - local.get $7 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $1 + local.get $5 i32.const 4 i32.store offset=12 - local.get $1 + local.get $5 i32.const 0 i32.store offset=16 - local.get $1 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -5714,7 +5696,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 - local.get $1 + local.get $5 i32.store loop $for-loop|1 local.get $2 @@ -5723,82 +5705,77 @@ i32.const 100 i32.lt_u if - local.get $1 - local.set $5 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 local.get $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $7 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $5 + local.get $4 if - local.get $5 - local.get $5 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $4 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|0 end end i32.const 0 + local.set $4 end + local.get $4 if i32.const 0 i32.const 1568 @@ -5807,92 +5784,84 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 local.get $2 local.get $2 i32.const 255 i32.and + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $1 - local.set $5 - local.get $2 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find1 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $7 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $5 + local.get $4 if - local.get $5 - local.get $5 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $4 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - drop - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|02 end end i32.const 0 + local.set $4 end - i32.const 0 - i32.ne + local.get $4 i32.eqz if i32.const 0 @@ -5902,7 +5871,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -5926,7 +5895,7 @@ br $for-loop|1 end end - local.get $1 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -5947,84 +5916,77 @@ i32.const 100 i32.lt_u if - local.get $1 - local.set $5 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 local.get $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find4 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $7 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $5 + local.get $4 if - local.get $5 - local.get $5 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $4 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - drop - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|05 end end i32.const 0 + local.set $4 end - i32.const 0 - i32.ne + local.get $4 i32.eqz if i32.const 0 @@ -6034,7 +5996,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -6051,92 +6013,84 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 local.get $2 local.get $2 i32.const 255 i32.and + local.tee $4 i32.const 20 i32.add call $~lib/map/Map#set - local.get $1 - local.set $5 - local.get $2 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find7 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $7 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $5 + local.get $4 if - local.get $5 - local.get $5 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $4 i32.load8_u - local.get $7 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - drop - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|08 end end i32.const 0 + local.set $4 end - i32.const 0 - i32.ne + local.get $4 i32.eqz if i32.const 0 @@ -6146,7 +6100,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -6170,7 +6124,7 @@ br $for-loop|3 end end - local.get $1 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -6183,61 +6137,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store - local.get $1 + local.get $5 i32.load offset=8 - local.set $14 - local.get $1 + local.set $11 + local.get $5 i32.load offset=16 - local.tee $13 - local.set $7 - local.get $4 - local.tee $2 + local.tee $12 + local.set $4 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i32.const 16 i32.const 9 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 0 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.store offset=8 - local.get $4 + local.get $2 i32.const 0 i32.store offset=12 - local.get $7 + local.get $4 i32.const 1073741820 i32.gt_u if @@ -6249,94 +6202,94 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.const 8 - local.get $7 + local.get $4 i32.const 8 i32.gt_u select - local.tee $5 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $17 + local.tee $0 i32.store offset=4 - local.get $17 - local.get $5 + local.get $0 + local.get $8 call $~lib/memory/memory.fill - local.get $4 - local.get $17 + local.get $2 + local.get $0 i32.store - local.get $4 - local.get $17 + local.get $2 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 - local.get $17 + local.get $2 + local.get $0 i32.store offset=4 - local.get $4 - local.get $5 + local.get $2 + local.get $8 i32.store offset=8 + local.get $2 local.get $4 - local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 local.get $2 - local.get $4 i32.store loop $for-loop|0 - local.get $6 - local.get $13 + local.get $7 + local.get $12 i32.lt_s if - local.get $6 + local.get $7 i32.const 12 i32.mul - local.get $14 + local.get $11 i32.add - local.tee $2 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $4 - local.get $3 local.get $2 + local.get $1 + local.get $4 i32.load8_u call $~lib/array/Array#__set - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end - local.get $4 - local.get $3 + local.get $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $4 - local.get $3 + local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.tee $7 + local.get $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 call $~lib/map/Map#values - local.tee $11 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -6346,7 +6299,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $4 i32.const 0 @@ -6360,10 +6313,10 @@ local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $17 + local.tee $0 i32.store local.get $4 - local.get $17 + local.get $0 call $~lib/rt/itcms/__link local.get $4 i32.const 3 @@ -6371,10 +6324,10 @@ local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $17 + local.tee $0 i32.store offset=8 local.get $4 - local.get $17 + local.get $0 call $~lib/rt/itcms/__link local.get $4 i32.const 4 @@ -6393,19 +6346,18 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $13 + local.tee $11 i32.store offset=16 loop $for-loop|4 - local.get $7 + local.get $1 i32.load offset=12 - local.get $0 + local.get $6 i32.gt_s if - local.get $0 - local.tee $6 - local.get $7 + local.get $1 i32.load offset=12 - i32.ge_u + local.get $6 + i32.le_u if i32.const 1248 i32.const 1728 @@ -6415,93 +6367,84 @@ unreachable end local.get $6 - local.get $7 + local.get $1 i32.load offset=4 i32.add i32.load8_u local.set $2 - local.get $11 + local.get $13 local.get $6 call $~lib/array/Array#__get local.set $12 - local.get $1 - local.set $3 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 local.get $2 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $0 - block $__inlined_func$~lib/map/Map#find10 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $0 - local.tee $5 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $5 + local.get $2 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - drop - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|011 end end i32.const 0 + local.set $0 end - i32.const 0 - i32.ne + local.get $0 i32.eqz if i32.const 0 @@ -6511,61 +6454,56 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.set $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 local.get $12 i32.const 20 i32.sub - local.set $3 - block $__inlined_func$~lib/map/Map#find13 (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $3 - local.tee $5 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.tee $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $8 i32.const 1 i32.and if (result i32) @@ -6573,14 +6511,13 @@ else local.get $0 i32.load8_u - local.get $5 + local.get $3 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - drop - local.get $3 + local.get $8 i32.const -2 i32.and local.set $0 @@ -6588,9 +6525,9 @@ end end i32.const 0 + local.set $0 end - i32.const 0 - i32.ne + local.get $0 i32.eqz if i32.const 0 @@ -6600,7 +6537,6 @@ call $~lib/builtins/abort unreachable end - local.get $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6608,14 +6544,14 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.set $5 local.get $4 i32.load local.get $2 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6624,26 +6560,26 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $7 i32.const 15 i32.shr_u + local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $7 i32.const 13 i32.shr_u + local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $7 i32.const 16 i32.shr_u + local.get $7 i32.xor - local.tee $10 + local.tee $14 local.get $4 i32.load offset=4 i32.and @@ -6651,41 +6587,41 @@ i32.shl i32.add i32.load - local.set $0 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $0 + local.get $7 if - local.get $0 + local.get $7 i32.load offset=4 - local.tee $3 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $7 i32.load8_u - local.get $5 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $8 i32.const -2 i32.and - local.set $0 + local.set $7 br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $7 end - local.get $0 + local.get $7 if - local.get $0 - local.get $5 + local.get $7 + local.get $2 i32.store8 offset=1 else local.get $4 @@ -6714,7 +6650,7 @@ i32.const 1 i32.or end - local.set $17 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -6722,20 +6658,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $17 + local.get $7 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $14 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -6743,7 +6679,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $9 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -6751,37 +6687,37 @@ i32.store offset=4 local.get $4 i32.load offset=8 - local.tee $15 + local.tee $8 local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 + local.set $16 local.get $3 local.set $0 - loop $while-continue|00 + loop $while-continue|016 local.get $8 - local.get $15 + local.get $16 i32.ne if - local.get $15 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $15 + local.get $8 i32.load8_u - local.tee $16 + local.tee $9 i32.store8 local.get $0 - local.get $15 + local.get $8 i32.load8_u offset=1 i32.store8 offset=1 local.get $0 - local.get $16 + local.get $9 i32.const -1028477379 i32.mul i32.const 374761394 @@ -6790,35 +6726,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor - local.get $17 + local.get $7 i32.and i32.const 2 i32.shl - local.get $14 + local.get $10 i32.add - local.tee $16 + local.tee $9 i32.load i32.store offset=4 - local.get $16 + local.get $9 local.get $0 i32.store local.get $0 @@ -6826,21 +6762,21 @@ i32.add local.set $0 end - local.get $15 + local.get $8 i32.const 8 i32.add - local.set $15 - br $while-continue|00 + local.set $8 + br $while-continue|016 end end local.get $4 - local.get $14 + local.get $10 i32.store local.get $4 - local.get $14 + local.get $10 call $~lib/rt/itcms/__link local.get $4 - local.get $17 + local.get $7 i32.store offset=4 local.get $4 local.get $3 @@ -6849,7 +6785,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $4 - local.get $9 + local.get $15 i32.store offset=12 local.get $4 local.get $4 @@ -6868,11 +6804,11 @@ local.get $4 local.get $4 i32.load offset=16 - local.tee $17 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $17 + local.get $7 i32.const 3 i32.shl local.get $0 @@ -6881,7 +6817,7 @@ local.get $2 i32.store8 local.get $0 - local.get $5 + local.get $2 i32.store8 offset=1 local.get $4 local.get $4 @@ -6894,7 +6830,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $10 + local.get $14 i32.and i32.const 2 i32.shl @@ -6910,17 +6846,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 + local.get $11 local.get $12 i32.const 20 i32.sub - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 call $~lib/map/Map#set local.get $6 i32.const 1 i32.add - local.set $0 + local.set $6 br $for-loop|4 end end @@ -6936,7 +6872,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -6949,92 +6885,85 @@ unreachable end i32.const 0 - local.set $0 + local.set $6 loop $for-loop|6 - local.get $0 + local.get $6 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $1 - local.set $3 - local.get $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $6 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 - block $__inlined_func$~lib/map/Map#find17 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - loop $while-continue|018 - local.get $3 + block $__inlined_func$~lib/map/Map#find18 + loop $while-continue|019 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $4 + local.get $6 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find17 - drop - local.get $2 + br_if $__inlined_func$~lib/map/Map#find18 + local.get $0 i32.const -2 i32.and - local.set $3 - br $while-continue|018 + local.set $2 + br $while-continue|019 end end i32.const 0 + local.set $2 end - i32.const 0 - i32.ne + local.get $2 i32.eqz if i32.const 0 @@ -7044,10 +6973,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#get - local.get $0 + local.get $6 i32.const 255 i32.and i32.const 20 @@ -7061,85 +6990,80 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $1 - local.set $3 - local.get $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $6 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 - block $__inlined_func$~lib/map/Map#find20 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - loop $while-continue|021 - local.get $3 + block $__inlined_func$~lib/map/Map#find21 + loop $while-continue|022 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $4 + local.get $6 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find20 - drop - local.get $2 + br_if $__inlined_func$~lib/map/Map#find21 + local.get $0 i32.const -2 i32.and - local.set $3 - br $while-continue|021 + local.set $2 + br $while-continue|022 end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -7148,14 +7072,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $0 + local.set $6 br $for-loop|6 end end - local.get $1 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -7168,90 +7092,85 @@ unreachable end i32.const 0 - local.set $0 + local.set $6 loop $for-loop|8 - local.get $0 + local.get $6 i32.const 255 i32.and i32.const 50 i32.lt_u if - local.get $1 - local.set $3 - local.get $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $6 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 - block $__inlined_func$~lib/map/Map#find23 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - loop $while-continue|024 - local.get $3 + block $__inlined_func$~lib/map/Map#find24 + loop $while-continue|025 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $4 + local.get $6 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find23 - drop - local.get $2 + br_if $__inlined_func$~lib/map/Map#find24 + local.get $0 i32.const -2 i32.and - local.set $3 - br $while-continue|024 + local.set $2 + br $while-continue|025 end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -7260,92 +7179,84 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $0 - local.get $0 + local.get $5 + local.get $6 + local.get $6 i32.const 255 i32.and + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $1 - local.set $3 - local.get $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $2 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 - block $__inlined_func$~lib/map/Map#find26 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - loop $while-continue|027 - local.get $3 + block $__inlined_func$~lib/map/Map#find27 + loop $while-continue|028 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $4 + local.get $6 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find26 - drop - local.get $2 + br_if $__inlined_func$~lib/map/Map#find27 + local.get $0 i32.const -2 i32.and - local.set $3 - br $while-continue|027 + local.set $2 + br $while-continue|028 end end i32.const 0 + local.set $2 end - i32.const 0 - i32.ne + local.get $2 i32.eqz if i32.const 0 @@ -7355,85 +7266,80 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $1 - local.set $3 - local.get $0 - local.set $2 - block $__inlined_func$~lib/map/Map#find29 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - loop $while-continue|030 - local.get $3 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $6 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/map/Map#find30 + loop $while-continue|031 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load8_u - local.get $4 + local.get $6 i32.const 255 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find29 - drop - local.get $2 + br_if $__inlined_func$~lib/map/Map#find30 + local.get $0 i32.const -2 i32.and - local.set $3 - br $while-continue|030 + local.set $2 + br $while-continue|031 end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -7442,14 +7348,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $0 + local.set $6 br $for-loop|8 end end - local.get $1 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -7461,9 +7367,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 call $~lib/map/Map#clear - local.get $1 + local.get $5 i32.load offset=20 if i32.const 0 @@ -7510,26 +7416,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -7537,37 +7443,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $7 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $8 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $5 + local.get $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load16_s - local.tee $4 + local.tee $8 i32.store16 local.get $2 - local.get $5 + local.get $7 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $4 + local.get $8 i32.extend16_s i32.const -1028477379 i32.mul @@ -7577,24 +7483,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $4 i32.xor local.get $1 i32.and @@ -7602,10 +7508,10 @@ i32.shl local.get $6 i32.add - local.tee $4 + local.tee $8 i32.load i32.store offset=8 - local.get $4 + local.get $8 local.get $2 i32.store local.get $2 @@ -7613,10 +7519,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 12 i32.add - local.set $5 + local.set $7 br $while-continue|0 end end @@ -7636,7 +7542,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -7649,54 +7555,52 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) @@ -7704,14 +7608,13 @@ else local.get $0 i32.load16_u - local.get $2 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -7719,8 +7622,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -7775,51 +7679,50 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -7836,7 +7739,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -7845,8 +7747,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -7920,86 +7823,85 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i64.const 0 i64.store - local.get $0 + local.get $4 i64.const 0 i64.store offset=8 - local.get $0 + local.get $4 i32.const 0 i32.store offset=16 - local.get $0 + local.get $4 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 24 i32.const 11 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $5 i32.store - local.get $4 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $0 i32.store - local.get $4 - local.get $15 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 i32.const 3 i32.store offset=4 - local.get $4 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $0 i32.store offset=8 - local.get $4 - local.get $15 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 + local.get $5 i32.const 4 i32.store offset=12 - local.get $4 + local.get $5 i32.const 0 i32.store offset=16 - local.get $4 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $4 - local.tee $7 + local.get $5 i32.store loop $for-loop|1 - local.get $16 + local.get $2 i32.extend16_s i32.const 100 i32.lt_s if - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $16 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -8009,62 +7911,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $4 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $4 if - local.get $0 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $4 i32.load16_u - local.get $16 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $4 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $4 end - local.get $0 + local.get $4 if i32.const 0 i32.const 1568 @@ -8073,19 +7975,19 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 - local.get $16 + local.get $5 + local.get $2 + local.get $2 i32.extend16_s - local.tee $0 + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $0 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8094,62 +7996,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $4 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $0 + local.get $4 if - local.get $0 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $4 i32.load16_u - local.get $16 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $4 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $4 end - local.get $0 + local.get $4 i32.eqz if i32.const 0 @@ -8159,10 +8061,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $16 + local.get $2 i32.extend16_s i32.const 10 i32.add @@ -8175,14 +8077,14 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $2 i32.const 1 i32.add - local.set $16 + local.set $2 br $for-loop|1 end end - local.get $7 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -8195,18 +8097,18 @@ unreachable end i32.const 0 - local.set $16 + local.set $2 loop $for-loop|3 - local.get $16 + local.get $2 i32.extend16_s i32.const 100 i32.lt_s if - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $16 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -8216,62 +8118,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $4 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $0 + local.get $4 if - local.get $0 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $4 i32.load16_u - local.get $16 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $4 br $while-continue|05 end end i32.const 0 - local.set $0 + local.set $4 end - local.get $0 + local.get $4 i32.eqz if i32.const 0 @@ -8281,10 +8183,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $16 + local.get $2 i32.extend16_s i32.const 10 i32.add @@ -8297,19 +8199,19 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 - local.get $16 + local.get $5 + local.get $2 + local.get $2 i32.extend16_s - local.tee $0 + local.tee $4 i32.const 20 i32.add call $~lib/map/Map#set - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $0 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761395 @@ -8318,62 +8220,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 15 i32.shr_u + local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 13 i32.shr_u + local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $4 i32.const 16 i32.shr_u + local.get $4 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $4 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $0 + local.get $4 if - local.get $0 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $4 i32.load16_u - local.get $16 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $0 + local.set $4 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $4 end - local.get $0 + local.get $4 i32.eqz if i32.const 0 @@ -8383,10 +8285,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 + local.get $5 + local.get $2 call $~lib/map/Map#get - local.get $16 + local.get $2 i32.extend16_s i32.const 20 i32.add @@ -8399,14 +8301,14 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $2 i32.const 1 i32.add - local.set $16 + local.set $2 br $for-loop|3 end end - local.get $7 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -8419,60 +8321,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $3 i32.const 0 i32.store - local.get $7 + local.get $5 i32.load offset=8 - local.set $15 - local.get $7 + local.set $11 + local.get $5 i32.load offset=16 - local.tee $4 - local.set $14 - local.get $16 + local.tee $12 + local.set $4 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $2 i64.const 0 i64.store - local.get $0 + local.get $2 i32.const 16 i32.const 12 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 i32.store - local.get $0 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $2 i32.const 0 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 i32.store offset=8 - local.get $0 + local.get $2 i32.const 0 i32.store offset=12 - local.get $14 + local.get $4 i32.const 536870910 i32.gt_u if @@ -8484,96 +8386,96 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $4 i32.const 8 - local.get $14 + local.get $4 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $6 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $0 i32.store offset=4 - local.get $13 - local.get $6 + local.get $0 + local.get $8 call $~lib/memory/memory.fill + local.get $2 local.get $0 - local.get $13 i32.store + local.get $2 local.get $0 - local.get $13 call $~lib/rt/itcms/__link + local.get $2 local.get $0 - local.get $13 i32.store offset=4 - local.get $0 - local.get $6 + local.get $2 + local.get $8 i32.store offset=8 - local.get $0 - local.get $14 + local.get $2 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 - local.get $0 + local.get $3 + local.get $2 i32.store loop $for-loop|0 - local.get $2 - local.get $4 + local.get $7 + local.get $12 i32.lt_s if - local.get $2 + local.get $7 i32.const 12 i32.mul - local.get $15 + local.get $11 i32.add - local.tee $16 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $0 - local.get $3 - local.get $16 + local.get $2 + local.get $1 + local.get $4 i32.load16_s call $~lib/array/Array#__set - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 end - local.get $2 + local.get $7 i32.const 1 i32.add - local.set $2 + local.set $7 br $for-loop|0 end end - local.get $0 - local.get $3 + local.get $2 + local.get $1 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $0 - local.get $3 + local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.tee $6 + local.get $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 call $~lib/map/Map#values - local.tee $8 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -8583,66 +8485,65 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $4 i32.const 0 i32.store - local.get $0 + local.get $4 i32.const 24 i32.const 13 call $~lib/rt/itcms/__new - local.tee $16 + local.tee $4 i32.store - local.get $16 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $16 + local.get $4 local.get $0 call $~lib/rt/itcms/__link - local.get $16 + local.get $4 i32.const 3 i32.store offset=4 - local.get $16 + local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $16 + local.get $4 local.get $0 call $~lib/rt/itcms/__link - local.get $16 + local.get $4 i32.const 4 i32.store offset=12 - local.get $16 + local.get $4 i32.const 0 i32.store offset=16 - local.get $16 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 + local.get $4 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $10 + local.tee $11 i32.store offset=16 loop $for-loop|4 - local.get $6 - i32.load offset=12 local.get $1 + i32.load offset=12 + local.get $6 i32.gt_s if local.get $1 - local.tee $4 - local.get $6 i32.load offset=12 - i32.ge_u + local.get $6 + i32.le_u if i32.const 1248 i32.const 1728 @@ -8651,24 +8552,23 @@ call $~lib/builtins/abort unreachable end - local.get $6 + local.get $1 i32.load offset=4 - local.get $4 + local.get $6 i32.const 1 i32.shl i32.add i32.load16_s - local.set $5 - local.get $8 - local.get $4 + local.set $2 + local.get $13 + local.get $6 call $~lib/array/Array#__get - local.set $9 - local.get $7 + local.set $12 + local.get $5 i32.load - local.get $7 - i32.load offset=4 local.get $5 - local.tee $0 + i32.load offset=4 + local.get $2 i32.extend16_s i32.const -1028477379 i32.mul @@ -8678,62 +8578,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $15 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - i32.load16_u local.get $0 + i32.load16_u + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $15 + local.get $3 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|011 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -8743,14 +8643,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $9 + local.get $12 i32.const 20 i32.sub - local.tee $2 + local.tee $3 i32.extend16_s i32.const -1028477379 i32.mul @@ -8760,62 +8660,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $15 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $0 i32.load16_u - local.get $2 + local.get $3 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $15 + local.get $8 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -8832,13 +8732,14 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $16 + local.get $4 i32.load - local.get $0 + local.get $2 + local.tee $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -8848,47 +8749,47 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $7 i32.const 15 i32.shr_u + local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $7 i32.const 13 i32.shr_u + local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $7 i32.const 16 i32.shr_u + local.get $7 i32.xor - local.tee $5 - local.get $16 + local.tee $14 + local.get $4 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $1 + local.get $7 if - local.get $1 + local.get $7 i32.load offset=4 - local.tee $15 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $7 i32.load16_u local.get $0 i32.const 65535 @@ -8896,31 +8797,31 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $15 + local.get $8 i32.const -2 i32.and - local.set $1 + local.set $7 br $while-continue|015 end end i32.const 0 - local.set $1 + local.set $7 end - local.get $1 + local.get $7 if - local.get $1 - local.get $0 + local.get $7 + local.get $2 i32.store16 offset=2 else - local.get $16 + local.get $4 i32.load offset=16 - local.get $16 + local.get $4 i32.load offset=12 i32.eq if - local.get $16 + local.get $4 i32.load offset=20 - local.get $16 + local.get $4 i32.load offset=12 i32.const 3 i32.mul @@ -8928,17 +8829,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $16 + local.get $4 i32.load offset=4 else - local.get $16 + local.get $4 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $15 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -8946,66 +8847,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 - local.get $15 + local.get $0 + local.get $7 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $14 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $3 i32.store offset=4 - local.get $16 + local.get $4 i32.load offset=8 - local.tee $12 - local.get $16 + local.tee $8 + local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $13 - local.get $1 - local.set $2 + local.set $16 + local.get $3 + local.set $0 loop $while-continue|016 - local.get $12 - local.get $13 + local.get $8 + local.get $16 i32.ne if - local.get $12 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $12 + local.get $0 + local.get $8 i32.load16_s - local.tee $3 + local.tee $9 i32.store16 - local.get $2 - local.get $12 + local.get $0 + local.get $8 i32.load16_s offset=2 i32.store16 offset=2 - local.get $2 - local.get $3 + local.get $0 + local.get $9 i32.extend16_s i32.const -1028477379 i32.mul @@ -9015,69 +8916,69 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor - local.get $15 + local.get $7 i32.and i32.const 2 i32.shl - local.get $11 + local.get $10 i32.add - local.tee $3 + local.tee $9 i32.load i32.store offset=4 - local.get $3 - local.get $2 + local.get $9 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 8 i32.add - local.set $2 + local.set $0 end - local.get $12 + local.get $8 i32.const 8 i32.add - local.set $12 + local.set $8 br $while-continue|016 end end - local.get $16 - local.get $11 + local.get $4 + local.get $10 i32.store - local.get $16 - local.get $11 + local.get $4 + local.get $10 call $~lib/rt/itcms/__link - local.get $16 - local.get $15 + local.get $4 + local.get $7 i32.store offset=4 - local.get $16 - local.get $1 + local.get $4 + local.get $3 i32.store offset=8 - local.get $16 - local.get $1 + local.get $4 + local.get $3 call $~lib/rt/itcms/__link - local.get $16 - local.get $14 + local.get $4 + local.get $15 i32.store offset=12 - local.get $16 - local.get $16 + local.get $4 + local.get $4 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -9086,70 +8987,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $4 i32.load offset=8 - local.tee $15 + local.tee $0 i32.store - local.get $16 - local.get $16 + local.get $4 + local.get $4 i32.load offset=16 - local.tee $1 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $1 + local.get $7 i32.const 3 i32.shl - local.get $15 - i32.add - local.tee $15 local.get $0 + i32.add + local.tee $0 + local.get $2 i32.store16 - local.get $15 local.get $0 + local.get $2 i32.store16 offset=2 - local.get $16 - local.get $16 + local.get $4 + local.get $4 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $15 - local.get $16 + local.get $0 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $5 + local.get $14 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=4 - local.get $1 - local.get $15 + local.get $2 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 - local.get $9 + local.get $11 + local.get $12 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $2 + local.get $2 call $~lib/map/Map#set - local.get $4 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|4 end end - local.get $16 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -9161,7 +9062,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -9174,19 +9075,18 @@ unreachable end i32.const 0 - local.set $1 + local.set $6 loop $for-loop|6 - local.get $1 + local.get $6 i32.extend16_s i32.const 50 i32.lt_s if - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $6 i32.extend16_s i32.const -1028477379 i32.mul @@ -9196,62 +9096,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find18 loop $while-continue|019 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 i32.load16_u - local.get $0 + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find18 - local.get $16 + local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|019 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -9261,10 +9161,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#get - local.get $0 + local.get $6 i32.extend16_s i32.const 20 i32.add @@ -9277,14 +9177,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $0 + local.get $6 i32.extend16_s i32.const -1028477379 i32.mul @@ -9294,62 +9194,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find21 loop $while-continue|022 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 i32.load16_u - local.get $0 + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find21 - local.get $16 + local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|022 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -9358,14 +9258,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|6 end end - local.get $7 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -9378,19 +9278,18 @@ unreachable end i32.const 0 - local.set $1 + local.set $6 loop $for-loop|8 - local.get $1 + local.get $6 i32.extend16_s i32.const 50 i32.lt_s if - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $6 i32.extend16_s i32.const -1028477379 i32.mul @@ -9400,62 +9299,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find24 loop $while-continue|025 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 i32.load16_u - local.get $0 + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find24 - local.get $16 + local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|025 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -9464,19 +9363,19 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 - local.get $0 + local.get $5 + local.get $6 + local.get $6 i32.extend16_s - local.tee $1 + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $1 + local.get $2 i32.const -1028477379 i32.mul i32.const 374761395 @@ -9485,62 +9384,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find27 loop $while-continue|028 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 i32.load16_u - local.get $0 + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find27 - local.get $16 + local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|028 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -9550,14 +9449,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $7 + local.get $5 i32.load - local.get $7 + local.get $5 i32.load offset=4 - local.get $0 + local.get $6 i32.extend16_s i32.const -1028477379 i32.mul @@ -9567,62 +9466,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 15 i32.shr_u + local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 13 i32.shr_u + local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $2 i32.const 16 i32.shr_u + local.get $2 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $2 block $__inlined_func$~lib/map/Map#find30 loop $while-continue|031 - local.get $1 + local.get $2 if - local.get $1 + local.get $2 i32.load offset=8 - local.tee $16 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 + local.get $2 i32.load16_u - local.get $0 + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find30 - local.get $16 + local.get $0 i32.const -2 i32.and - local.set $1 + local.set $2 br $while-continue|031 end end i32.const 0 - local.set $1 + local.set $2 end - local.get $1 + local.get $2 if i32.const 0 i32.const 1568 @@ -9631,14 +9530,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $1 + local.set $6 br $for-loop|8 end end - local.get $7 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -9650,9 +9549,9 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $5 call $~lib/map/Map#clear - local.get $7 + local.get $5 i32.load offset=20 if i32.const 0 @@ -9699,26 +9598,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -9726,39 +9625,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $7 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $8 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $5 + local.get $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load16_u - local.tee $4 + local.tee $8 i32.store16 local.get $2 - local.get $5 + local.get $7 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $4 - i32.const 65535 - i32.and + local.get $8 i32.const -1028477379 i32.mul i32.const 374761395 @@ -9767,24 +9664,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $4 i32.xor local.get $1 i32.and @@ -9792,10 +9689,10 @@ i32.shl local.get $6 i32.add - local.tee $4 + local.tee $8 i32.load i32.store offset=8 - local.get $4 + local.get $8 local.get $2 i32.store local.get $2 @@ -9803,10 +9700,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 12 i32.add - local.set $5 + local.set $7 br $while-continue|0 end end @@ -9826,7 +9723,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -9839,55 +9736,53 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) @@ -9895,14 +9790,13 @@ else local.get $0 i32.load16_u - local.get $2 + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -9910,8 +9804,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -9927,52 +9822,51 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -9989,7 +9883,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -9998,8 +9891,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -10069,16 +9963,15 @@ (local $14 i32) (local $15 i32) (local $16 i32) - (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $4 i64.const 0 @@ -10096,43 +9989,43 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $5 i32.const 0 i32.store - local.get $1 + local.get $5 i32.const 24 i32.const 14 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $0 i32.store - local.get $1 - local.get $7 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $1 + local.get $5 i32.const 3 i32.store offset=4 - local.get $1 + local.get $5 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 + local.tee $0 i32.store offset=8 - local.get $1 - local.get $7 + local.get $5 + local.get $0 call $~lib/rt/itcms/__link - local.get $1 + local.get $5 i32.const 4 i32.store offset=12 - local.get $1 + local.get $5 i32.const 0 i32.store offset=16 - local.get $1 + local.get $5 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -10140,7 +10033,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $4 - local.get $1 + local.get $5 i32.store loop $for-loop|1 local.get $2 @@ -10149,82 +10042,77 @@ i32.const 100 i32.lt_u if - local.get $1 - local.set $5 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 local.get $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $7 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $5 + local.get $4 if - local.get $5 - local.get $5 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $4 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|0 end end i32.const 0 + local.set $4 end + local.get $4 if i32.const 0 i32.const 1568 @@ -10233,92 +10121,84 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 local.get $2 local.get $2 i32.const 65535 i32.and + local.tee $4 i32.const 10 i32.add call $~lib/map/Map#set - local.get $1 - local.set $5 - local.get $2 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find1 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $7 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $5 + local.get $4 if - local.get $5 - local.get $5 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $4 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - drop - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|02 end end i32.const 0 + local.set $4 end - i32.const 0 - i32.ne + local.get $4 i32.eqz if i32.const 0 @@ -10328,7 +10208,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -10352,7 +10232,7 @@ br $for-loop|1 end end - local.get $1 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -10373,84 +10253,77 @@ i32.const 100 i32.lt_u if - local.get $1 - local.set $5 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 local.get $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find4 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $7 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $5 + local.get $4 if - local.get $5 - local.get $5 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $4 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - drop - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|05 end end i32.const 0 + local.set $4 end - i32.const 0 - i32.ne + local.get $4 i32.eqz if i32.const 0 @@ -10460,7 +10333,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -10477,92 +10350,84 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 local.get $2 local.get $2 i32.const 65535 i32.and + local.tee $4 i32.const 20 i32.add call $~lib/map/Map#set - local.get $1 - local.set $5 - local.get $2 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $4 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $4 + i32.const 15 + i32.shr_u + local.get $4 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $4 + i32.const 13 + i32.shr_u + local.get $4 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $4 + i32.const 16 + i32.shr_u + local.get $4 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $4 - block $__inlined_func$~lib/map/Map#find7 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $7 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $5 + local.get $4 if - local.get $5 - local.get $5 + local.get $4 i32.load offset=8 - local.tee $4 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $4 i32.load16_u - local.get $7 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - drop - local.get $4 + local.get $3 i32.const -2 i32.and - local.set $5 + local.set $4 br $while-continue|08 end end i32.const 0 + local.set $4 end - i32.const 0 - i32.ne + local.get $4 i32.eqz if i32.const 0 @@ -10572,7 +10437,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 local.get $2 call $~lib/map/Map#get local.get $2 @@ -10596,7 +10461,7 @@ br $for-loop|3 end end - local.get $1 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -10609,61 +10474,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $4 + local.tee $2 + local.get $2 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store - local.get $1 + local.get $5 i32.load offset=8 - local.set $14 - local.get $1 + local.set $11 + local.get $5 i32.load offset=16 - local.tee $13 - local.set $7 - local.get $4 - local.tee $2 + local.tee $12 + local.set $4 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 i32.const 16 i32.const 15 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $2 i32.store - local.get $4 + local.get $2 i32.const 0 i32.store - local.get $4 + local.get $2 i32.const 0 call $~lib/rt/itcms/__link - local.get $4 + local.get $2 i32.const 0 i32.store offset=4 - local.get $4 + local.get $2 i32.const 0 i32.store offset=8 - local.get $4 + local.get $2 i32.const 0 i32.store offset=12 - local.get $7 + local.get $4 i32.const 536870910 i32.gt_u if @@ -10675,96 +10539,96 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.const 8 - local.get $7 + local.get $4 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $5 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $17 + local.tee $0 i32.store offset=4 - local.get $17 - local.get $5 + local.get $0 + local.get $8 call $~lib/memory/memory.fill - local.get $4 - local.get $17 + local.get $2 + local.get $0 i32.store - local.get $4 - local.get $17 + local.get $2 + local.get $0 call $~lib/rt/itcms/__link - local.get $4 - local.get $17 + local.get $2 + local.get $0 i32.store offset=4 - local.get $4 - local.get $5 + local.get $2 + local.get $8 i32.store offset=8 + local.get $2 local.get $4 - local.get $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $3 local.get $2 - local.get $4 i32.store loop $for-loop|0 - local.get $6 - local.get $13 + local.get $7 + local.get $12 i32.lt_s if - local.get $6 + local.get $7 i32.const 12 i32.mul - local.get $14 + local.get $11 i32.add - local.tee $2 + local.tee $4 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $4 - local.get $3 local.get $2 + local.get $1 + local.get $4 i32.load16_u call $~lib/array/Array#__set - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 end - local.get $6 + local.get $7 i32.const 1 i32.add - local.set $6 + local.set $7 br $for-loop|0 end end - local.get $4 - local.get $3 + local.get $2 + local.get $1 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $4 - local.get $3 + local.get $2 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.tee $7 + local.get $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $5 call $~lib/map/Map#values - local.tee $11 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -10774,7 +10638,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $4 i32.const 0 @@ -10788,10 +10652,10 @@ local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $17 + local.tee $0 i32.store local.get $4 - local.get $17 + local.get $0 call $~lib/rt/itcms/__link local.get $4 i32.const 3 @@ -10799,10 +10663,10 @@ local.get $4 i32.const 32 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $17 + local.tee $0 i32.store offset=8 local.get $4 - local.get $17 + local.get $0 call $~lib/rt/itcms/__link local.get $4 i32.const 4 @@ -10821,19 +10685,18 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $13 + local.tee $11 i32.store offset=16 loop $for-loop|4 - local.get $7 + local.get $1 i32.load offset=12 - local.get $0 + local.get $6 i32.gt_s if - local.get $0 - local.tee $6 - local.get $7 + local.get $1 i32.load offset=12 - i32.ge_u + local.get $6 + i32.le_u if i32.const 1248 i32.const 1728 @@ -10842,96 +10705,87 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $1 i32.load offset=4 local.get $6 i32.const 1 i32.shl i32.add - i32.load16_u - local.set $2 - local.get $11 - local.get $6 - call $~lib/array/Array#__get - local.set $12 - local.get $1 - local.set $3 - local.get $2 + i32.load16_u + local.set $2 + local.get $13 + local.get $6 + call $~lib/array/Array#__get + local.set $12 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $2 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $0 - block $__inlined_func$~lib/map/Map#find10 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $0 - local.tee $5 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + block $__inlined_func$~lib/map/Map#find10 loop $while-continue|011 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=8 - local.tee $0 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $5 + local.get $2 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - drop - local.get $0 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|011 end end i32.const 0 + local.set $0 end - i32.const 0 - i32.ne + local.get $0 i32.eqz if i32.const 0 @@ -10941,61 +10795,56 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.set $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 local.get $12 i32.const 20 i32.sub - local.set $3 - block $__inlined_func$~lib/map/Map#find13 (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $3 - local.tee $5 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.tee $3 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find13 loop $while-continue|014 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $8 i32.const 1 i32.and if (result i32) @@ -11003,14 +10852,13 @@ else local.get $0 i32.load16_u - local.get $5 + local.get $3 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - drop - local.get $3 + local.get $8 i32.const -2 i32.and local.set $0 @@ -11018,9 +10866,9 @@ end end i32.const 0 + local.set $0 end - i32.const 0 - i32.ne + local.get $0 i32.eqz if i32.const 0 @@ -11030,7 +10878,6 @@ call $~lib/builtins/abort unreachable end - local.get $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -11038,14 +10885,14 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.set $5 local.get $4 i32.load local.get $2 + local.tee $0 i32.const -1028477379 i32.mul i32.const 374761395 @@ -11054,26 +10901,26 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $7 i32.const 15 i32.shr_u + local.get $7 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $7 i32.const 13 i32.shr_u + local.get $7 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $7 i32.const 16 i32.shr_u + local.get $7 i32.xor - local.tee $10 + local.tee $14 local.get $4 i32.load offset=4 i32.and @@ -11081,41 +10928,41 @@ i32.shl i32.add i32.load - local.set $0 + local.set $7 block $__inlined_func$~lib/map/Map#find loop $while-continue|015 - local.get $0 + local.get $7 if - local.get $0 + local.get $7 i32.load offset=4 - local.tee $3 + local.tee $8 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 + local.get $7 i32.load16_u - local.get $5 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $8 i32.const -2 i32.and - local.set $0 + local.set $7 br $while-continue|015 end end i32.const 0 - local.set $0 + local.set $7 end - local.get $0 + local.get $7 if - local.get $0 - local.get $5 + local.get $7 + local.get $2 i32.store16 offset=2 else local.get $4 @@ -11144,7 +10991,7 @@ i32.const 1 i32.or end - local.set $17 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -11152,20 +10999,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $17 + local.get $7 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $14 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -11173,7 +11020,7 @@ i32.shl i32.const 3 i32.div_s - local.tee $9 + local.tee $15 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -11181,37 +11028,37 @@ i32.store offset=4 local.get $4 i32.load offset=8 - local.tee $15 + local.tee $8 local.get $4 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 + local.set $16 local.get $3 local.set $0 - loop $while-continue|00 + loop $while-continue|016 local.get $8 - local.get $15 + local.get $16 i32.ne if - local.get $15 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $15 + local.get $8 i32.load16_u - local.tee $16 + local.tee $9 i32.store16 local.get $0 - local.get $15 + local.get $8 i32.load16_u offset=2 i32.store16 offset=2 local.get $0 - local.get $16 + local.get $9 i32.const -1028477379 i32.mul i32.const 374761395 @@ -11220,35 +11067,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $16 - local.get $16 + local.tee $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $16 - local.get $16 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $16 - local.get $16 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor - local.get $17 + local.get $7 i32.and i32.const 2 i32.shl - local.get $14 + local.get $10 i32.add - local.tee $16 + local.tee $9 i32.load i32.store offset=4 - local.get $16 + local.get $9 local.get $0 i32.store local.get $0 @@ -11256,21 +11103,21 @@ i32.add local.set $0 end - local.get $15 + local.get $8 i32.const 8 i32.add - local.set $15 - br $while-continue|00 + local.set $8 + br $while-continue|016 end end local.get $4 - local.get $14 + local.get $10 i32.store local.get $4 - local.get $14 + local.get $10 call $~lib/rt/itcms/__link local.get $4 - local.get $17 + local.get $7 i32.store offset=4 local.get $4 local.get $3 @@ -11279,7 +11126,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $4 - local.get $9 + local.get $15 i32.store offset=12 local.get $4 local.get $4 @@ -11298,11 +11145,11 @@ local.get $4 local.get $4 i32.load offset=16 - local.tee $17 + local.tee $7 i32.const 1 i32.add i32.store offset=16 - local.get $17 + local.get $7 i32.const 3 i32.shl local.get $0 @@ -11311,7 +11158,7 @@ local.get $2 i32.store16 local.get $0 - local.get $5 + local.get $2 i32.store16 offset=2 local.get $4 local.get $4 @@ -11324,7 +11171,7 @@ i32.load local.get $4 i32.load offset=4 - local.get $10 + local.get $14 i32.and i32.const 2 i32.shl @@ -11340,17 +11187,17 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $13 + local.get $11 local.get $12 i32.const 20 i32.sub - local.tee $0 - local.get $0 + local.tee $2 + local.get $2 call $~lib/map/Map#set local.get $6 i32.const 1 i32.add - local.set $0 + local.set $6 br $for-loop|4 end end @@ -11366,7 +11213,7 @@ call $~lib/builtins/abort unreachable end - local.get $13 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -11379,92 +11226,85 @@ unreachable end i32.const 0 - local.set $0 + local.set $6 loop $for-loop|6 - local.get $0 + local.get $6 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $1 - local.set $3 - local.get $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $6 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 - block $__inlined_func$~lib/map/Map#find17 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - loop $while-continue|018 - local.get $3 + block $__inlined_func$~lib/map/Map#find18 + loop $while-continue|019 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $4 + local.get $6 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find17 - drop - local.get $2 + br_if $__inlined_func$~lib/map/Map#find18 + local.get $0 i32.const -2 i32.and - local.set $3 - br $while-continue|018 + local.set $2 + br $while-continue|019 end end i32.const 0 + local.set $2 end - i32.const 0 - i32.ne + local.get $2 i32.eqz if i32.const 0 @@ -11474,10 +11314,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#get - local.get $0 + local.get $6 i32.const 65535 i32.and i32.const 20 @@ -11491,85 +11331,80 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $1 - local.set $3 - local.get $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $6 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 - block $__inlined_func$~lib/map/Map#find20 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - loop $while-continue|021 - local.get $3 + block $__inlined_func$~lib/map/Map#find21 + loop $while-continue|022 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $4 + local.get $6 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find20 - drop - local.get $2 + br_if $__inlined_func$~lib/map/Map#find21 + local.get $0 i32.const -2 i32.and - local.set $3 - br $while-continue|021 + local.set $2 + br $while-continue|022 end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -11578,14 +11413,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $0 + local.set $6 br $for-loop|6 end end - local.get $1 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -11598,90 +11433,85 @@ unreachable end i32.const 0 - local.set $0 + local.set $6 loop $for-loop|8 - local.get $0 + local.get $6 i32.const 65535 i32.and i32.const 50 i32.lt_u if - local.get $1 - local.set $3 - local.get $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $6 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 - block $__inlined_func$~lib/map/Map#find23 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - loop $while-continue|024 - local.get $3 + block $__inlined_func$~lib/map/Map#find24 + loop $while-continue|025 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $4 + local.get $6 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find23 - drop - local.get $2 + br_if $__inlined_func$~lib/map/Map#find24 + local.get $0 i32.const -2 i32.and - local.set $3 - br $while-continue|024 + local.set $2 + br $while-continue|025 end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -11690,92 +11520,84 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $0 - local.get $0 + local.get $5 + local.get $6 + local.get $6 i32.const 65535 i32.and + local.tee $2 i32.const 10 i32.add call $~lib/map/Map#set - local.get $1 - local.set $3 - local.get $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $2 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 - block $__inlined_func$~lib/map/Map#find26 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - loop $while-continue|027 - local.get $3 + block $__inlined_func$~lib/map/Map#find27 + loop $while-continue|028 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $4 + local.get $6 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find26 - drop - local.get $2 + br_if $__inlined_func$~lib/map/Map#find27 + local.get $0 i32.const -2 i32.and - local.set $3 - br $while-continue|027 + local.set $2 + br $while-continue|028 end end i32.const 0 + local.set $2 end - i32.const 0 - i32.ne + local.get $2 i32.eqz if i32.const 0 @@ -11785,85 +11607,80 @@ call $~lib/builtins/abort unreachable end - local.get $1 - local.get $0 + local.get $5 + local.get $6 call $~lib/map/Map#delete - local.get $1 - local.set $3 - local.get $0 + local.get $5 + i32.load + local.get $5 + i32.load offset=4 + local.get $6 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load local.set $2 - block $__inlined_func$~lib/map/Map#find29 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - loop $while-continue|030 - local.get $3 + block $__inlined_func$~lib/map/Map#find30 + loop $while-continue|031 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=8 - local.tee $2 + local.tee $0 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $2 i32.load16_u - local.get $4 + local.get $6 i32.const 65535 i32.and i32.eq end - br_if $__inlined_func$~lib/map/Map#find29 - drop - local.get $2 + br_if $__inlined_func$~lib/map/Map#find30 + local.get $0 i32.const -2 i32.and - local.set $3 - br $while-continue|030 + local.set $2 + br $while-continue|031 end end i32.const 0 + local.set $2 end + local.get $2 if i32.const 0 i32.const 1568 @@ -11872,14 +11689,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 i32.const 1 i32.add - local.set $0 + local.set $6 br $for-loop|8 end end - local.get $1 + local.get $5 i32.load offset=20 i32.const 50 i32.ne @@ -11891,9 +11708,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $5 call $~lib/map/Map#clear - local.get $1 + local.get $5 i32.load offset=20 if i32.const 0 @@ -11907,77 +11724,74 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - return - end - i32.const 18432 - i32.const 18480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + return + end + i32.const 18432 + i32.const 18480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -11985,8 +11799,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -12002,50 +11817,49 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -12060,7 +11874,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -12069,8 +11882,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -12144,29 +11958,29 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $2 i64.const 0 i64.store - local.get $3 + local.get $2 i64.const 0 i64.store offset=8 - local.get $3 + local.get $2 i32.const 0 i32.store offset=16 - local.get $3 + local.get $2 call $~lib/map/Map#constructor - local.tee $4 + local.tee $2 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 100 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12175,36 +11989,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=8 local.tee $5 i32.const 1 @@ -12212,8 +12026,8 @@ if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end @@ -12221,14 +12035,14 @@ local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -12237,17 +12051,17 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 - local.get $1 + local.get $2 + local.get $0 + local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12256,36 +12070,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=8 local.tee $5 i32.const 1 @@ -12293,8 +12107,8 @@ if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end @@ -12302,14 +12116,14 @@ local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -12319,10 +12133,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/map/Map#get - local.get $1 + local.get $0 i32.const 10 i32.add i32.ne @@ -12334,14 +12148,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -12354,17 +12168,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|1 - local.get $1 + local.get $0 i32.const 100 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12373,36 +12187,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=8 local.tee $5 i32.const 1 @@ -12410,8 +12224,8 @@ if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end @@ -12419,14 +12233,14 @@ local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -12436,10 +12250,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/map/Map#get - local.get $1 + local.get $0 i32.const 10 i32.add i32.ne @@ -12449,19 +12263,19 @@ i32.const 16 i32.const 5 call $~lib/builtins/abort - unreachable - end - local.get $4 - local.get $1 - local.get $1 + unreachable + end + local.get $2 + local.get $0 + local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12470,36 +12284,36 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=8 local.tee $5 i32.const 1 @@ -12507,8 +12321,8 @@ if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end @@ -12516,14 +12330,14 @@ local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -12533,10 +12347,10 @@ call $~lib/builtins/abort unreachable end - local.get $4 - local.get $1 + local.get $2 + local.get $0 call $~lib/map/Map#get - local.get $1 + local.get $0 i32.const 20 i32.add i32.ne @@ -12548,14 +12362,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -12568,8 +12382,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 + local.tee $1 + i32.const 0 + local.set $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -12578,38 +12394,38 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i32.const 0 i32.store - local.get $4 + local.get $2 i32.load offset=8 - local.set $6 - local.get $3 - local.get $4 + local.set $5 + local.get $1 + local.get $2 i32.load offset=16 - local.tee $1 + local.tee $8 call $~lib/array/Array#constructor - local.tee $5 + local.tee $1 i32.store loop $for-loop|01 - local.get $1 - local.get $7 - i32.gt_s + local.get $3 + local.get $8 + i32.lt_s if - local.get $7 + local.get $3 i32.const 12 i32.mul - local.get $6 + local.get $5 i32.add - local.tee $3 + local.tee $6 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $5 + local.get $1 local.get $0 - local.get $3 + local.get $6 i32.load call $~lib/array/Array#__set local.get $0 @@ -12617,59 +12433,59 @@ i32.add local.set $0 end - local.get $7 + local.get $3 i32.const 1 i32.add - local.set $7 + local.set $3 br $for-loop|01 end end - local.get $5 + local.get $1 local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $5 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 call $~lib/map/Map#values - local.tee $7 + local.tee $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $9 + local.tee $7 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $10 + local.tee $5 i32.store offset=16 loop $for-loop|2 - local.get $5 + local.get $1 i32.load offset=12 - local.get $2 + local.get $4 i32.gt_s if - local.get $5 - local.get $2 - call $~lib/array/Array#__get - local.set $1 - local.get $7 - local.get $2 + local.get $1 + local.get $4 call $~lib/array/Array#__get local.set $0 + local.get $9 local.get $4 + call $~lib/array/Array#__get + local.set $8 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12679,23 +12495,23 @@ i32.const 668265263 i32.mul local.tee $3 - local.get $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 - local.get $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 - local.get $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 @@ -12715,7 +12531,7 @@ if (result i32) i32.const 0 else - local.get $1 + local.get $0 local.get $3 i32.load i32.eq @@ -12741,14 +12557,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $0 + local.get $8 i32.const 20 i32.sub - local.tee $8 + local.tee $6 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12758,23 +12574,23 @@ i32.const 668265263 i32.mul local.tee $3 - local.get $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul local.tee $3 - local.get $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul local.tee $3 - local.get $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 @@ -12788,19 +12604,19 @@ if local.get $3 i32.load offset=8 - local.tee $6 + local.tee $10 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $8 + local.get $6 local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $6 + local.get $10 i32.const -2 i32.and local.set $3 @@ -12820,25 +12636,25 @@ call $~lib/builtins/abort unreachable end - local.get $9 - local.get $1 - local.get $1 - call $~lib/map/Map#set - local.get $10 + local.get $7 + local.get $0 local.get $0 + call $~lib/map/Map#set + local.get $5 + local.get $8 i32.const 20 i32.sub - local.tee $3 - local.get $3 + local.tee $0 + local.get $0 call $~lib/map/Map#set - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|2 end end - local.get $9 + local.get $7 i32.load offset=20 i32.const 100 i32.ne @@ -12850,7 +12666,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $5 i32.load offset=20 i32.const 100 i32.ne @@ -12863,18 +12679,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|3 - local.get $2 + local.get $4 i32.const 50 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 - i32.load offset=4 local.get $2 - local.tee $1 + i32.load offset=4 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12883,60 +12698,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find16 loop $while-continue|017 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find16 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|017 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -12946,10 +12761,10 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $4 - local.get $1 call $~lib/map/Map#get - local.get $1 + local.get $4 i32.const 20 i32.add i32.ne @@ -12961,14 +12776,14 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $4 - local.get $1 call $~lib/map/Map#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12977,60 +12792,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find19 loop $while-continue|020 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|020 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -13039,14 +12854,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|3 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -13059,18 +12874,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|4 - local.get $2 + local.get $4 i32.const 50 i32.lt_s if - local.get $4 + local.get $2 i32.load - local.get $4 - i32.load offset=4 local.get $2 - local.tee $1 + i32.load offset=4 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13079,60 +12893,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find22 loop $while-continue|023 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|023 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -13141,17 +12955,17 @@ call $~lib/builtins/abort unreachable end + local.get $2 + local.get $4 local.get $4 - local.get $1 - local.get $1 i32.const 10 i32.add call $~lib/map/Map#set - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13160,60 +12974,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find25 loop $while-continue|026 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|026 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -13223,14 +13037,14 @@ call $~lib/builtins/abort unreachable end + local.get $2 local.get $4 - local.get $1 call $~lib/map/Map#delete - local.get $4 + local.get $2 i32.load - local.get $4 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13239,60 +13053,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find28 loop $while-continue|029 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=8 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|029 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -13301,14 +13115,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|4 end end - local.get $4 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -13320,9 +13134,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $2 call $~lib/map/Map#clear - local.get $4 + local.get $2 i32.load offset=20 if i32.const 0 @@ -13369,26 +13183,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -13396,37 +13210,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $5 + local.tee $7 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $8 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 - local.get $5 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $5 + local.get $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load - local.tee $4 + local.tee $8 i32.store local.get $2 - local.get $5 + local.get $7 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $4 + local.get $8 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13435,24 +13249,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $4 i32.xor i32.const -2048144777 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $4 i32.xor i32.const -1028477379 i32.mul - local.tee $4 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $4 i32.xor local.get $1 i32.and @@ -13460,10 +13274,10 @@ i32.shl local.get $6 i32.add - local.tee $4 + local.tee $8 i32.load i32.store offset=8 - local.get $4 + local.get $8 local.get $2 i32.store local.get $2 @@ -13471,10 +13285,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 12 i32.add - local.set $5 + local.set $7 br $while-continue|0 end end @@ -13494,7 +13308,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -13507,66 +13321,63 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -13574,8 +13385,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -13591,50 +13403,49 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=8 local.tee $3 @@ -13649,7 +13460,6 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -13658,8 +13468,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -13733,29 +13544,29 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i64.const 0 i64.store offset=8 - local.get $0 + local.get $3 i32.const 0 i32.store offset=16 - local.get $0 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $4 i32.const 0 @@ -13769,10 +13580,10 @@ local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $1 i32.store local.get $4 - local.get $15 + local.get $1 call $~lib/rt/itcms/__link local.get $4 i32.const 3 @@ -13780,10 +13591,10 @@ local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $15 + local.tee $1 i32.store offset=8 local.get $4 - local.get $15 + local.get $1 call $~lib/rt/itcms/__link local.get $4 i32.const 4 @@ -13798,20 +13609,19 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $3 local.get $4 - local.tee $7 i32.store loop $for-loop|0 - local.get $16 + local.get $0 i32.const 100 i32.lt_u if - local.get $7 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $16 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13820,60 +13630,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 local.get $0 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|0 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 if i32.const 0 i32.const 1568 @@ -13882,17 +13692,17 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 - local.get $16 + local.get $4 + local.get $0 + local.get $0 i32.const 10 i32.add call $~lib/map/Map#set - local.get $7 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $16 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -13901,60 +13711,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 local.get $0 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $4 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|02 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -13964,10 +13774,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 + local.get $4 + local.get $0 call $~lib/map/Map#get - local.get $16 + local.get $0 i32.const 10 i32.add i32.ne @@ -13979,14 +13789,14 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $0 i32.const 1 i32.add - local.set $16 + local.set $0 br $for-loop|0 end end - local.get $7 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -13999,17 +13809,17 @@ unreachable end i32.const 0 - local.set $16 + local.set $0 loop $for-loop|1 - local.get $16 + local.get $0 i32.const 100 i32.lt_u if - local.get $7 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $16 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14018,60 +13828,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 local.get $0 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $4 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|05 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -14081,10 +13891,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 + local.get $4 + local.get $0 call $~lib/map/Map#get - local.get $16 + local.get $0 i32.const 10 i32.add i32.ne @@ -14096,17 +13906,17 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 - local.get $16 + local.get $4 + local.get $0 + local.get $0 i32.const 20 i32.add call $~lib/map/Map#set - local.get $7 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $16 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14115,60 +13925,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 15 i32.shr_u + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 13 i32.shr_u + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $0 - local.get $0 + local.tee $3 i32.const 16 i32.shr_u + local.get $3 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $0 + local.set $3 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $0 + local.get $3 if - local.get $0 + local.get $3 i32.load offset=8 - local.tee $4 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $16 local.get $0 + local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $4 + local.get $2 i32.const -2 i32.and - local.set $0 + local.set $3 br $while-continue|08 end end i32.const 0 - local.set $0 + local.set $3 end - local.get $0 + local.get $3 i32.eqz if i32.const 0 @@ -14178,10 +13988,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $16 + local.get $4 + local.get $0 call $~lib/map/Map#get - local.get $16 + local.get $0 i32.const 20 i32.add i32.ne @@ -14193,14 +14003,14 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $0 i32.const 1 i32.add - local.set $16 + local.set $0 br $for-loop|1 end end - local.get $7 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -14213,60 +14023,62 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $3 + i32.const 0 + local.set $0 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $2 i32.const 0 i32.store - local.get $7 + local.get $4 i32.load offset=8 - local.set $15 - local.get $7 + local.set $11 + local.get $4 i32.load offset=16 - local.tee $4 - local.set $14 - local.get $16 + local.tee $12 + local.set $3 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.store - local.get $0 + local.get $6 i32.const 0 i32.store - local.get $0 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link - local.get $0 + local.get $6 i32.const 0 i32.store offset=4 - local.get $0 + local.get $6 i32.const 0 i32.store offset=8 - local.get $0 + local.get $6 i32.const 0 i32.store offset=12 - local.get $14 + local.get $3 i32.const 268435455 i32.gt_u if @@ -14278,96 +14090,95 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $14 + local.get $3 i32.const 8 - local.get $14 + local.get $3 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $6 + local.tee $7 i32.const 0 call $~lib/rt/itcms/__new - local.tee $13 + local.tee $1 i32.store offset=4 - local.get $13 - local.get $6 + local.get $1 + local.get $7 call $~lib/memory/memory.fill - local.get $0 - local.get $13 + local.get $6 + local.get $1 i32.store - local.get $0 - local.get $13 + local.get $6 + local.get $1 call $~lib/rt/itcms/__link - local.get $0 - local.get $13 + local.get $6 + local.get $1 i32.store offset=4 - local.get $0 local.get $6 + local.get $7 i32.store offset=8 - local.get $0 - local.get $14 + local.get $6 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 - local.get $0 + local.get $2 + local.get $6 i32.store loop $for-loop|01 - local.get $2 - local.get $4 + local.get $8 + local.get $12 i32.lt_s if - local.get $2 + local.get $8 i32.const 12 i32.mul - local.get $15 + local.get $11 i32.add - local.tee $16 + local.tee $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if + local.get $6 local.get $0 local.get $3 - local.get $16 i32.load call $~lib/array/Array#__set - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 end - local.get $2 + local.get $8 i32.const 1 i32.add - local.set $2 + local.set $8 br $for-loop|01 end end + local.get $6 local.get $0 - local.get $3 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity + local.get $6 local.get $0 - local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.tee $6 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 call $~lib/map/Map#values - local.tee $8 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14377,66 +14188,65 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i32.const 0 i32.store - local.get $0 + local.get $3 i32.const 24 i32.const 19 call $~lib/rt/itcms/__new - local.tee $16 + local.tee $3 i32.store - local.get $16 + local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store - local.get $16 - local.get $0 + local.get $3 + local.get $1 call $~lib/rt/itcms/__link - local.get $16 + local.get $3 i32.const 3 i32.store offset=4 - local.get $16 + local.get $3 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $16 - local.get $0 + local.get $3 + local.get $1 call $~lib/rt/itcms/__link - local.get $16 + local.get $3 i32.const 4 i32.store offset=12 - local.get $16 + local.get $3 i32.const 0 i32.store offset=16 - local.get $16 + local.get $3 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $10 + local.tee $11 i32.store offset=16 loop $for-loop|2 local.get $6 i32.load offset=12 - local.get $1 + local.get $5 i32.gt_s if - local.get $1 - local.tee $4 local.get $6 i32.load offset=12 - i32.ge_u + local.get $5 + i32.le_u if i32.const 1248 i32.const 1728 @@ -14447,22 +14257,21 @@ end local.get $6 i32.load offset=4 - local.get $4 + local.get $5 i32.const 2 i32.shl i32.add i32.load - local.set $5 - local.get $8 - local.get $4 + local.set $0 + local.get $13 + local.get $5 call $~lib/array/Array#__get - local.set $9 - local.get $7 + local.set $12 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $5 - local.tee $0 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14472,23 +14281,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -14502,7 +14311,7 @@ if local.get $1 i32.load offset=8 - local.tee $15 + local.tee $2 i32.const 1 i32.and if (result i32) @@ -14514,7 +14323,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $15 + local.get $2 i32.const -2 i32.and local.set $1 @@ -14534,11 +14343,11 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $9 + local.get $12 i32.const 20 i32.sub local.tee $2 @@ -14551,23 +14360,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -14581,7 +14390,7 @@ if local.get $1 i32.load offset=8 - local.tee $15 + local.tee $7 i32.const 1 i32.and if (result i32) @@ -14593,7 +14402,7 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $15 + local.get $7 i32.const -2 i32.and local.set $1 @@ -14620,13 +14429,14 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $16 + local.get $3 i32.load local.get $0 + local.tee $1 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14635,77 +14445,77 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $5 - local.get $16 + local.tee $14 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find15 loop $while-continue|016 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $15 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $0 local.get $1 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $15 + local.get $2 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|016 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if - local.get $1 local.get $0 + local.get $1 i32.store offset=4 else - local.get $16 + local.get $3 i32.load offset=16 - local.get $16 + local.get $3 i32.load offset=12 i32.eq if - local.get $16 + local.get $3 i32.load offset=20 - local.get $16 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -14713,17 +14523,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $16 + local.get $3 i32.load offset=4 else - local.get $16 + local.get $3 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $15 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14731,66 +14541,66 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 - local.get $15 + local.get $0 + local.get $8 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $11 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $14 + local.tee $15 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $16 + local.get $3 i32.load offset=8 - local.tee $12 - local.get $16 + local.tee $7 + local.get $3 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $13 - local.get $1 - local.set $2 + local.set $16 + local.get $2 + local.set $0 loop $while-continue|017 - local.get $12 - local.get $13 + local.get $7 + local.get $16 i32.ne if - local.get $12 + local.get $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.get $12 + local.get $0 + local.get $7 i32.load - local.tee $3 + local.tee $9 i32.store - local.get $2 - local.get $12 + local.get $0 + local.get $7 i32.load offset=4 i32.store offset=4 - local.get $2 - local.get $3 + local.get $0 + local.get $9 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14799,69 +14609,69 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $9 i32.const 15 i32.shr_u + local.get $9 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $9 i32.const 13 i32.shr_u + local.get $9 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $9 i32.const 16 i32.shr_u + local.get $9 i32.xor - local.get $15 + local.get $8 i32.and i32.const 2 i32.shl - local.get $11 + local.get $10 i32.add - local.tee $3 + local.tee $9 i32.load i32.store offset=8 - local.get $3 - local.get $2 + local.get $9 + local.get $0 i32.store - local.get $2 + local.get $0 i32.const 12 i32.add - local.set $2 + local.set $0 end - local.get $12 + local.get $7 i32.const 12 i32.add - local.set $12 + local.set $7 br $while-continue|017 end end - local.get $16 - local.get $11 + local.get $3 + local.get $10 i32.store - local.get $16 - local.get $11 + local.get $3 + local.get $10 call $~lib/rt/itcms/__link - local.get $16 - local.get $15 + local.get $3 + local.get $8 i32.store offset=4 - local.get $16 - local.get $1 + local.get $3 + local.get $2 i32.store offset=8 - local.get $16 - local.get $1 + local.get $3 + local.get $2 call $~lib/rt/itcms/__link - local.get $16 - local.get $14 + local.get $3 + local.get $15 i32.store offset=12 - local.get $16 - local.get $16 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -14870,40 +14680,40 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $3 i32.load offset=8 - local.tee $15 + local.tee $0 i32.store - local.get $16 - local.get $16 + local.get $3 + local.get $3 i32.load offset=16 - local.tee $1 + local.tee $8 i32.const 1 i32.add i32.store offset=16 - local.get $1 + local.get $8 i32.const 12 i32.mul - local.get $15 - i32.add - local.tee $15 local.get $0 + i32.add + local.tee $0 + local.get $1 i32.store - local.get $15 local.get $0 + local.get $1 i32.store offset=4 - local.get $16 - local.get $16 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $15 - local.get $16 + local.get $0 + local.get $3 i32.load - local.get $16 + local.get $3 i32.load offset=4 - local.get $5 + local.get $14 i32.and i32.const 2 i32.shl @@ -14912,28 +14722,28 @@ i32.load i32.store offset=8 local.get $1 - local.get $15 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 - local.get $9 + local.get $11 + local.get $12 i32.const 20 i32.sub - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 call $~lib/map/Map#set - local.get $4 + local.get $5 i32.const 1 i32.add - local.set $1 + local.set $5 br $for-loop|2 end end - local.get $16 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -14945,7 +14755,7 @@ call $~lib/builtins/abort unreachable end - local.get $10 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -14958,18 +14768,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $5 loop $for-loop|3 - local.get $1 + local.get $5 i32.const 50 i32.lt_u if - local.get $7 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -14978,60 +14787,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find19 loop $while-continue|020 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $16 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $5 local.get $0 - local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $16 + local.get $1 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|020 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -15041,10 +14850,10 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $4 + local.get $5 call $~lib/map/Map#get - local.get $0 + local.get $5 i32.const 20 i32.add i32.ne @@ -15056,14 +14865,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $4 + local.get $5 call $~lib/map/Map#delete - local.get $7 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $0 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15072,60 +14881,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find22 loop $while-continue|023 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $16 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $5 local.get $0 - local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $16 + local.get $1 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|023 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -15134,14 +14943,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 1 i32.add - local.set $1 + local.set $5 br $for-loop|3 end end - local.get $7 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -15154,18 +14963,17 @@ unreachable end i32.const 0 - local.set $1 + local.set $5 loop $for-loop|4 - local.get $1 + local.get $5 i32.const 50 i32.lt_u if - local.get $7 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $1 - local.tee $0 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15174,60 +14982,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find25 loop $while-continue|026 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $16 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $5 local.get $0 - local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $16 + local.get $1 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|026 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -15236,17 +15044,17 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 - local.get $0 + local.get $4 + local.get $5 + local.get $5 i32.const 10 i32.add call $~lib/map/Map#set - local.get $7 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $0 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15255,60 +15063,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find28 loop $while-continue|029 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $16 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $5 local.get $0 - local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $16 + local.get $1 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|029 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -15318,14 +15126,14 @@ call $~lib/builtins/abort unreachable end - local.get $7 - local.get $0 + local.get $4 + local.get $5 call $~lib/map/Map#delete - local.get $7 + local.get $4 i32.load - local.get $7 + local.get $4 i32.load offset=4 - local.get $0 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -15334,60 +15142,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/map/Map#find31 loop $while-continue|032 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=8 - local.tee $16 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $5 local.get $0 - local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find31 - local.get $16 + local.get $1 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|032 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -15396,14 +15204,14 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $5 i32.const 1 i32.add - local.set $1 + local.set $5 br $for-loop|4 end end - local.get $7 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -15415,9 +15223,9 @@ call $~lib/builtins/abort unreachable end - local.get $7 + local.get $4 call $~lib/map/Map#clear - local.get $7 + local.get $4 i32.load offset=20 if i32.const 0 @@ -15442,61 +15250,60 @@ ) (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -15511,7 +15318,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $2 i32.const -2 i32.and @@ -15520,7 +15326,9 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) @@ -15529,8 +15337,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i64) + (local $6 i64) + (local $7 i32) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer @@ -15549,26 +15357,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $5 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -15576,37 +15384,38 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $8 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $9 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 local.get $4 - local.get $9 + local.get $8 i32.ne if - local.get $4 + local.get $8 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $8 i64.load - local.tee $7 + local.tee $6 i64.store local.get $2 - local.get $4 + local.get $8 i32.load offset=8 i32.store offset=8 local.get $2 - local.get $7 + local.get $1 + local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -15616,7 +15425,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $7 + local.get $6 i64.const 32 i64.shr_u i32.wrap_i64 @@ -15627,35 +15436,34 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $5 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add - local.tee $5 + local.tee $9 i32.load i32.store offset=12 - local.get $5 + local.get $9 local.get $2 i32.store local.get $2 @@ -15663,18 +15471,18 @@ i32.add local.set $2 end - local.get $4 + local.get $8 i32.const 16 i32.add - local.set $4 + local.set $8 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $7 i32.store local.get $0 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $0 local.get $1 @@ -15686,7 +15494,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $8 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -15699,61 +15507,60 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -15768,7 +15575,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $2 i32.const -2 i32.and @@ -15777,8 +15583,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -15833,61 +15640,60 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=12 local.tee $3 @@ -15902,7 +15708,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -15911,8 +15716,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -15999,8 +15805,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -16010,42 +15816,42 @@ (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) + (local $14 i64) (local $15 i32) (local $16 i32) - (local $17 i64) + (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 0 i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 24 i32.const 20 call $~lib/rt/itcms/__new @@ -16054,10 +15860,10 @@ local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store local.get $5 - local.get $4 + local.get $0 call $~lib/rt/itcms/__link local.get $5 i32.const 3 @@ -16065,10 +15871,10 @@ local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store offset=8 local.get $5 - local.get $4 + local.get $0 call $~lib/rt/itcms/__link local.get $5 i32.const 4 @@ -16083,16 +15889,16 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $5 i32.store loop $for-loop|0 - local.get $3 + local.get $4 i64.const 100 i64.lt_s if local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -16103,14 +15909,14 @@ unreachable end local.get $5 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16122,9 +15928,9 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -16137,10 +15943,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|0 end end @@ -16157,14 +15963,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|1 - local.get $3 + local.get $4 i64.const 100 i64.lt_s if local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16176,9 +15982,9 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -16192,14 +15998,14 @@ unreachable end local.get $5 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16211,9 +16017,9 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -16226,10 +16032,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|1 end end @@ -16246,39 +16052,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $7 i32.const 0 i32.store local.get $5 i32.load offset=8 - local.set $0 + local.set $12 local.get $5 i32.load offset=16 - local.tee $7 - local.set $9 - local.get $2 + local.tee $13 + local.set $3 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store - local.get $4 + local.get $0 i32.const 16 i32.const 21 call $~lib/rt/itcms/__new @@ -16299,7 +16105,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $9 + local.get $3 i32.const 134217727 i32.gt_u if @@ -16311,55 +16117,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.const 8 - local.get $9 + local.get $3 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $4 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store offset=4 - local.get $10 - local.get $4 + local.get $0 + local.get $9 call $~lib/memory/memory.fill local.get $6 - local.get $10 + local.get $0 i32.store local.get $6 - local.get $10 + local.get $0 call $~lib/rt/itcms/__link local.get $6 - local.get $10 + local.get $0 i32.store offset=4 local.get $6 - local.get $4 + local.get $9 i32.store offset=8 local.get $6 - local.get $9 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $7 local.get $6 i32.store loop $for-loop|01 - local.get $7 - local.get $12 - i32.gt_s + local.get $2 + local.get $13 + i32.lt_s if - local.get $12 + local.get $2 i32.const 4 i32.shl - local.get $0 + local.get $12 i32.add - local.tee $2 + local.tee $3 i32.load offset=12 i32.const 1 i32.and @@ -16367,7 +16173,7 @@ if local.get $6 local.get $1 - local.get $2 + local.get $3 i64.load call $~lib/array/Array#__set local.get $1 @@ -16375,10 +16181,10 @@ i32.add local.set $1 end - local.get $12 + local.get $2 i32.const 1 i32.add - local.set $12 + local.set $2 br $for-loop|01 end end @@ -16399,7 +16205,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 call $~lib/map/Map#values - local.tee $9 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16409,64 +16215,64 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 24 i32.const 22 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/itcms/__link - local.get $4 + local.get $3 i32.const 3 i32.store offset=4 - local.get $4 + local.get $3 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/itcms/__link - local.get $4 + local.get $3 i32.const 4 i32.store offset=12 - local.get $4 + local.get $3 i32.const 0 i32.store offset=16 - local.get $4 + local.get $3 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $15 + local.tee $11 i32.store offset=16 loop $for-loop|2 local.get $6 i32.load offset=12 - local.get $13 + local.get $10 i32.gt_s if local.get $6 i32.load offset=12 - local.get $13 + local.get $10 i32.le_u if i32.const 1248 @@ -16478,18 +16284,18 @@ end local.get $6 i32.load offset=4 - local.get $13 + local.get $10 i32.const 3 i32.shl i32.add i64.load - local.set $3 - local.get $9 + local.set $4 local.get $13 + local.get $10 call $~lib/array/Array#__get - local.set $16 + local.set $12 local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16501,7 +16307,7 @@ unreachable end local.get $5 - local.get $16 + local.get $12 i32.const 20 i32.sub i64.extend_i32_s @@ -16522,13 +16328,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 - i32.load local.get $3 + i32.load + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16538,7 +16344,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16549,77 +16355,77 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $10 - local.get $4 + local.tee $15 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $2 + local.get $0 if - local.get $2 + local.get $0 i32.load offset=16 - local.tee $7 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $4 + local.get $0 i64.load i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $7 + local.get $2 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $2 - local.get $3 + local.get $0 + local.get $4 i64.store offset=8 else - local.get $4 + local.get $3 i32.load offset=16 - local.get $4 + local.get $3 i32.load offset=12 i32.eq if - local.get $4 + local.get $3 i32.load offset=20 - local.get $4 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -16627,17 +16433,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $3 i32.load offset=4 else - local.get $4 + local.get $3 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $7 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16645,66 +16451,67 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 - local.get $7 + local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $14 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $1 + local.tee $16 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $2 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $11 - local.get $4 + local.tee $7 + local.get $3 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $12 + local.set $17 local.get $2 local.set $0 loop $while-continue|00 - local.get $11 - local.get $12 + local.get $7 + local.get $17 i32.ne if - local.get $11 + local.get $7 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $11 + local.get $7 i64.load - local.tee $17 + local.tee $14 i64.store local.get $0 - local.get $11 + local.get $7 i64.load offset=8 i64.store offset=8 local.get $0 - local.get $17 + local.get $1 + local.get $14 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16714,7 +16521,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $17 + local.get $14 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16726,29 +16533,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $7 i32.and i32.const 2 i32.shl - local.get $14 + local.get $9 i32.add local.tee $8 i32.load @@ -16761,33 +16567,33 @@ i32.add local.set $0 end - local.get $11 + local.get $7 i32.const 24 i32.add - local.set $11 + local.set $7 br $while-continue|00 end end - local.get $4 - local.get $14 + local.get $3 + local.get $9 i32.store - local.get $4 - local.get $14 + local.get $3 + local.get $9 call $~lib/rt/itcms/__link - local.get $4 - local.get $7 + local.get $3 + local.get $1 i32.store offset=4 - local.get $4 + local.get $3 local.get $2 i32.store offset=8 - local.get $4 + local.get $3 local.get $2 call $~lib/rt/itcms/__link - local.get $4 - local.get $1 + local.get $3 + local.get $16 i32.store offset=12 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -16796,70 +16602,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.load offset=8 - local.tee $7 + local.tee $0 i32.store - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.load offset=16 - local.tee $2 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $1 i32.const 24 i32.mul - local.get $7 + local.get $0 i32.add - local.tee $7 - local.get $3 - i64.store - local.get $7 - local.get $3 - i64.store offset=8 + local.tee $0 local.get $4 + i64.store + local.get $0 local.get $4 + i64.store offset=8 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $7 - local.get $4 + local.get $0 + local.get $3 i32.load - local.get $4 + local.get $3 i32.load offset=4 - local.get $10 + local.get $15 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=16 - local.get $2 - local.get $7 + local.get $1 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 - local.get $16 + local.get $11 + local.get $12 i32.const 20 i32.sub - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 call $~lib/map/Map#set - local.get $13 + local.get $10 i32.const 1 i32.add - local.set $13 + local.set $10 br $for-loop|2 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -16871,7 +16677,7 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -16884,14 +16690,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|3 - local.get $3 + local.get $4 i64.const 50 i64.lt_s if local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16903,9 +16709,9 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -16919,10 +16725,10 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#delete local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -16932,10 +16738,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|3 end end @@ -16952,14 +16758,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|4 - local.get $3 + local.get $4 i64.const 50 i64.lt_s if local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -16970,14 +16776,14 @@ unreachable end local.get $5 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -16989,10 +16795,10 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#delete local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -17002,10 +16808,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|4 end end @@ -17048,61 +16854,60 @@ ) (func $~lib/map/Map#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -17117,7 +16922,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $2 i32.const -2 i32.and @@ -17126,7 +16930,9 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) @@ -17135,8 +16941,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i64) + (local $6 i64) + (local $7 i32) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer @@ -17155,26 +16961,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $5 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor @@ -17182,37 +16988,38 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $8 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $9 + local.set $4 local.get $3 local.set $2 loop $while-continue|0 local.get $4 - local.get $9 + local.get $8 i32.ne if - local.get $4 + local.get $8 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $8 i64.load - local.tee $7 + local.tee $6 i64.store local.get $2 - local.get $4 + local.get $8 i32.load offset=8 i32.store offset=8 local.get $2 - local.get $7 + local.get $1 + local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -17222,7 +17029,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $7 + local.get $6 i64.const 32 i64.shr_u i32.wrap_i64 @@ -17233,35 +17040,34 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $5 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add - local.tee $5 + local.tee $9 i32.load i32.store offset=12 - local.get $5 + local.get $9 local.get $2 i32.store local.get $2 @@ -17269,18 +17075,18 @@ i32.add local.set $2 end - local.get $4 + local.get $8 i32.const 16 i32.add - local.set $4 + local.set $8 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $7 i32.store local.get $0 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $0 local.get $1 @@ -17292,7 +17098,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $8 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -17305,61 +17111,60 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $2 @@ -17374,7 +17179,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $2 i32.const -2 i32.and @@ -17383,8 +17187,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -17400,61 +17205,60 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=12 local.tee $3 @@ -17469,7 +17273,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -17478,8 +17281,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -17535,8 +17339,8 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 i32) + (local $3 i32) + (local $4 i64) (local $5 i32) (local $6 i32) (local $7 i32) @@ -17546,42 +17350,42 @@ (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) + (local $14 i64) (local $15 i32) (local $16 i32) - (local $17 i64) + (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i64.const 0 i64.store offset=8 - local.get $2 + local.get $3 i32.const 0 i32.store offset=16 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 0 i32.store - local.get $4 + local.get $5 i32.const 24 i32.const 23 call $~lib/rt/itcms/__new @@ -17590,10 +17394,10 @@ local.get $5 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store local.get $5 - local.get $4 + local.get $0 call $~lib/rt/itcms/__link local.get $5 i32.const 3 @@ -17601,10 +17405,10 @@ local.get $5 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $0 i32.store offset=8 local.get $5 - local.get $4 + local.get $0 call $~lib/rt/itcms/__link local.get $5 i32.const 4 @@ -17619,16 +17423,16 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $5 i32.store loop $for-loop|0 - local.get $3 + local.get $4 i64.const 100 i64.lt_u if local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -17639,14 +17443,14 @@ unreachable end local.get $5 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17658,9 +17462,9 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -17673,10 +17477,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|0 end end @@ -17693,14 +17497,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|1 - local.get $3 + local.get $4 i64.const 100 i64.lt_u if local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17712,9 +17516,9 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 10 i32.add @@ -17728,14 +17532,14 @@ unreachable end local.get $5 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 20 i32.add call $~lib/map/Map#set local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -17747,9 +17551,9 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -17762,10 +17566,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|1 end end @@ -17782,39 +17586,39 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $7 i32.const 0 i32.store local.get $5 i32.load offset=8 - local.set $0 + local.set $12 local.get $5 i32.load offset=16 - local.tee $7 - local.set $9 - local.get $2 + local.tee $13 + local.set $3 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $0 i64.const 0 i64.store - local.get $4 + local.get $0 i32.const 16 i32.const 24 call $~lib/rt/itcms/__new @@ -17835,7 +17639,7 @@ local.get $6 i32.const 0 i32.store offset=12 - local.get $9 + local.get $3 i32.const 134217727 i32.gt_u if @@ -17847,55 +17651,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $3 i32.const 8 - local.get $9 + local.get $3 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $4 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $0 i32.store offset=4 - local.get $10 - local.get $4 + local.get $0 + local.get $9 call $~lib/memory/memory.fill local.get $6 - local.get $10 + local.get $0 i32.store local.get $6 - local.get $10 + local.get $0 call $~lib/rt/itcms/__link local.get $6 - local.get $10 + local.get $0 i32.store offset=4 local.get $6 - local.get $4 + local.get $9 i32.store offset=8 local.get $6 - local.get $9 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $7 local.get $6 i32.store loop $for-loop|01 - local.get $7 - local.get $12 - i32.gt_s + local.get $2 + local.get $13 + i32.lt_s if - local.get $12 + local.get $2 i32.const 4 i32.shl - local.get $0 + local.get $12 i32.add - local.tee $2 + local.tee $3 i32.load offset=12 i32.const 1 i32.and @@ -17903,7 +17707,7 @@ if local.get $6 local.get $1 - local.get $2 + local.get $3 i64.load call $~lib/array/Array#__set local.get $1 @@ -17911,10 +17715,10 @@ i32.add local.set $1 end - local.get $12 + local.get $2 i32.const 1 i32.add - local.set $12 + local.set $2 br $for-loop|01 end end @@ -17935,7 +17739,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 call $~lib/map/Map#values - local.tee $9 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17945,64 +17749,64 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store - local.get $2 + local.get $3 i32.const 24 i32.const 25 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store - local.get $4 + local.get $3 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/itcms/__link - local.get $4 + local.get $3 i32.const 3 i32.store offset=4 - local.get $4 + local.get $3 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $4 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/itcms/__link - local.get $4 + local.get $3 i32.const 4 i32.store offset=12 - local.get $4 + local.get $3 i32.const 0 i32.store offset=16 - local.get $4 + local.get $3 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $15 + local.tee $11 i32.store offset=16 loop $for-loop|2 local.get $6 i32.load offset=12 - local.get $13 + local.get $10 i32.gt_s if local.get $6 i32.load offset=12 - local.get $13 + local.get $10 i32.le_u if i32.const 1248 @@ -18014,18 +17818,18 @@ end local.get $6 i32.load offset=4 - local.get $13 + local.get $10 i32.const 3 i32.shl i32.add i64.load - local.set $3 - local.get $9 + local.set $4 local.get $13 + local.get $10 call $~lib/array/Array#__get - local.set $16 + local.set $12 local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -18037,7 +17841,7 @@ unreachable end local.get $5 - local.get $16 + local.get $12 i32.const 20 i32.sub i64.extend_i32_s @@ -18058,13 +17862,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 - i32.load local.get $3 + i32.load + local.get $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18074,7 +17878,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $3 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18085,77 +17889,77 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 - local.get $2 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $2 - local.get $2 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $2 - local.get $2 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $10 - local.get $4 + local.tee $15 + local.get $3 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $2 + local.set $0 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $2 + local.get $0 if - local.get $2 + local.get $0 i32.load offset=16 - local.tee $7 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $2 + local.get $4 + local.get $0 i64.load i64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $7 + local.get $2 i32.const -2 i32.and - local.set $2 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $2 + local.set $0 end - local.get $2 + local.get $0 if - local.get $2 - local.get $3 + local.get $0 + local.get $4 i64.store offset=8 else - local.get $4 + local.get $3 i32.load offset=16 - local.get $4 + local.get $3 i32.load offset=12 i32.eq if - local.get $4 + local.get $3 i32.load offset=20 - local.get $4 + local.get $3 i32.load offset=12 i32.const 3 i32.mul @@ -18163,17 +17967,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $3 i32.load offset=4 else - local.get $4 + local.get $3 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $7 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18181,66 +17985,67 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i64.const 0 i64.store - local.get $2 - local.get $7 + local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $2 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $14 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $1 + local.tee $16 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $2 i32.store offset=4 - local.get $4 + local.get $3 i32.load offset=8 - local.tee $11 - local.get $4 + local.tee $7 + local.get $3 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $12 + local.set $17 local.get $2 local.set $0 loop $while-continue|00 - local.get $11 - local.get $12 + local.get $7 + local.get $17 i32.ne if - local.get $11 + local.get $7 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $11 + local.get $7 i64.load - local.tee $17 + local.tee $14 i64.store local.get $0 - local.get $11 + local.get $7 i64.load offset=8 i64.store offset=8 local.get $0 - local.get $17 + local.get $1 + local.get $14 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -18250,7 +18055,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $17 + local.get $14 i64.const 32 i64.shr_u i32.wrap_i64 @@ -18262,29 +18067,28 @@ i32.const 668265263 i32.mul local.tee $8 - local.get $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul local.tee $8 - local.get $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul local.tee $8 - local.get $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $7 i32.and i32.const 2 i32.shl - local.get $14 + local.get $9 i32.add local.tee $8 i32.load @@ -18297,33 +18101,33 @@ i32.add local.set $0 end - local.get $11 + local.get $7 i32.const 24 i32.add - local.set $11 + local.set $7 br $while-continue|00 end end - local.get $4 - local.get $14 + local.get $3 + local.get $9 i32.store - local.get $4 - local.get $14 + local.get $3 + local.get $9 call $~lib/rt/itcms/__link - local.get $4 - local.get $7 + local.get $3 + local.get $1 i32.store offset=4 - local.get $4 + local.get $3 local.get $2 i32.store offset=8 - local.get $4 + local.get $3 local.get $2 call $~lib/rt/itcms/__link - local.get $4 - local.get $1 + local.get $3 + local.get $16 i32.store offset=12 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -18332,70 +18136,70 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.load offset=8 - local.tee $7 + local.tee $0 i32.store - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.load offset=16 - local.tee $2 + local.tee $1 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $1 i32.const 24 i32.mul - local.get $7 + local.get $0 i32.add - local.tee $7 - local.get $3 - i64.store - local.get $7 - local.get $3 - i64.store offset=8 + local.tee $0 local.get $4 + i64.store + local.get $0 local.get $4 + i64.store offset=8 + local.get $3 + local.get $3 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $7 - local.get $4 + local.get $0 + local.get $3 i32.load - local.get $4 + local.get $3 i32.load offset=4 - local.get $10 + local.get $15 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $1 i32.load i32.store offset=16 - local.get $2 - local.get $7 + local.get $1 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 - local.get $16 + local.get $11 + local.get $12 i32.const 20 i32.sub - local.tee $2 - local.get $2 + local.tee $0 + local.get $0 call $~lib/map/Map#set - local.get $13 + local.get $10 i32.const 1 i32.add - local.set $13 + local.set $10 br $for-loop|2 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -18407,7 +18211,7 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -18420,14 +18224,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|3 - local.get $3 + local.get $4 i64.const 50 i64.lt_u if local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -18439,9 +18243,9 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#get - local.get $3 + local.get $4 i32.wrap_i64 i32.const 20 i32.add @@ -18455,10 +18259,10 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#delete local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -18468,10 +18272,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|3 end end @@ -18488,14 +18292,14 @@ unreachable end i64.const 0 - local.set $3 + local.set $4 loop $for-loop|4 - local.get $3 + local.get $4 i64.const 50 i64.lt_u if local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -18506,14 +18310,14 @@ unreachable end local.get $5 - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.wrap_i64 i32.const 10 i32.add call $~lib/map/Map#set local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has i32.eqz if @@ -18525,10 +18329,10 @@ unreachable end local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#delete local.get $5 - local.get $3 + local.get $4 call $~lib/map/Map#has if i32.const 0 @@ -18538,10 +18342,10 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 i64.const 1 i64.add - local.set $3 + local.set $4 br $for-loop|4 end end @@ -18585,12 +18389,12 @@ (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -18607,26 +18411,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $6 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor @@ -18634,37 +18438,37 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $8 local.get $0 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $8 + local.set $5 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 + local.get $5 local.get $8 i32.ne if - local.get $4 + local.get $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $8 f32.load - local.tee $9 + local.tee $4 f32.store local.get $2 - local.get $4 + local.get $8 i32.load offset=4 i32.store offset=4 local.get $2 - local.get $9 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -18674,35 +18478,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $5 i32.xor local.get $1 i32.and i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add - local.tee $5 + local.tee $9 i32.load i32.store offset=8 - local.get $5 + local.get $9 local.get $2 i32.store local.get $2 @@ -18710,18 +18514,18 @@ i32.add local.set $2 end - local.get $4 + local.get $8 i32.const 12 i32.add - local.set $4 + local.set $8 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $7 i32.store local.get $0 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $0 local.get $1 @@ -18733,7 +18537,7 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $6 i32.store offset=12 local.get $0 local.get $0 @@ -18746,50 +18550,49 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 f32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 local.tee $2 @@ -18804,7 +18607,6 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $2 i32.const -2 i32.and @@ -18813,8 +18615,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -18830,50 +18633,49 @@ (func $~lib/map/Map#delete (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -18888,7 +18690,6 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -18897,8 +18698,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -18954,103 +18756,103 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) + (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) + (local $14 f32) (local $15 i32) (local $16 i32) - (local $17 f32) + (local $17 i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 i64.const 0 i64.store - local.get $4 + local.get $1 i64.const 0 i64.store offset=8 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $16 + local.tee $5 i32.const 0 i32.store - local.get $16 + local.get $5 i32.const 24 i32.const 26 call $~lib/rt/itcms/__new - local.tee $16 + local.tee $4 i32.store - local.get $16 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store - local.get $16 - local.get $3 + local.get $4 + local.get $5 call $~lib/rt/itcms/__link - local.get $16 + local.get $4 i32.const 3 i32.store offset=4 - local.get $16 + local.get $4 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store offset=8 - local.get $16 - local.get $3 + local.get $4 + local.get $5 call $~lib/rt/itcms/__link - local.get $16 + local.get $4 i32.const 4 i32.store offset=12 - local.get $16 + local.get $4 i32.const 0 i32.store offset=16 - local.get $16 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $4 - local.get $16 i32.store loop $for-loop|0 - local.get $17 + local.get $3 f32.const 100 f32.lt if - local.get $16 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19060,60 +18862,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 - local.get $4 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $1 + local.get $6 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 if i32.const 0 i32.const 1568 @@ -19122,18 +18924,18 @@ call $~lib/builtins/abort unreachable end - local.get $16 - local.get $17 - local.get $17 + local.get $4 + local.get $3 + local.get $3 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $16 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19143,60 +18945,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find1 loop $while-continue|02 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 - local.get $4 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find1 - local.get $1 + local.get $6 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 i32.eqz if i32.const 0 @@ -19206,10 +19008,10 @@ call $~lib/builtins/abort unreachable end - local.get $16 - local.get $17 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $17 + local.get $3 i32.trunc_f32_s i32.const 10 i32.add @@ -19222,14 +19024,14 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $3 f32.const 1 f32.add - local.set $17 + local.set $3 br $for-loop|0 end end - local.get $16 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -19242,17 +19044,17 @@ unreachable end f32.const 0 - local.set $17 + local.set $3 loop $for-loop|1 - local.get $17 + local.get $3 f32.const 100 f32.lt if - local.get $16 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19262,60 +19064,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find4 loop $while-continue|05 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 - local.get $4 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find4 - local.get $1 + local.get $6 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 i32.eqz if i32.const 0 @@ -19325,10 +19127,10 @@ call $~lib/builtins/abort unreachable end - local.get $16 - local.get $17 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $17 + local.get $3 i32.trunc_f32_s i32.const 10 i32.add @@ -19341,18 +19143,18 @@ call $~lib/builtins/abort unreachable end - local.get $16 - local.get $17 - local.get $17 + local.get $4 + local.get $3 + local.get $3 i32.trunc_f32_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $16 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19362,60 +19164,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find7 loop $while-continue|08 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $1 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 - local.get $4 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find7 - local.get $1 + local.get $6 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 i32.eqz if i32.const 0 @@ -19425,10 +19227,10 @@ call $~lib/builtins/abort unreachable end - local.get $16 - local.get $17 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $17 + local.get $3 i32.trunc_f32_s i32.const 20 i32.add @@ -19441,14 +19243,14 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $3 f32.const 1 f32.add - local.set $17 + local.set $3 br $for-loop|1 end end - local.get $16 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -19461,60 +19263,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $4 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $7 i32.const 0 i32.store - local.get $16 + local.get $4 i32.load offset=8 - local.set $10 - local.get $16 - i32.load offset=16 - local.tee $9 - local.set $3 + local.set $12 local.get $4 + i32.load offset=16 + local.tee $13 + local.set $1 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $5 i64.const 0 i64.store - local.get $1 + local.get $5 i32.const 16 i32.const 27 call $~lib/rt/itcms/__new - local.tee $15 + local.tee $6 i32.store - local.get $15 + local.get $6 i32.const 0 i32.store - local.get $15 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link - local.get $15 + local.get $6 i32.const 0 i32.store offset=4 - local.get $15 + local.get $6 i32.const 0 i32.store offset=8 - local.get $15 + local.get $6 i32.const 0 i32.store offset=12 - local.get $3 + local.get $1 i32.const 268435455 i32.gt_u if @@ -19526,74 +19328,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 8 - local.get $3 + local.get $1 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $12 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $5 i32.store offset=4 - local.get $1 - local.get $12 + local.get $5 + local.get $9 call $~lib/memory/memory.fill - local.get $15 - local.get $1 + local.get $6 + local.get $5 i32.store - local.get $15 - local.get $1 + local.get $6 + local.get $5 call $~lib/rt/itcms/__link - local.get $15 - local.get $1 + local.get $6 + local.get $5 i32.store offset=4 - local.get $15 - local.get $12 + local.get $6 + local.get $9 i32.store offset=8 - local.get $15 - local.get $3 + local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $15 + local.get $7 + local.get $6 i32.store loop $for-loop|01 - local.get $9 - local.get $14 - i32.gt_s + local.get $2 + local.get $13 + i32.lt_s if - local.get $14 + local.get $2 i32.const 12 i32.mul - local.get $10 + local.get $12 i32.add - local.tee $3 + local.tee $5 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $4 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $2 - local.get $3 + local.set $0 + local.get $5 f32.load - local.set $17 - local.get $15 + local.set $3 + local.get $6 i32.load offset=12 - local.get $4 + local.get $1 i32.le_u if - local.get $4 + local.get $1 i32.const 0 i32.lt_s if @@ -19604,52 +19406,52 @@ call $~lib/builtins/abort unreachable end - local.get $15 - local.get $4 + local.get $6 + local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $5 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity - local.get $15 - local.get $3 + local.get $6 + local.get $5 i32.store offset=12 end - local.get $15 + local.get $6 i32.load offset=4 - local.get $4 + local.get $1 i32.const 2 i32.shl i32.add - local.get $17 + local.get $3 f32.store end - local.get $14 + local.get $2 i32.const 1 i32.add - local.set $14 + local.set $2 br $for-loop|01 end end - local.get $15 - local.get $2 + local.get $6 + local.get $0 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $15 - local.get $2 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $15 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $4 call $~lib/map/Map#values - local.tee $9 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -19659,66 +19461,65 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 + local.get $1 i32.const 24 i32.const 28 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store - local.get $4 - local.get $3 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 i32.const 3 i32.store offset=4 - local.get $4 + local.get $1 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store offset=8 - local.get $4 - local.get $3 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 i32.const 4 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $15 + local.get $6 i32.load offset=12 - local.get $0 + local.get $10 i32.gt_s if - local.get $0 - local.tee $1 - local.get $15 + local.get $6 i32.load offset=12 - i32.ge_u + local.get $10 + i32.le_u if i32.const 1248 i32.const 1728 @@ -19727,23 +19528,23 @@ call $~lib/builtins/abort unreachable end - local.get $15 + local.get $6 i32.load offset=4 - local.get $1 + local.get $10 i32.const 2 i32.shl i32.add f32.load - local.set $17 - local.get $9 - local.get $1 + local.set $3 + local.get $13 + local.get $10 call $~lib/array/Array#__get - local.set $10 - local.get $16 + local.set $12 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19754,23 +19555,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -19784,19 +19585,19 @@ if local.get $0 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 + local.get $3 local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find10 - local.get $3 + local.get $2 i32.const -2 i32.and local.set $0 @@ -19816,15 +19617,15 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $10 + local.get $12 i32.const 20 i32.sub f32.convert_i32_s - local.tee $8 + local.tee $14 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19835,23 +19636,23 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 @@ -19865,19 +19666,19 @@ if local.get $0 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $8 + local.get $14 local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find13 - local.get $3 + local.get $2 i32.const -2 i32.and local.set $0 @@ -19904,13 +19705,13 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $1 i32.load - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -19921,26 +19722,26 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $7 - local.get $4 + local.tee $15 + local.get $1 i32.load offset=4 i32.and i32.const 2 @@ -19954,19 +19755,19 @@ if local.get $0 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 + local.get $3 local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find15 - local.get $3 + local.get $2 i32.const -2 i32.and local.set $0 @@ -19979,18 +19780,18 @@ local.get $0 if local.get $0 - local.get $17 + local.get $3 f32.store offset=4 else - local.get $4 + local.get $1 i32.load offset=16 - local.get $4 + local.get $1 i32.load offset=12 i32.eq if - local.get $4 + local.get $1 i32.load offset=20 - local.get $4 + local.get $1 i32.load offset=12 i32.const 3 i32.mul @@ -19998,17 +19799,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $1 i32.load offset=4 else - local.get $4 + local.get $1 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -20016,20 +19817,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $2 + local.get $5 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $12 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -20037,45 +19838,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $6 + local.tee $16 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $1 i32.load offset=8 - local.tee $14 - local.get $4 + local.tee $7 + local.get $1 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $5 - local.get $3 + local.set $17 + local.get $2 local.set $0 loop $while-continue|017 - local.get $5 - local.get $14 + local.get $7 + local.get $17 i32.ne if - local.get $14 + local.get $7 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $14 + local.get $7 f32.load - local.tee $8 + local.tee $14 f32.store local.get $0 - local.get $14 + local.get $7 f32.load offset=4 f32.store offset=4 local.get $0 - local.get $8 + local.get $14 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20085,35 +19886,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $13 - local.get $13 + local.tee $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul - local.tee $13 - local.get $13 + local.tee $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul - local.tee $13 - local.get $13 + local.tee $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $2 + local.get $5 i32.and i32.const 2 i32.shl - local.get $12 + local.get $9 i32.add - local.tee $13 + local.tee $8 i32.load i32.store offset=8 - local.get $13 + local.get $8 local.get $0 i32.store local.get $0 @@ -20121,33 +19922,33 @@ i32.add local.set $0 end - local.get $14 + local.get $7 i32.const 12 i32.add - local.set $14 + local.set $7 br $while-continue|017 end end - local.get $4 - local.get $12 + local.get $1 + local.get $9 i32.store - local.get $4 - local.get $12 + local.get $1 + local.get $9 call $~lib/rt/itcms/__link - local.get $4 - local.get $2 + local.get $1 + local.get $5 i32.store offset=4 - local.get $4 - local.get $3 + local.get $1 + local.get $2 i32.store offset=8 - local.get $4 - local.get $3 + local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $4 - local.get $6 + local.get $1 + local.get $16 i32.store offset=12 - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -20156,48 +19957,48 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.load offset=8 local.tee $0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.load offset=16 - local.tee $2 + local.tee $5 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $5 i32.const 12 i32.mul local.get $0 i32.add local.tee $0 - local.get $17 + local.get $3 f32.store local.get $0 - local.get $17 + local.get $3 f32.store offset=4 - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $4 + local.get $1 i32.load - local.get $4 + local.get $1 i32.load offset=4 - local.get $7 + local.get $15 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $5 i32.load i32.store offset=8 - local.get $2 + local.get $5 local.get $0 i32.store end @@ -20206,20 +20007,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $11 - local.get $10 + local.get $12 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $1 + local.get $10 i32.const 1 i32.add - local.set $0 + local.set $10 br $for-loop|2 end end - local.get $4 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -20244,17 +20045,17 @@ unreachable end f32.const 0 - local.set $17 + local.set $3 loop $for-loop|3 - local.get $17 + local.get $3 f32.const 50 f32.lt if - local.get $16 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20264,60 +20065,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find19 loop $while-continue|020 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 - local.get $4 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find19 - local.get $2 + local.get $5 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|020 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 i32.eqz if i32.const 0 @@ -20327,10 +20128,10 @@ call $~lib/builtins/abort unreachable end - local.get $16 - local.get $17 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $17 + local.get $3 i32.trunc_f32_s i32.const 20 i32.add @@ -20343,14 +20144,14 @@ call $~lib/builtins/abort unreachable end - local.get $16 - local.get $17 + local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $16 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20360,60 +20161,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find22 loop $while-continue|023 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 - local.get $4 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find22 - local.get $2 + local.get $5 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|023 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 if i32.const 0 i32.const 1568 @@ -20422,14 +20223,14 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $3 f32.const 1 f32.add - local.set $17 + local.set $3 br $for-loop|3 end end - local.get $16 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -20442,17 +20243,17 @@ unreachable end f32.const 0 - local.set $17 + local.set $3 loop $for-loop|4 - local.get $17 + local.get $3 f32.const 50 f32.lt if - local.get $16 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20462,60 +20263,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find25 loop $while-continue|026 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 - local.get $4 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find25 - local.get $2 + local.get $5 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|026 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 if i32.const 0 i32.const 1568 @@ -20524,18 +20325,18 @@ call $~lib/builtins/abort unreachable end - local.get $16 - local.get $17 - local.get $17 + local.get $4 + local.get $3 + local.get $3 i32.trunc_f32_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $16 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20545,60 +20346,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find28 loop $while-continue|029 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 - local.get $4 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find28 - local.get $2 + local.get $5 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|029 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 i32.eqz if i32.const 0 @@ -20608,14 +20409,14 @@ call $~lib/builtins/abort unreachable end - local.get $16 - local.get $17 + local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $16 + local.get $4 i32.load - local.get $16 + local.get $4 i32.load offset=4 - local.get $17 + local.get $3 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -20625,60 +20426,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $4 - local.get $4 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $4 + local.set $1 block $__inlined_func$~lib/map/Map#find31 loop $while-continue|032 - local.get $4 + local.get $1 if - local.get $4 + local.get $1 i32.load offset=8 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $17 - local.get $4 + local.get $3 + local.get $1 f32.load f32.eq end br_if $__inlined_func$~lib/map/Map#find31 - local.get $2 + local.get $5 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|032 end end i32.const 0 - local.set $4 + local.set $1 end - local.get $4 + local.get $1 if i32.const 0 i32.const 1568 @@ -20687,14 +20488,14 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $3 f32.const 1 f32.add - local.set $17 + local.set $3 br $for-loop|4 end end - local.get $16 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -20706,9 +20507,9 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $4 call $~lib/map/Map#clear - local.get $16 + local.get $4 i32.load offset=20 if i32.const 0 @@ -20734,63 +20535,62 @@ (func $~lib/map/Map#has (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $3 @@ -20805,7 +20605,6 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -20814,20 +20613,22 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) (func $~lib/map/Map#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) + (local $4 i64) + (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f64) - (local $10 i64) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -20844,21 +20645,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $2 i64.const 0 i64.store - local.get $4 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.const 3 i32.shl i32.const 3 @@ -20871,39 +20672,40 @@ i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $4 + local.tee $9 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $8 + local.set $6 local.get $3 local.set $2 loop $while-continue|0 - local.get $4 - local.get $8 + local.get $6 + local.get $9 i32.ne if - local.get $4 + local.get $9 i32.load offset=12 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $4 + local.get $9 f64.load - local.tee $9 + local.tee $5 f64.store local.get $2 - local.get $4 + local.get $9 i32.load offset=8 i32.store offset=8 local.get $2 - local.get $9 + local.get $1 + local.get $5 i64.reinterpret_f64 - local.tee $10 + local.tee $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -20913,7 +20715,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $10 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -20924,35 +20726,34 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $5 + local.tee $10 + local.get $10 i32.const 15 i32.shr_u - local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $5 + local.tee $10 + local.get $10 i32.const 13 i32.shr_u - local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $5 + local.tee $10 + local.get $10 i32.const 16 i32.shr_u - local.get $5 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $6 + local.get $8 i32.add - local.tee $5 + local.tee $10 i32.load i32.store offset=12 - local.get $5 + local.get $10 local.get $2 i32.store local.get $2 @@ -20960,18 +20761,18 @@ i32.add local.set $2 end - local.get $4 + local.get $9 i32.const 16 i32.add - local.set $4 + local.set $9 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $8 i32.store local.get $0 - local.get $6 + local.get $8 call $~lib/rt/itcms/__link local.get $0 local.get $1 @@ -20997,63 +20798,62 @@ (func $~lib/map/Map#get (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=12 local.tee $3 @@ -21068,7 +20868,6 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -21077,8 +20876,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1616 @@ -21095,63 +20895,62 @@ (local $2 i32) (local $3 i32) (local $4 i64) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $4 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=12 local.tee $3 @@ -21166,7 +20965,6 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $3 i32.const -2 i32.and @@ -21175,8 +20973,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -21232,18 +21031,18 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f64) (local $4 i32) - (local $5 f64) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i64) + (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) - (local $14 i32) + (local $14 i64) (local $15 i32) (local $16 i32) (local $17 i32) @@ -21252,81 +21051,81 @@ i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 i64.const 0 i64.store - local.get $4 + local.get $1 i64.const 0 i64.store offset=8 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $17 + local.tee $5 i32.const 0 i32.store - local.get $17 + local.get $5 i32.const 24 i32.const 29 call $~lib/rt/itcms/__new - local.tee $17 + local.tee $4 i32.store - local.get $17 + local.get $4 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store - local.get $17 - local.get $3 + local.get $4 + local.get $5 call $~lib/rt/itcms/__link - local.get $17 + local.get $4 i32.const 3 i32.store offset=4 - local.get $17 + local.get $4 i32.const 64 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store offset=8 - local.get $17 - local.get $3 + local.get $4 + local.get $5 call $~lib/rt/itcms/__link - local.get $17 + local.get $4 i32.const 4 i32.store offset=12 - local.get $17 + local.get $4 i32.const 0 i32.store offset=16 - local.get $17 + local.get $4 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $1 local.get $4 - local.get $17 i32.store loop $for-loop|0 - local.get $18 + local.get $3 f64.const 100 f64.lt if - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -21336,15 +21135,15 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 - local.get $18 + local.get $4 + local.get $3 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21355,10 +21154,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $18 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add @@ -21371,14 +21170,14 @@ call $~lib/builtins/abort unreachable end - local.get $18 + local.get $3 f64.const 1 f64.add - local.set $18 + local.set $3 br $for-loop|0 end end - local.get $17 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -21391,14 +21190,14 @@ unreachable end f64.const 0 - local.set $18 + local.set $3 loop $for-loop|1 - local.get $18 + local.get $3 f64.const 100 f64.lt if - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21409,10 +21208,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $18 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add @@ -21425,15 +21224,15 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 - local.get $18 + local.get $4 + local.get $3 + local.get $3 i32.trunc_f64_s i32.const 20 i32.add call $~lib/map/Map#set - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21444,10 +21243,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $18 + local.get $3 i32.trunc_f64_s i32.const 20 i32.add @@ -21460,14 +21259,14 @@ call $~lib/builtins/abort unreachable end - local.get $18 + local.get $3 f64.const 1 f64.add - local.set $18 + local.set $3 br $for-loop|1 end end - local.get $17 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -21480,60 +21279,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 - local.get $4 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $7 i32.const 0 i32.store - local.get $17 + local.get $4 i32.load offset=8 - local.set $11 - local.get $17 - i32.load offset=16 - local.tee $10 - local.set $3 + local.set $12 local.get $4 + i32.load offset=16 + local.tee $13 + local.set $1 + local.get $7 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $5 i64.const 0 i64.store - local.get $1 + local.get $5 i32.const 16 i32.const 30 call $~lib/rt/itcms/__new - local.tee $16 + local.tee $6 i32.store - local.get $16 + local.get $6 i32.const 0 i32.store - local.get $16 + local.get $6 i32.const 0 call $~lib/rt/itcms/__link - local.get $16 + local.get $6 i32.const 0 i32.store offset=4 - local.get $16 + local.get $6 i32.const 0 i32.store offset=8 - local.get $16 + local.get $6 i32.const 0 i32.store offset=12 - local.get $3 + local.get $1 i32.const 134217727 i32.gt_u if @@ -21545,74 +21344,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 8 - local.get $3 + local.get $1 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $13 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $5 i32.store offset=4 - local.get $1 - local.get $13 + local.get $5 + local.get $9 call $~lib/memory/memory.fill - local.get $16 - local.get $1 + local.get $6 + local.get $5 i32.store - local.get $16 - local.get $1 + local.get $6 + local.get $5 call $~lib/rt/itcms/__link - local.get $16 - local.get $1 + local.get $6 + local.get $5 i32.store offset=4 - local.get $16 - local.get $13 + local.get $6 + local.get $9 i32.store offset=8 - local.get $16 - local.get $3 + local.get $6 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $16 + local.get $7 + local.get $6 i32.store loop $for-loop|01 - local.get $10 - local.get $15 - i32.gt_s + local.get $2 + local.get $13 + i32.lt_s if - local.get $15 + local.get $2 i32.const 4 i32.shl - local.get $11 + local.get $12 i32.add - local.tee $3 + local.tee $5 i32.load offset=12 i32.const 1 i32.and i32.eqz if - local.get $2 - local.tee $4 + local.get $0 + local.tee $1 i32.const 1 i32.add - local.set $2 - local.get $3 + local.set $0 + local.get $5 f64.load - local.set $18 - local.get $16 + local.set $3 + local.get $6 i32.load offset=12 - local.get $4 + local.get $1 i32.le_u if - local.get $4 + local.get $1 i32.const 0 i32.lt_s if @@ -21623,52 +21422,52 @@ call $~lib/builtins/abort unreachable end - local.get $16 - local.get $4 + local.get $6 + local.get $1 i32.const 1 i32.add - local.tee $3 + local.tee $5 i32.const 3 i32.const 1 call $~lib/array/ensureCapacity - local.get $16 - local.get $3 + local.get $6 + local.get $5 i32.store offset=12 end - local.get $16 + local.get $6 i32.load offset=4 - local.get $4 + local.get $1 i32.const 3 i32.shl i32.add - local.get $18 + local.get $3 f64.store end - local.get $15 + local.get $2 i32.const 1 i32.add - local.set $15 + local.set $2 br $for-loop|01 end end - local.get $16 - local.get $2 + local.get $6 + local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $16 - local.get $2 + local.get $6 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $16 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $17 + local.get $4 call $~lib/map/Map#values - local.tee $10 + local.tee $13 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -21678,66 +21477,65 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $4 + local.get $1 i32.const 24 i32.const 31 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store - local.get $4 + local.get $1 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store - local.get $4 - local.get $3 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 i32.const 3 i32.store offset=4 - local.get $4 + local.get $1 i32.const 96 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $5 i32.store offset=8 - local.get $4 - local.get $3 + local.get $1 + local.get $5 call $~lib/rt/itcms/__link - local.get $4 + local.get $1 i32.const 4 i32.store offset=12 - local.get $4 + local.get $1 i32.const 0 i32.store offset=16 - local.get $4 + local.get $1 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer call $~lib/map/Map#constructor - local.tee $12 + local.tee $11 i32.store offset=16 loop $for-loop|2 - local.get $16 + local.get $6 i32.load offset=12 - local.get $0 + local.get $10 i32.gt_s if - local.get $0 - local.tee $1 - local.get $16 + local.get $6 i32.load offset=12 - i32.ge_u + local.get $10 + i32.le_u if i32.const 1248 i32.const 1728 @@ -21746,20 +21544,20 @@ call $~lib/builtins/abort unreachable end - local.get $16 + local.get $6 i32.load offset=4 - local.get $1 + local.get $10 i32.const 3 i32.shl i32.add f64.load - local.set $18 + local.set $3 + local.get $13 local.get $10 - local.get $1 call $~lib/array/Array#__get - local.set $11 - local.get $17 - local.get $18 + local.set $12 + local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -21770,8 +21568,8 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $11 + local.get $4 + local.get $12 i32.const 20 i32.sub f64.convert_i32_s @@ -21792,15 +21590,15 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $1 i32.load - local.get $18 + local.get $3 i64.reinterpret_f64 - local.tee $9 + local.tee $14 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21810,7 +21608,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $9 + local.get $14 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21822,26 +21620,26 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $8 - local.get $4 + local.tee $15 + local.get $1 i32.load offset=4 i32.and i32.const 2 @@ -21855,19 +21653,19 @@ if local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $18 + local.get $3 local.get $0 f64.load f64.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $3 + local.get $2 i32.const -2 i32.and local.set $0 @@ -21880,18 +21678,18 @@ local.get $0 if local.get $0 - local.get $18 + local.get $3 f64.store offset=8 else - local.get $4 + local.get $1 i32.load offset=16 - local.get $4 + local.get $1 i32.load offset=12 i32.eq if - local.get $4 + local.get $1 i32.load offset=20 - local.get $4 + local.get $1 i32.load offset=12 i32.const 3 i32.mul @@ -21899,17 +21697,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $4 + local.get $1 i32.load offset=4 else - local.get $4 + local.get $1 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -21917,20 +21715,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2020 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $2 + local.get $5 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $13 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -21938,47 +21736,48 @@ i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $16 i32.const 24 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 + local.tee $2 i32.store offset=4 - local.get $4 + local.get $1 i32.load offset=8 - local.tee $15 - local.get $4 + local.tee $7 + local.get $1 i32.load offset=16 i32.const 24 i32.mul i32.add - local.set $6 - local.get $3 + local.set $17 + local.get $2 local.set $0 loop $while-continue|00 - local.get $6 - local.get $15 + local.get $7 + local.get $17 i32.ne if - local.get $15 + local.get $7 i32.load offset=16 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $15 + local.get $7 f64.load - local.tee $5 + local.tee $18 f64.store local.get $0 - local.get $15 + local.get $7 f64.load offset=8 f64.store offset=8 local.get $0 local.get $5 + local.get $18 i64.reinterpret_f64 - local.tee $9 + local.tee $14 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -21988,7 +21787,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $9 + local.get $14 i64.const 32 i64.shr_u i32.wrap_i64 @@ -21998,36 +21797,35 @@ i32.const 17 i32.rotl i32.const 668265263 - i32.mul - local.tee $14 - local.get $14 + i32.mul + local.tee $8 i32.const 15 i32.shr_u + local.get $8 i32.xor i32.const -2048144777 i32.mul - local.tee $14 - local.get $14 + local.tee $8 i32.const 13 i32.shr_u + local.get $8 i32.xor i32.const -1028477379 i32.mul - local.tee $14 - local.get $14 + local.tee $8 i32.const 16 i32.shr_u + local.get $8 i32.xor - local.get $2 i32.and i32.const 2 i32.shl - local.get $13 + local.get $9 i32.add - local.tee $14 + local.tee $8 i32.load i32.store offset=16 - local.get $14 + local.get $8 local.get $0 i32.store local.get $0 @@ -22035,33 +21833,33 @@ i32.add local.set $0 end - local.get $15 + local.get $7 i32.const 24 i32.add - local.set $15 + local.set $7 br $while-continue|00 end end - local.get $4 - local.get $13 + local.get $1 + local.get $9 i32.store - local.get $4 - local.get $13 + local.get $1 + local.get $9 call $~lib/rt/itcms/__link - local.get $4 - local.get $2 + local.get $1 + local.get $5 i32.store offset=4 - local.get $4 - local.get $3 + local.get $1 + local.get $2 i32.store offset=8 - local.get $4 - local.get $3 + local.get $1 + local.get $2 call $~lib/rt/itcms/__link - local.get $4 - local.get $7 + local.get $1 + local.get $16 i32.store offset=12 - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -22070,48 +21868,48 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.load offset=8 local.tee $0 i32.store - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.load offset=16 - local.tee $2 + local.tee $5 i32.const 1 i32.add i32.store offset=16 - local.get $2 + local.get $5 i32.const 24 i32.mul local.get $0 i32.add local.tee $0 - local.get $18 + local.get $3 f64.store local.get $0 - local.get $18 + local.get $3 f64.store offset=8 - local.get $4 - local.get $4 + local.get $1 + local.get $1 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $4 + local.get $1 i32.load - local.get $4 + local.get $1 i32.load offset=4 - local.get $8 + local.get $15 i32.and i32.const 2 i32.shl i32.add - local.tee $2 + local.tee $5 i32.load i32.store offset=16 - local.get $2 + local.get $5 local.get $0 i32.store end @@ -22119,21 +21917,21 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $12 local.get $11 + local.get $12 i32.const 20 i32.sub local.tee $0 local.get $0 call $~lib/map/Map#set - local.get $1 + local.get $10 i32.const 1 i32.add - local.set $0 + local.set $10 br $for-loop|2 end end - local.get $4 + local.get $1 i32.load offset=20 i32.const 100 i32.ne @@ -22145,7 +21943,7 @@ call $~lib/builtins/abort unreachable end - local.get $12 + local.get $11 i32.load offset=20 i32.const 100 i32.ne @@ -22158,14 +21956,14 @@ unreachable end f64.const 0 - local.set $18 + local.set $3 loop $for-loop|3 - local.get $18 + local.get $3 f64.const 50 f64.lt if - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -22176,10 +21974,10 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#get - local.get $18 + local.get $3 i32.trunc_f64_s i32.const 20 i32.add @@ -22192,11 +21990,11 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -22206,14 +22004,14 @@ call $~lib/builtins/abort unreachable end - local.get $18 + local.get $3 f64.const 1 f64.add - local.set $18 + local.set $3 br $for-loop|3 end end - local.get $17 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -22226,14 +22024,14 @@ unreachable end f64.const 0 - local.set $18 + local.set $3 loop $for-loop|4 - local.get $18 + local.get $3 f64.const 50 f64.lt if - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -22243,15 +22041,15 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 - local.get $18 + local.get $4 + local.get $3 + local.get $3 i32.trunc_f64_s i32.const 10 i32.add call $~lib/map/Map#set - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#has i32.eqz if @@ -22262,11 +22060,11 @@ call $~lib/builtins/abort unreachable end - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#delete - local.get $17 - local.get $18 + local.get $4 + local.get $3 call $~lib/map/Map#has if i32.const 0 @@ -22276,14 +22074,14 @@ call $~lib/builtins/abort unreachable end - local.get $18 + local.get $3 f64.const 1 f64.add - local.set $18 + local.set $3 br $for-loop|4 end end - local.get $17 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -22295,9 +22093,9 @@ call $~lib/builtins/abort unreachable end - local.get $17 + local.get $4 call $~lib/map/Map#clear - local.get $17 + local.get $4 i32.load offset=20 if i32.const 0 @@ -22487,7 +22285,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -22506,61 +22303,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $1 if - local.get $4 - local.get $4 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $1 i32.load8_u local.get $3 i32.const 255 @@ -22568,19 +22364,19 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -22616,7 +22412,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -22628,12 +22424,12 @@ local.get $4 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store8 + i32.add + local.tee $1 local.get $3 + i32.store8 + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -22642,7 +22438,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -22656,7 +22452,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -22905,97 +22701,95 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2020 - i32.lt_s - if - i32.const 18432 - i32.const 18480 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 2020 + i32.lt_s + if + i32.const 18432 + i32.const 18480 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $1 if - local.get $4 - local.get $4 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $3 - local.get $4 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -23031,7 +22825,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -23043,12 +22837,12 @@ local.get $4 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store + i32.add + local.tee $1 local.get $3 + i32.store + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -23057,7 +22851,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -23071,7 +22865,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -23083,7 +22877,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23102,62 +22895,61 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $1 if - local.get $4 - local.get $4 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $1 i32.load8_u local.get $3 i32.const 255 @@ -23165,19 +22957,19 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -23213,7 +23005,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -23225,12 +23017,12 @@ local.get $4 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store8 + i32.add + local.tee $1 local.get $3 + i32.store8 + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -23239,7 +23031,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -23253,7 +23045,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -23265,7 +23057,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23284,61 +23075,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $1 if - local.get $4 - local.get $4 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $1 i32.load16_u local.get $3 i32.const 65535 @@ -23346,19 +23136,19 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -23394,7 +23184,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -23406,12 +23196,12 @@ local.get $4 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store16 + i32.add + local.tee $1 local.get $3 + i32.store16 + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -23420,7 +23210,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -23434,7 +23224,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -23446,7 +23236,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23465,62 +23254,61 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $1 if - local.get $4 - local.get $4 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $4 + local.get $1 i32.load16_u local.get $3 i32.const 65535 @@ -23528,19 +23316,19 @@ i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -23576,7 +23364,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -23588,12 +23376,12 @@ local.get $4 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store16 + i32.add + local.tee $1 local.get $3 + i32.store16 + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -23602,7 +23390,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -23616,7 +23404,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -23628,7 +23416,6 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -23647,78 +23434,77 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $3 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $4 - i32.const 15 - i32.shr_u - local.get $4 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $4 - i32.const 13 - i32.shr_u - local.get $4 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $4 - i32.const 16 - i32.shr_u - local.get $4 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $4 + local.get $0 + i32.load + local.get $1 + local.tee $3 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 - local.get $4 + local.get $1 if - local.get $4 - local.get $4 + local.get $1 i32.load offset=8 - local.tee $6 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $3 - local.get $4 + local.get $1 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $6 + local.get $4 i32.const -2 i32.and - local.set $4 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end - local.tee $3 + local.get $1 if - local.get $3 + local.get $1 local.get $2 i32.store offset=4 else @@ -23754,7 +23540,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=8 - local.tee $3 + local.tee $1 i32.store local.get $0 local.get $0 @@ -23766,12 +23552,12 @@ local.get $4 i32.const 12 i32.mul - local.get $3 - i32.add - local.tee $3 local.get $1 - i32.store + i32.add + local.tee $1 local.get $3 + i32.store + local.get $1 local.get $2 i32.store offset=4 local.get $0 @@ -23780,7 +23566,7 @@ i32.const 1 i32.add i32.store offset=20 - local.get $3 + local.get $1 local.get $0 i32.load local.get $0 @@ -23794,7 +23580,7 @@ i32.load i32.store offset=8 local.get $0 - local.get $3 + local.get $1 i32.store end global.get $~lib/memory/__stack_pointer @@ -23824,62 +23610,61 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $3 if - local.get $3 local.get $3 i32.load offset=12 local.tee $4 @@ -23894,7 +23679,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $4 i32.const -2 i32.and @@ -23903,8 +23687,9 @@ end end i32.const 0 + local.set $3 end - local.tee $3 + local.get $3 if local.get $3 local.get $2 @@ -24094,62 +23879,61 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $3 if - local.get $3 local.get $3 i32.load offset=12 local.tee $4 @@ -24164,7 +23948,6 @@ i64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $4 i32.const -2 i32.and @@ -24173,8 +23956,9 @@ end end i32.const 0 + local.set $3 end - local.tee $3 + local.get $3 if local.get $3 local.get $2 @@ -24282,51 +24066,50 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $3 if - local.get $3 local.get $3 i32.load offset=8 local.tee $4 @@ -24341,7 +24124,6 @@ f32.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $4 i32.const -2 i32.and @@ -24350,8 +24132,9 @@ end end i32.const 0 + local.set $3 end - local.tee $3 + local.get $3 if local.get $3 local.get $2 @@ -24460,64 +24243,63 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $1 - i64.reinterpret_f64 - local.tee $5 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $5 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $6 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i64.reinterpret_f64 + local.tee $5 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $6 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $3 if - local.get $3 local.get $3 i32.load offset=12 local.tee $4 @@ -24532,7 +24314,6 @@ f64.eq end br_if $__inlined_func$~lib/map/Map#find - drop local.get $4 i32.const -2 i32.and @@ -24541,8 +24322,9 @@ end end i32.const 0 + local.set $3 end - local.tee $3 + local.get $3 if local.get $3 local.get $2 diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index bd6eddcaa3..29fc606a72 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -1,12 +1,11 @@ (module (type $f64_=>_f64 (func (param f64) (result f64))) (type $f64_f64_f64_=>_i32 (func (param f64 f64 f64) (result i32))) - (type $f32_f32_f32_=>_i32 (func (param f32 f32 f32) (result i32))) (type $f32_=>_f32 (func (param f32) (result f32))) + (type $f32_f32_f32_=>_i32 (func (param f32 f32 f32) (result i32))) (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) - (type $f64_f64_f64_f64_=>_i32 (func (param f64 f64 f64 f64) (result i32))) (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) - (type $f32_f32_f32_f32_=>_i32 (func (param f32 f32 f32 f32) (result i32))) + (type $f64_f64_f64_f64_=>_i32 (func (param f64 f64 f64 f64) (result i32))) (type $none_=>_f64 (func (result f64))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) @@ -14,6 +13,7 @@ (type $f64_i32_=>_f64 (func (param f64 i32) (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i64_=>_i32 (func (param i64) (result i32))) + (type $f32_f32_f32_f32_=>_i32 (func (param f32 f32 f32 f32) (result i32))) (type $i64_=>_none (func (param i64))) (type $f64_f64_i32_=>_f64 (func (param f64 f64 i32) (result f64))) (type $f64_=>_none (func (param f64))) @@ -567,15 +567,14 @@ (func $~lib/math/NativeMath.acos (param $0 f64) (result f64) (local $1 f64) (local $2 i32) - (local $3 f64) - (local $4 i32) - (local $5 f64) + (local $3 i32) + (local $4 f64) local.get $0 i64.reinterpret_f64 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $4 + local.tee $3 i32.const 2147483647 i32.and local.tee $2 @@ -591,7 +590,7 @@ i32.or i32.eqz if - local.get $4 + local.get $3 i32.const 31 i32.shr_u if @@ -673,7 +672,7 @@ f64.sub return end - local.get $4 + local.get $3 i32.const 31 i32.shr_u if @@ -742,16 +741,15 @@ f64.const 0.5 f64.mul f64.sub - local.tee $1 + local.tee $0 f64.sqrt - local.tee $5 + local.tee $4 i64.reinterpret_f64 i64.const -4294967296 i64.and f64.reinterpret_i64 - local.tee $3 - local.get $1 - local.tee $0 + local.tee $1 + local.get $0 local.get $0 local.get $0 local.get $0 @@ -792,15 +790,15 @@ f64.const 1 f64.add f64.div - local.get $5 + local.get $4 f64.mul local.get $0 - local.get $3 - local.get $3 + local.get $1 + local.get $1 f64.mul f64.sub - local.get $5 - local.get $3 + local.get $4 + local.get $1 f64.add f64.div f64.add @@ -1830,8 +1828,8 @@ ) (func $~lib/math/NativeMath.asin (param $0 f64) (result f64) (local $1 f64) - (local $2 f64) - (local $3 i32) + (local $2 i32) + (local $3 f64) (local $4 i32) local.get $0 i64.reinterpret_f64 @@ -1841,14 +1839,14 @@ local.tee $4 i32.const 2147483647 i32.and - local.tee $3 + local.tee $2 i32.const 1072693248 i32.ge_u if local.get $0 i64.reinterpret_f64 i32.wrap_i64 - local.get $3 + local.get $2 i32.const 1072693248 i32.sub i32.or @@ -1868,15 +1866,15 @@ f64.div return end - local.get $3 + local.get $2 i32.const 1071644672 i32.lt_u if - local.get $3 + local.get $2 i32.const 1048576 i32.ge_u i32.const 0 - local.get $3 + local.get $2 i32.const 1045430272 i32.lt_u select @@ -1940,11 +1938,10 @@ f64.const 0.5 f64.mul f64.sub - local.tee $1 - f64.sqrt - local.set $2 - local.get $1 local.tee $0 + f64.sqrt + local.set $1 + local.get $0 local.get $0 local.get $0 local.get $0 @@ -1985,15 +1982,15 @@ f64.const 1 f64.add f64.div - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.const 1072640819 i32.ge_u if (result f64) f64.const 1.5707963267948966 - local.get $2 - local.get $2 - local.get $0 + local.get $1 + local.get $1 + local.get $3 f64.mul f64.add f64.const 2 @@ -2003,14 +2000,14 @@ f64.sub else f64.const 0.7853981633974483 - local.get $2 - local.get $2 + local.get $1 + local.get $1 f64.add - local.get $0 + local.get $3 f64.mul f64.const 6.123233995736766e-17 + local.get $0 local.get $1 - local.get $2 i64.reinterpret_f64 i64.const -4294967296 i64.and @@ -2019,7 +2016,7 @@ local.get $0 f64.mul f64.sub - local.get $2 + local.get $1 local.get $0 f64.add f64.div @@ -2845,7 +2842,7 @@ (local $8 i64) (local $9 i32) (local $10 i32) - block $__inlined_func$~lib/math/NativeMath.atan2 (result f64) + block $__inlined_func$~lib/math/NativeMath.atan2 i32.const 1 local.get $0 local.tee $4 @@ -2859,6 +2856,7 @@ local.get $1 local.get $4 f64.add + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end local.get $4 @@ -2867,92 +2865,90 @@ i64.const 32 i64.shr_u i32.wrap_i64 - local.set $5 + local.set $9 local.get $8 i32.wrap_i64 - local.set $9 local.get $1 i64.reinterpret_f64 local.tee $8 i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $6 - i32.const 1072693248 - i32.sub + local.set $5 local.get $8 i32.wrap_i64 local.tee $10 + local.get $5 + i32.const 1072693248 + i32.sub i32.or i32.eqz if local.get $4 call $~lib/math/NativeMath.atan + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end - local.get $6 + local.get $5 i32.const 30 i32.shr_u i32.const 2 i32.and - local.get $5 + local.get $9 i32.const 31 i32.shr_u i32.or - local.set $7 - local.get $6 - i32.const 2147483647 - i32.and local.set $6 local.get $5 i32.const 2147483647 i32.and - local.tee $5 + local.set $5 local.get $9 + i32.const 2147483647 + i32.and + local.tee $7 i32.or i32.eqz if block $break|0 block $case3|0 block $case2|0 - block $case0|0 - local.get $7 - br_table $case0|0 $case0|0 $case2|0 $case3|0 $break|0 - end - local.get $4 - br $__inlined_func$~lib/math/NativeMath.atan2 + local.get $6 + br_table $__inlined_func$~lib/math/NativeMath.atan2 $__inlined_func$~lib/math/NativeMath.atan2 $case2|0 $case3|0 $break|0 end f64.const 3.141592653589793 + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const -3.141592653589793 + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end end block $folding-inner0 - local.get $6 + local.get $5 local.get $10 i32.or i32.eqz br_if $folding-inner0 - local.get $6 + local.get $5 i32.const 2146435072 i32.eq if - local.get $5 + local.get $7 i32.const 2146435072 i32.eq if (result f64) f64.const 2.356194490192345 f64.const 0.7853981633974483 - local.get $7 + local.get $6 i32.const 2 i32.and select else f64.const 3.141592653589793 f64.const 0 - local.get $7 + local.get $6 i32.const 2 i32.and select @@ -2960,30 +2956,31 @@ local.tee $4 f64.neg local.get $4 - local.get $7 + local.get $6 i32.const 1 i32.and select + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end i32.const 1 - local.get $5 + local.get $7 i32.const 2146435072 i32.eq + local.get $7 local.get $5 - local.get $6 i32.const 67108864 i32.add i32.gt_u select br_if $folding-inner0 - local.get $6 local.get $5 + local.get $7 i32.const 67108864 i32.add i32.gt_u i32.const 0 - local.get $7 + local.get $6 i32.const 2 i32.and select @@ -3002,14 +2999,14 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $7 + local.get $6 br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 end - local.get $4 br $__inlined_func$~lib/math/NativeMath.atan2 end local.get $4 f64.neg + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end f64.const 3.141592653589793 @@ -3017,6 +3014,7 @@ f64.const 1.2246467991473532e-16 f64.sub f64.sub + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end local.get $4 @@ -3024,17 +3022,20 @@ f64.sub f64.const 3.141592653589793 f64.sub + local.set $4 br $__inlined_func$~lib/math/NativeMath.atan2 end unreachable end f64.const -1.5707963267948966 f64.const 1.5707963267948966 - local.get $7 + local.get $6 i32.const 1 i32.and select + local.set $4 end + local.get $4 local.get $2 local.get $3 call $std/math/check @@ -3049,14 +3050,11 @@ i32.const 0 end ) - (func $std/math/test_atan2f (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) + (func $~lib/math/NativeMathf.atan2 (param $0 f32) (param $1 f32) (result f32) + (local $2 i32) + (local $3 i32) (local $4 i32) - (local $5 i32) - (local $6 i32) - block $__inlined_func$~lib/math/NativeMathf.atan2 (result f32) - local.get $1 - local.get $0 - f32.add + block $folding-inner0 i32.const 1 local.get $0 local.get $0 @@ -3065,131 +3063,121 @@ local.get $1 f32.ne select - br_if $__inlined_func$~lib/math/NativeMathf.atan2 - drop + if + local.get $1 + local.get $0 + f32.add + return + end local.get $0 i32.reinterpret_f32 - local.set $5 + local.set $3 local.get $1 i32.reinterpret_f32 - local.tee $6 + local.tee $4 i32.const 1065353216 i32.eq if local.get $0 call $~lib/math/NativeMathf.atan - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end - local.get $6 + local.get $4 i32.const 30 i32.shr_u i32.const 2 i32.and - local.get $5 + local.get $3 i32.const 31 i32.shr_u i32.or - local.set $4 - local.get $6 + local.set $2 + local.get $4 i32.const 2147483647 i32.and - local.set $6 - local.get $5 + local.set $4 + local.get $3 i32.const 2147483647 i32.and - local.tee $5 + local.tee $3 i32.eqz if block $break|0 block $case3|0 block $case2|0 block $case1|0 - local.get $4 + local.get $2 br_table $case1|0 $case1|0 $case2|0 $case3|0 $break|0 end local.get $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end f32.const 3.1415927410125732 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end f32.const -3.1415927410125732 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end end - f32.const -1.5707963705062866 - f32.const 1.5707963705062866 local.get $4 - i32.const 1 - i32.and - select - local.get $6 i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.atan2 - drop - local.get $6 + br_if $folding-inner0 + local.get $4 i32.const 2139095040 i32.eq if - local.get $5 + local.get $3 i32.const 2139095040 i32.eq if (result f32) f32.const 2.356194496154785 f32.const 0.7853981852531433 - local.get $4 + local.get $2 i32.const 2 i32.and select local.tee $0 f32.neg local.get $0 - local.get $4 + local.get $2 i32.const 1 i32.and select else f32.const 3.1415927410125732 f32.const 0 - local.get $4 + local.get $2 i32.const 2 i32.and select local.tee $0 f32.neg local.get $0 - local.get $4 + local.get $2 i32.const 1 i32.and select end - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end - f32.const -1.5707963705062866 - f32.const 1.5707963705062866 - local.get $4 - i32.const 1 - i32.and - select i32.const 1 - local.get $5 + local.get $3 i32.const 2139095040 i32.eq - local.get $5 - local.get $6 + local.get $3 + local.get $4 i32.const 218103808 i32.add i32.gt_u select - br_if $__inlined_func$~lib/math/NativeMathf.atan2 - drop - local.get $6 - local.get $5 + br_if $folding-inner0 + local.get $4 + local.get $3 i32.const 218103808 i32.add i32.gt_u i32.const 0 - local.get $4 + local.get $2 i32.const 2 i32.and select @@ -3208,171 +3196,159 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $4 + local.get $2 br_table $case0|1 $case1|1 $case2|1 $case3|1 $break|1 end local.get $0 - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end local.get $0 f32.neg - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end f32.const 3.1415927410125732 local.get $0 f32.const -8.742277657347586e-08 f32.sub f32.sub - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end local.get $0 f32.const -8.742277657347586e-08 f32.sub f32.const 3.1415927410125732 f32.sub - br $__inlined_func$~lib/math/NativeMathf.atan2 + return end unreachable end + f32.const -1.5707963705062866 + f32.const 1.5707963705062866 local.get $2 - local.get $3 - call $std/math/check + i32.const 1 + i32.and + select ) - (func $std/math/test_cbrt (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $~lib/math/NativeMath.cbrt (param $0 f64) (result f64) + (local $1 f64) + (local $2 i32) (local $3 f64) - (local $4 f64) - (local $5 i32) - (local $6 f64) - (local $7 i64) - block $__inlined_func$~lib/math/NativeMath.cbrt (result f64) + (local $4 i64) + local.get $0 + i64.reinterpret_f64 + local.tee $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const 2147483647 + i32.and + local.tee $2 + i32.const 2146435072 + i32.ge_u + if local.get $0 - local.tee $3 + local.get $0 + f64.add + return + end + local.get $2 + i32.const 1048576 + i32.lt_u + if (result i32) + local.get $0 + f64.const 18014398509481984 + f64.mul i64.reinterpret_f64 - local.tee $7 + local.tee $4 i64.const 32 i64.shr_u i32.wrap_i64 i32.const 2147483647 i32.and - local.tee $5 - i32.const 2146435072 - i32.ge_u + local.tee $2 + i32.eqz if - local.get $3 - local.get $3 - f64.add - br $__inlined_func$~lib/math/NativeMath.cbrt - end - local.get $5 - i32.const 1048576 - i32.lt_u - if (result i32) - local.get $3 - local.get $3 - f64.const 18014398509481984 - f64.mul - i64.reinterpret_f64 - local.tee $7 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const 2147483647 - i32.and - local.tee $5 - i32.eqz - br_if $__inlined_func$~lib/math/NativeMath.cbrt - drop - local.get $5 - i32.const 3 - i32.div_u - i32.const 696219795 - i32.add - else - local.get $5 - i32.const 3 - i32.div_u - i32.const 715094163 - i32.add + local.get $0 + return end - local.set $5 - local.get $7 - i64.const -9223372036854775808 - i64.and - local.get $5 - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - f64.reinterpret_i64 - local.tee $6 - local.get $6 - f64.mul - local.get $6 - local.get $3 - f64.div - f64.mul - local.set $4 - local.get $3 - local.get $6 - local.get $4 - local.get $4 - f64.const 1.6214297201053545 - f64.mul - f64.const -1.8849797954337717 - f64.add - f64.mul - f64.const 1.87595182427177 - f64.add - local.get $4 - local.get $4 - f64.mul - local.get $4 - f64.mul - local.get $4 - f64.const 0.14599619288661245 - f64.mul - f64.const -0.758397934778766 - f64.add - f64.mul - f64.add - f64.mul - i64.reinterpret_f64 - i64.const 2147483648 - i64.add - i64.const -1073741824 - i64.and - f64.reinterpret_i64 - local.tee $4 - local.get $4 - f64.mul - f64.div - local.set $3 - local.get $4 - local.get $4 - local.get $3 - local.get $4 - f64.sub - local.get $4 - local.get $4 - f64.add - local.get $3 - f64.add - f64.div - f64.mul - f64.add - end - local.get $1 - local.get $2 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/Math/cbrt - local.get $1 local.get $2 - call $std/math/check + i32.const 3 + i32.div_u + i32.const 696219795 + i32.add else - i32.const 0 + local.get $2 + i32.const 3 + i32.div_u + i32.const 715094163 + i32.add end + local.set $2 + local.get $4 + i64.const -9223372036854775808 + i64.and + local.get $2 + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + local.tee $3 + local.get $3 + f64.mul + local.get $3 + local.get $0 + f64.div + f64.mul + local.set $1 + local.get $0 + local.get $3 + local.get $1 + local.get $1 + f64.const 1.6214297201053545 + f64.mul + f64.const -1.8849797954337717 + f64.add + f64.mul + f64.const 1.87595182427177 + f64.add + local.get $1 + local.get $1 + f64.mul + local.get $1 + f64.mul + local.get $1 + f64.const 0.14599619288661245 + f64.mul + f64.const -0.758397934778766 + f64.add + f64.mul + f64.add + f64.mul + i64.reinterpret_f64 + i64.const 2147483648 + i64.add + i64.const -1073741824 + i64.and + f64.reinterpret_i64 + local.tee $1 + local.get $1 + f64.mul + f64.div + local.set $0 + local.get $1 + local.get $1 + local.get $0 + local.get $1 + f64.sub + local.get $1 + local.get $1 + f64.add + local.get $0 + f64.add + f64.div + f64.mul + f64.add ) (func $std/math/test_cbrtf (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 f64) @@ -4438,16 +4414,6 @@ i32.and i64.extend_i32_s local.set $6 - local.get $2 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $2 - i64.load offset=8 - local.set $4 f64.const 8.515303950216386e-20 local.get $0 f64.promote_f32 @@ -4458,12 +4424,21 @@ i32.const 8388608 i32.or i64.extend_i32_s - local.tee $3 + local.tee $4 local.get $2 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $2 i64.load local.get $6 i64.shl - local.get $4 + local.get $2 + i64.load offset=8 + local.tee $3 i64.const 64 local.get $6 i64.sub @@ -4474,7 +4449,7 @@ i64.const 32 i64.gt_u if (result i64) - local.get $4 + local.get $3 local.get $6 i64.const 32 i64.sub @@ -4487,13 +4462,13 @@ i64.shr_u i64.or else - local.get $4 + local.get $3 i64.const 32 local.get $6 i64.sub i64.shr_u end - local.get $3 + local.get $4 i64.mul i64.const 32 i64.shr_u @@ -4501,7 +4476,7 @@ local.tee $4 i64.const 2 i64.shl - local.tee $3 + local.tee $6 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y @@ -4509,7 +4484,7 @@ local.get $4 i64.const 62 i64.shr_u - local.get $3 + local.get $6 i64.const 63 i64.shr_u i64.add @@ -4618,8 +4593,8 @@ ) (func $~lib/math/NativeMath.expm1 (param $0 f64) (result f64) (local $1 f64) - (local $2 i32) - (local $3 f64) + (local $2 f64) + (local $3 i32) (local $4 f64) (local $5 i32) (local $6 f64) @@ -4687,7 +4662,7 @@ i32.const 1072734898 i32.lt_u select - local.tee $2 + local.tee $3 f64.convert_i32_s local.tee $1 f64.const 0.6931471803691238 @@ -4718,7 +4693,7 @@ local.get $0 f64.const 0.5 f64.mul - local.tee $3 + local.tee $2 f64.mul local.tee $1 local.get $1 @@ -4747,28 +4722,28 @@ f64.mul f64.add local.tee $6 - local.get $3 + local.get $2 f64.mul f64.sub - local.set $3 + local.set $2 local.get $1 local.get $6 - local.get $3 + local.get $2 f64.sub f64.const 6 local.get $0 - local.get $3 + local.get $2 f64.mul f64.sub f64.div f64.mul - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.eqz if local.get $0 local.get $0 - local.get $3 + local.get $2 f64.mul local.get $1 f64.sub @@ -4776,7 +4751,7 @@ return end local.get $0 - local.get $3 + local.get $2 local.get $4 f64.sub f64.mul @@ -4785,7 +4760,7 @@ local.get $1 f64.sub local.set $1 - local.get $2 + local.get $3 i32.const -1 i32.eq if @@ -4798,7 +4773,7 @@ f64.sub return end - local.get $2 + local.get $3 i32.const 1 i32.eq if @@ -4824,7 +4799,7 @@ f64.add return end - local.get $2 + local.get $3 i64.extend_i32_s i64.const 1023 i64.add @@ -4833,10 +4808,10 @@ f64.reinterpret_i64 local.set $4 i32.const 1 - local.get $2 + local.get $3 i32.const 56 i32.gt_s - local.get $2 + local.get $3 i32.const 0 i32.lt_s select @@ -4854,7 +4829,7 @@ local.get $0 local.get $4 f64.mul - local.get $2 + local.get $3 i32.const 1024 i32.eq select @@ -4865,22 +4840,22 @@ local.get $0 f64.const 1 i64.const 1023 - local.get $2 + local.get $3 i64.extend_i32_s i64.sub i64.const 52 i64.shl f64.reinterpret_i64 - local.tee $3 + local.tee $2 f64.sub local.get $1 f64.sub f64.const 1 local.get $1 - local.get $3 + local.get $2 f64.add f64.sub - local.get $2 + local.get $3 i32.const 20 i32.lt_s select @@ -5182,8 +5157,8 @@ ) (func $~lib/math/NativeMathf.expm1 (param $0 f32) (result f32) (local $1 f32) - (local $2 i32) - (local $3 f32) + (local $2 f32) + (local $3 i32) (local $4 f32) (local $5 i32) (local $6 i32) @@ -5246,7 +5221,7 @@ i32.const 1065686418 i32.lt_u select - local.tee $2 + local.tee $3 f32.convert_i32_s local.tee $1 f32.const 0.6931381225585938 @@ -5278,7 +5253,7 @@ local.get $0 f32.const 0.5 f32.mul - local.tee $3 + local.tee $2 f32.mul local.tee $1 local.get $1 @@ -5290,28 +5265,28 @@ f32.const 1 f32.add local.tee $7 - local.get $3 + local.get $2 f32.mul f32.sub - local.set $3 + local.set $2 local.get $1 local.get $7 - local.get $3 + local.get $2 f32.sub f32.const 6 local.get $0 - local.get $3 + local.get $2 f32.mul f32.sub f32.div f32.mul - local.set $3 - local.get $2 + local.set $2 + local.get $3 i32.eqz if local.get $0 local.get $0 - local.get $3 + local.get $2 f32.mul local.get $1 f32.sub @@ -5319,7 +5294,7 @@ return end local.get $0 - local.get $3 + local.get $2 local.get $4 f32.sub f32.mul @@ -5328,7 +5303,7 @@ local.get $1 f32.sub local.set $1 - local.get $2 + local.get $3 i32.const -1 i32.eq if @@ -5341,7 +5316,7 @@ f32.sub return end - local.get $2 + local.get $3 i32.const 1 i32.eq if @@ -5367,7 +5342,7 @@ f32.add return end - local.get $2 + local.get $3 i32.const 127 i32.add i32.const 23 @@ -5375,10 +5350,10 @@ f32.reinterpret_i32 local.set $4 i32.const 1 - local.get $2 + local.get $3 i32.const 56 i32.gt_s - local.get $2 + local.get $3 i32.const 0 i32.lt_s select @@ -5396,7 +5371,7 @@ local.get $0 local.get $4 f32.mul - local.get $2 + local.get $3 i32.const 128 i32.eq select @@ -5407,21 +5382,21 @@ local.get $0 f32.const 1 i32.const 127 - local.get $2 + local.get $3 i32.sub i32.const 23 i32.shl f32.reinterpret_i32 - local.tee $3 + local.tee $2 f32.sub local.get $1 f32.sub f32.const 1 local.get $1 - local.get $3 + local.get $2 f32.add f32.sub - local.get $2 + local.get $3 i32.const 20 i32.lt_s select @@ -5900,174 +5875,174 @@ local.get $2 call $std/math/check ) - (func $std/math/test_hypot (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $~lib/math/NativeMath.hypot (param $0 f64) (param $1 f64) (result f64) + (local $2 i64) + (local $3 i64) (local $4 i64) - (local $5 i64) - (local $6 i64) + (local $5 f64) + (local $6 i32) (local $7 f64) - (local $8 f64) - (local $9 i32) + (local $8 i32) + (local $9 f64) (local $10 f64) - (local $11 i32) - (local $12 f64) - (local $13 f64) - block $__inlined_func$~lib/math/NativeMath.hypot (result f64) + (local $11 f64) + local.get $1 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $2 + local.get $0 + i64.reinterpret_f64 + i64.const 9223372036854775807 + i64.and + local.tee $3 + i64.gt_u + if + local.get $3 + local.get $2 + local.set $3 + local.set $2 + end + local.get $2 + f64.reinterpret_i64 + local.set $1 + local.get $2 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $6 + i32.const 2047 + i32.eq + if local.get $1 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $4 + return + end + local.get $3 + f64.reinterpret_i64 + local.set $0 + i64.const 0 + local.get $2 + local.get $3 + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $8 + i32.const 2047 + i32.eq + select + i64.eqz + if local.get $0 - i64.reinterpret_f64 - i64.const 9223372036854775807 - i64.and - local.tee $5 - i64.gt_u - if - local.get $5 - local.get $4 - local.set $5 - local.set $4 - end - local.get $4 - f64.reinterpret_i64 - local.tee $1 - local.get $4 - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $9 - i32.const 2047 - i32.eq - br_if $__inlined_func$~lib/math/NativeMath.hypot - drop - local.get $5 - f64.reinterpret_i64 - local.tee $0 - i64.const 0 - local.get $4 - local.get $5 - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $11 - i32.const 2047 - i32.eq - select - i64.eqz - br_if $__inlined_func$~lib/math/NativeMath.hypot - drop + return + end + local.get $8 + local.get $6 + i32.sub + i32.const 64 + i32.gt_s + if local.get $0 local.get $1 f64.add - local.get $11 - local.get $9 - i32.sub - i32.const 64 - i32.gt_s - br_if $__inlined_func$~lib/math/NativeMath.hypot - drop - f64.const 1 - local.set $10 - local.get $11 - i32.const 1533 - i32.gt_u + return + end + f64.const 1 + local.set $7 + local.get $8 + i32.const 1533 + i32.gt_u + if (result f64) + f64.const 5260135901548373507240989e186 + local.set $7 + local.get $1 + f64.const 1.90109156629516e-211 + f64.mul + local.set $1 + local.get $0 + f64.const 1.90109156629516e-211 + f64.mul + else + local.get $6 + i32.const 573 + i32.lt_u if (result f64) - f64.const 5260135901548373507240989e186 - local.set $10 - local.get $1 f64.const 1.90109156629516e-211 + local.set $7 + local.get $1 + f64.const 5260135901548373507240989e186 f64.mul local.set $1 local.get $0 - f64.const 1.90109156629516e-211 + f64.const 5260135901548373507240989e186 f64.mul else - local.get $9 - i32.const 573 - i32.lt_u - if (result f64) - f64.const 1.90109156629516e-211 - local.set $10 - local.get $1 - f64.const 5260135901548373507240989e186 - f64.mul - local.set $1 - local.get $0 - f64.const 5260135901548373507240989e186 - f64.mul - else - local.get $0 - end + local.get $0 end - local.tee $0 - local.get $0 - local.get $0 - f64.const 134217729 - f64.mul - local.tee $13 - f64.sub - local.get $13 - f64.add - local.tee $13 - f64.sub - local.set $8 - local.get $1 - local.get $1 - local.get $1 - f64.const 134217729 - f64.mul - local.tee $12 - f64.sub - local.get $12 - f64.add - local.tee $12 - f64.sub - local.set $7 - local.get $10 - local.get $12 - local.get $12 - f64.mul - local.get $1 - local.get $1 - f64.mul - local.tee $1 - f64.sub - local.get $12 - local.get $12 - f64.add - local.get $7 - f64.add - local.get $7 - f64.mul - f64.add - local.get $13 - local.get $13 - f64.mul - local.get $0 - local.get $0 - f64.mul - local.tee $0 - f64.sub - local.get $13 - local.get $13 - f64.add - local.get $8 - f64.add - local.get $8 - f64.mul - f64.add - f64.add - local.get $1 - f64.add - local.get $0 - f64.add - f64.sqrt - f64.mul end - local.get $2 - local.get $3 - call $std/math/check + local.tee $0 + local.get $0 + local.get $0 + f64.const 134217729 + f64.mul + local.tee $11 + f64.sub + local.get $11 + f64.add + local.tee $10 + f64.sub + local.set $5 + local.get $1 + local.get $1 + local.get $1 + f64.const 134217729 + f64.mul + local.tee $11 + f64.sub + local.get $11 + f64.add + local.tee $9 + f64.sub + local.set $11 + local.get $7 + local.get $9 + local.get $9 + f64.mul + local.get $1 + local.get $1 + f64.mul + local.tee $1 + f64.sub + local.get $9 + local.get $9 + f64.add + local.get $11 + f64.add + local.get $11 + f64.mul + f64.add + local.get $10 + local.get $10 + f64.mul + local.get $0 + local.get $0 + f64.mul + local.tee $0 + f64.sub + local.get $10 + local.get $10 + f64.add + local.get $5 + f64.add + local.get $5 + f64.mul + f64.add + f64.add + local.get $1 + f64.add + local.get $0 + f64.add + f64.sqrt + f64.mul ) (func $std/math/test_hypotf (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) (local $4 i32) @@ -6176,378 +6151,363 @@ local.get $3 call $std/math/check ) - (func $std/math/test_log10 (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $~lib/math/NativeMath.log10 (param $0 f64) (result f64) + (local $1 i32) + (local $2 f64) (local $3 f64) - (local $4 i32) - (local $5 f64) + (local $4 f64) + (local $5 i64) (local $6 f64) (local $7 f64) - (local $8 i64) - (local $9 f64) - (local $10 i32) - (local $11 f64) - block $__inlined_func$~lib/math/NativeMath.log10 (result f64) - i32.const 1 - local.get $0 - local.tee $3 - i64.reinterpret_f64 - local.tee $8 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.tee $4 - i32.const 31 - i32.shr_u - local.get $4 - i32.const 1048576 - i32.lt_u - select + (local $8 i32) + i32.const 1 + local.get $0 + i64.reinterpret_f64 + local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.tee $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 1048576 + i32.lt_u + select + if + local.get $5 + i64.const 1 + i64.shl + i64.eqz if f64.const -1 - local.get $3 - local.get $3 + local.get $0 + local.get $0 f64.mul f64.div - local.get $8 - i64.const 1 - i64.shl - i64.eqz - br_if $__inlined_func$~lib/math/NativeMath.log10 - drop - local.get $3 - local.get $3 + return + end + local.get $1 + i32.const 31 + i32.shr_u + if + local.get $0 + local.get $0 f64.sub f64.const 0 f64.div - local.get $4 - i32.const 31 - i32.shr_u - br_if $__inlined_func$~lib/math/NativeMath.log10 - drop - i32.const -54 - local.set $10 - local.get $3 - f64.const 18014398509481984 - f64.mul - i64.reinterpret_f64 - local.tee $8 - i64.const 32 - i64.shr_u - i32.wrap_i64 - local.set $4 + return + end + i32.const -54 + local.set $8 + local.get $0 + f64.const 18014398509481984 + f64.mul + i64.reinterpret_f64 + local.tee $5 + i64.const 32 + i64.shr_u + i32.wrap_i64 + local.set $1 + else + local.get $1 + i32.const 2146435072 + i32.ge_u + if + local.get $0 + return else - local.get $4 - i32.const 2146435072 - i32.ge_u + local.get $5 + i64.const 32 + i64.shl + i64.const 1 + local.get $1 + i32.const 1072693248 + i32.eq + select + i64.eqz if - local.get $3 - br $__inlined_func$~lib/math/NativeMath.log10 - else f64.const 0 - local.get $8 - i64.const 32 - i64.shl - i64.const 1 - local.get $4 - i32.const 1072693248 - i32.eq - select - i64.eqz - br_if $__inlined_func$~lib/math/NativeMath.log10 - drop + return end end - local.get $8 - i64.const 4294967295 - i64.and - local.get $4 - i32.const 614242 - i32.add - local.tee $4 - i32.const 1048575 - i32.and - i32.const 1072079006 - i32.add - i64.extend_i32_u - i64.const 32 - i64.shl - i64.or - f64.reinterpret_i64 - f64.const 1 - f64.sub - local.tee $3 - f64.const 0.5 - f64.mul - local.get $3 - f64.mul - local.set $6 - local.get $3 - local.get $3 - f64.const 2 - f64.add - f64.div - local.tee $9 - local.get $9 - f64.mul - local.tee $7 - local.get $7 - f64.mul - local.set $5 - local.get $3 - local.get $3 - local.get $6 - f64.sub - i64.reinterpret_f64 - i64.const -4294967296 - i64.and - f64.reinterpret_i64 - local.tee $11 - f64.sub - local.get $6 - f64.sub - local.get $9 - local.get $6 - local.get $7 - local.get $5 - local.get $5 - local.get $5 - f64.const 0.14798198605116586 - f64.mul - f64.const 0.1818357216161805 - f64.add - f64.mul - f64.const 0.2857142874366239 - f64.add - f64.mul - f64.const 0.6666666666666735 - f64.add - f64.mul - local.get $5 - local.get $5 - local.get $5 - f64.const 0.15313837699209373 - f64.mul - f64.const 0.22222198432149784 - f64.add - f64.mul - f64.const 0.3999999999940942 - f64.add - f64.mul - f64.add - f64.add - f64.mul - f64.add - local.set $3 - local.get $4 - i32.const 20 - i32.shr_u - i32.const 1023 - i32.sub - local.get $10 - i32.add - f64.convert_i32_s - local.tee $5 - f64.const 0.30102999566361177 - f64.mul - local.tee $6 - local.get $11 - f64.const 0.4342944818781689 - f64.mul - local.tee $9 - f64.add - local.set $7 - local.get $5 - f64.const 3.694239077158931e-13 - f64.mul - local.get $3 - local.get $11 - f64.add - f64.const 2.5082946711645275e-11 - f64.mul - f64.add - local.get $3 - f64.const 0.4342944818781689 - f64.mul - f64.add - local.get $6 - local.get $7 - f64.sub - local.get $9 - f64.add - f64.add - local.get $7 - f64.add end + local.get $5 + i64.const 4294967295 + i64.and local.get $1 + i32.const 614242 + i32.add + local.tee $1 + i32.const 1048575 + i32.and + i32.const 1072079006 + i32.add + i64.extend_i32_u + i64.const 32 + i64.shl + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub + local.tee $0 + f64.const 0.5 + f64.mul + local.get $0 + f64.mul + local.set $3 + local.get $0 + local.get $0 + f64.const 2 + f64.add + f64.div + local.tee $6 + local.get $6 + f64.mul + local.tee $4 + local.get $4 + f64.mul + local.set $2 + local.get $0 + local.get $0 + local.get $3 + f64.sub + i64.reinterpret_f64 + i64.const -4294967296 + i64.and + f64.reinterpret_i64 + local.tee $7 + f64.sub + local.get $3 + f64.sub + local.get $6 + local.get $3 + local.get $4 local.get $2 - call $std/math/check - if (result i32) - local.get $0 - call $~lib/bindings/Math/log10 - local.get $1 - local.get $2 - call $std/math/check - else - i32.const 0 - end + local.get $2 + local.get $2 + f64.const 0.14798198605116586 + f64.mul + f64.const 0.1818357216161805 + f64.add + f64.mul + f64.const 0.2857142874366239 + f64.add + f64.mul + f64.const 0.6666666666666735 + f64.add + f64.mul + local.get $2 + local.get $2 + local.get $2 + f64.const 0.15313837699209373 + f64.mul + f64.const 0.22222198432149784 + f64.add + f64.mul + f64.const 0.3999999999940942 + f64.add + f64.mul + f64.add + f64.add + f64.mul + f64.add + local.set $0 + local.get $1 + i32.const 20 + i32.shr_u + i32.const 1023 + i32.sub + local.get $8 + i32.add + f64.convert_i32_s + local.tee $2 + f64.const 0.30102999566361177 + f64.mul + local.tee $3 + local.get $7 + f64.const 0.4342944818781689 + f64.mul + local.tee $6 + f64.add + local.set $4 + local.get $2 + f64.const 3.694239077158931e-13 + f64.mul + local.get $0 + local.get $7 + f64.add + f64.const 2.5082946711645275e-11 + f64.mul + f64.add + local.get $0 + f64.const 0.4342944818781689 + f64.mul + f64.add + local.get $3 + local.get $4 + f64.sub + local.get $6 + f64.add + f64.add + local.get $4 + f64.add ) - (func $std/math/test_log10f (param $0 f32) (param $1 f32) (param $2 f32) (result i32) - (local $3 i32) + (func $~lib/math/NativeMathf.log10 (param $0 f32) (result f32) + (local $1 i32) + (local $2 f32) + (local $3 f32) (local $4 f32) - (local $5 i32) - (local $6 f32) + (local $5 f32) + (local $6 i32) (local $7 f32) - (local $8 f32) - (local $9 f32) - block $__inlined_func$~lib/math/NativeMathf.log10 (result f32) + i32.const 1 + local.get $0 + i32.reinterpret_f32 + local.tee $1 + i32.const 31 + i32.shr_u + local.get $1 + i32.const 8388608 + i32.lt_u + select + if + local.get $1 i32.const 1 - local.get $0 - i32.reinterpret_f32 - local.tee $3 - i32.const 31 - i32.shr_u - local.get $3 - i32.const 8388608 - i32.lt_u - select + i32.shl + i32.eqz if f32.const -1 local.get $0 local.get $0 f32.mul f32.div - local.get $3 - i32.const 1 - i32.shl - i32.eqz - br_if $__inlined_func$~lib/math/NativeMathf.log10 - drop + return + end + local.get $1 + i32.const 31 + i32.shr_u + if local.get $0 local.get $0 f32.sub f32.const 0 f32.div - local.get $3 - i32.const 31 - i32.shr_u - br_if $__inlined_func$~lib/math/NativeMathf.log10 - drop - i32.const -25 - local.set $5 + return + end + i32.const -25 + local.set $6 + local.get $0 + f32.const 33554432 + f32.mul + i32.reinterpret_f32 + local.set $1 + else + local.get $1 + i32.const 2139095040 + i32.ge_u + if local.get $0 - f32.const 33554432 - f32.mul - i32.reinterpret_f32 - local.set $3 + return else - local.get $3 - i32.const 2139095040 - i32.ge_u + local.get $1 + i32.const 1065353216 + i32.eq if - local.get $0 - br $__inlined_func$~lib/math/NativeMathf.log10 - else f32.const 0 - local.get $3 - i32.const 1065353216 - i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.log10 - drop + return end end - local.get $3 - i32.const 4913933 - i32.add - local.tee $3 - i32.const 8388607 - i32.and - i32.const 1060439283 - i32.add - f32.reinterpret_i32 - f32.const 1 - f32.sub - local.tee $0 - local.get $0 - f32.const 2 - f32.add - f32.div - local.tee $6 - local.get $6 - f32.mul - local.tee $7 - local.get $7 - f32.mul - local.set $4 - local.get $3 - i32.const 23 - i32.shr_u - i32.const 127 - i32.sub - local.get $5 - i32.add - f32.convert_i32_s - local.tee $9 - f32.const 7.903415166765626e-07 - f32.mul - local.get $0 - local.get $0 - local.get $0 - f32.const 0.5 - f32.mul - local.get $0 - f32.mul - local.tee $0 - f32.sub - i32.reinterpret_f32 - i32.const -4096 - i32.and - f32.reinterpret_i32 - local.tee $8 - f32.sub - local.get $0 - f32.sub - local.get $6 - local.get $0 - local.get $7 - local.get $4 - f32.const 0.2849878668785095 - f32.mul - f32.const 0.6666666269302368 - f32.add - f32.mul - local.get $4 - local.get $4 - f32.const 0.24279078841209412 - f32.mul - f32.const 0.40000972151756287 - f32.add - f32.mul - f32.add - f32.add - f32.mul - f32.add - local.tee $0 - local.get $8 - f32.add - f32.const -3.168997136526741e-05 - f32.mul - f32.add - local.get $0 - f32.const 0.434326171875 - f32.mul - f32.add - local.get $8 - f32.const 0.434326171875 - f32.mul - f32.add - local.get $9 - f32.const 0.3010292053222656 - f32.mul - f32.add end local.get $1 + i32.const 4913933 + i32.add + local.tee $1 + i32.const 8388607 + i32.and + i32.const 1060439283 + i32.add + f32.reinterpret_i32 + f32.const 1 + f32.sub + local.tee $0 + local.get $0 + f32.const 2 + f32.add + f32.div + local.tee $3 + local.get $3 + f32.mul + local.tee $4 + local.get $4 + f32.mul + local.set $2 + local.get $1 + i32.const 23 + i32.shr_u + i32.const 127 + i32.sub + local.get $6 + i32.add + f32.convert_i32_s + local.tee $7 + f32.const 7.903415166765626e-07 + f32.mul + local.get $0 + local.get $0 + local.get $0 + f32.const 0.5 + f32.mul + local.get $0 + f32.mul + local.tee $0 + f32.sub + i32.reinterpret_f32 + i32.const -4096 + i32.and + f32.reinterpret_i32 + local.tee $5 + f32.sub + local.get $0 + f32.sub + local.get $3 + local.get $0 + local.get $4 local.get $2 - call $std/math/check + f32.const 0.2849878668785095 + f32.mul + f32.const 0.6666666269302368 + f32.add + f32.mul + local.get $2 + local.get $2 + f32.const 0.24279078841209412 + f32.mul + f32.const 0.40000972151756287 + f32.add + f32.mul + f32.add + f32.add + f32.mul + f32.add + local.tee $0 + local.get $5 + f32.add + f32.const -3.168997136526741e-05 + f32.mul + f32.add + local.get $0 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $5 + f32.const 0.434326171875 + f32.mul + f32.add + local.get $7 + f32.const 0.3010292053222656 + f32.mul + f32.add ) (func $~lib/math/NativeMath.log2 (param $0 f64) (result f64) (local $1 i64) @@ -7076,91 +7036,89 @@ i64.or end local.set $4 - loop $while-continue|0 - local.get $5 - local.get $6 - i64.gt_s - if - local.get $3 - local.get $4 - i64.ge_u - if (result i64) - local.get $0 - f64.const 0 - f64.mul - local.get $3 - local.get $4 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod - drop + block $folding-inner0 + loop $while-continue|0 + local.get $5 + local.get $6 + i64.gt_s + if local.get $3 local.get $4 + i64.ge_u + if (result i64) + local.get $3 + local.get $4 + i64.eq + br_if $folding-inner0 + local.get $3 + local.get $4 + i64.sub + else + local.get $3 + end + i64.const 1 + i64.shl + local.set $3 + local.get $5 + i64.const 1 i64.sub - else - local.get $3 + local.set $5 + br $while-continue|0 end - i64.const 1 - i64.shl - local.set $3 - local.get $5 - i64.const 1 - i64.sub - local.set $5 - br $while-continue|0 end - end - local.get $5 - local.get $3 - local.get $4 - i64.ge_u - if - local.get $0 - f64.const 0 - f64.mul + local.get $5 local.get $3 local.get $4 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod - drop + i64.ge_u + if + local.get $3 + local.get $4 + i64.eq + br_if $folding-inner0 + local.get $3 + local.get $4 + i64.sub + local.set $3 + end local.get $3 - local.get $4 + i64.const 11 + i64.shl + i64.clz + local.tee $5 i64.sub - local.set $3 - end - local.get $3 - i64.const 11 - i64.shl - i64.clz - local.tee $5 - i64.sub - local.set $4 - local.get $3 - local.get $5 - i64.shl - local.set $3 - local.get $4 - i64.const 0 - i64.gt_s - if (result i64) + local.set $4 local.get $3 - i64.const 4503599627370496 - i64.sub + local.get $5 + i64.shl + local.set $3 local.get $4 - i64.const 52 + i64.const 0 + i64.gt_s + if (result i64) + local.get $3 + i64.const 4503599627370496 + i64.sub + local.get $4 + i64.const 52 + i64.shl + i64.or + else + local.get $3 + i64.const 1 + local.get $4 + i64.sub + i64.shr_u + end + local.get $7 + i64.const 63 i64.shl i64.or - else - local.get $3 - i64.const 1 - local.get $4 - i64.sub - i64.shr_u + f64.reinterpret_i64 + br $__inlined_func$~lib/math/NativeMath.mod end - local.get $7 - i64.const 63 - i64.shl - i64.or - f64.reinterpret_i64 + local.get $0 + f64.const 0 + f64.mul end local.get $2 f64.const 0 @@ -7295,91 +7253,87 @@ i32.shl end local.set $3 - loop $while-continue|0 - local.get $4 - local.get $5 - i32.gt_s - if - local.get $2 - local.get $3 - i32.ge_u - if (result i32) + block $folding-inner0 + loop $while-continue|0 + local.get $4 + local.get $5 + i32.gt_s + if local.get $2 local.get $3 - i32.eq - if - local.get $0 - f32.const 0 - f32.mul - return + i32.ge_u + if (result i32) + local.get $2 + local.get $3 + i32.eq + br_if $folding-inner0 + local.get $2 + local.get $3 + i32.sub + else + local.get $2 end - local.get $2 - local.get $3 + i32.const 1 + i32.shl + local.set $2 + local.get $4 + i32.const 1 i32.sub - else - local.get $2 + local.set $4 + br $while-continue|0 end - i32.const 1 - i32.shl - local.set $2 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $while-continue|0 end - end - local.get $4 - local.get $2 - local.get $3 - i32.ge_u - if + local.get $4 local.get $2 local.get $3 - i32.eq + i32.ge_u if - local.get $0 - f32.const 0 - f32.mul - return + local.get $2 + local.get $3 + i32.eq + br_if $folding-inner0 + local.get $2 + local.get $3 + i32.sub + local.set $2 end local.get $2 - local.get $3 + i32.const 8 + i32.shl + i32.clz + local.tee $3 i32.sub - local.set $2 - end - local.get $2 - i32.const 8 - i32.shl - i32.clz - local.tee $3 - i32.sub - local.set $4 - local.get $2 - local.get $3 - i32.shl - local.set $2 - local.get $4 - i32.const 0 - i32.gt_s - if (result i32) + local.set $4 local.get $2 - i32.const 8388608 - i32.sub - local.get $4 - i32.const 23 + local.get $3 i32.shl - i32.or - else - local.get $2 - i32.const 1 + local.set $2 local.get $4 - i32.sub - i32.shr_u + i32.const 0 + i32.gt_s + if (result i32) + local.get $2 + i32.const 8388608 + i32.sub + local.get $4 + i32.const 23 + i32.shl + i32.or + else + local.get $2 + i32.const 1 + local.get $4 + i32.sub + i32.shr_u + end + local.get $6 + i32.or + f32.reinterpret_i32 + return end - local.get $6 - i32.or - f32.reinterpret_i32 + local.get $0 + f32.const 0 + f32.mul ) (func $~lib/math/NativeMath.pow (param $0 f64) (param $1 f64) (result f64) (local $2 i64) @@ -8138,12 +8092,11 @@ (func $~lib/math/NativeMathf.pow (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i64) - (local $7 i32) + (local $4 i32) + (local $5 i64) + (local $6 i32) + (local $7 f64) (local $8 f64) - (local $9 f64) local.get $1 f32.abs f32.const 2 @@ -8197,14 +8150,9 @@ end end block $~lib/util/math/powf_lut|inlined.0 (result f32) - local.get $0 - local.tee $4 - i32.reinterpret_f32 - local.set $2 local.get $1 - local.tee $0 i32.reinterpret_f32 - local.tee $5 + local.tee $4 i32.const 1 i32.shl i32.const 1 @@ -8212,7 +8160,9 @@ i32.const -16777217 i32.ge_u local.tee $3 - local.get $2 + local.get $0 + i32.reinterpret_f32 + local.tee $2 i32.const 8388608 i32.sub i32.const 2130706432 @@ -8222,7 +8172,7 @@ local.get $3 if f32.const 1 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.eqz @@ -8234,11 +8184,11 @@ i32.eq br_if $~lib/util/math/powf_lut|inlined.0 drop - local.get $4 local.get $0 + local.get $1 f32.add i32.const 1 - local.get $5 + local.get $4 i32.const 1 i32.shl i32.const -16777216 @@ -8260,7 +8210,7 @@ br_if $~lib/util/math/powf_lut|inlined.0 drop f32.const 0 - local.get $5 + local.get $4 i32.const 31 i32.shr_u i32.eqz @@ -8272,8 +8222,8 @@ i32.eq br_if $~lib/util/math/powf_lut|inlined.0 drop - local.get $0 - local.get $0 + local.get $1 + local.get $1 f32.mul br $~lib/util/math/powf_lut|inlined.0 end @@ -8286,8 +8236,8 @@ i32.ge_u if f32.const 1 - local.get $4 - local.get $4 + local.get $0 + local.get $0 f32.mul local.tee $0 f32.neg @@ -8298,7 +8248,7 @@ if (result i32) block $~lib/util/math/checkintf|inlined.0 (result i32) i32.const 0 - local.get $5 + local.get $4 i32.const 23 i32.shr_u i32.const 255 @@ -8323,13 +8273,13 @@ local.tee $2 i32.const 1 i32.sub - local.get $5 + local.get $4 i32.and br_if $~lib/util/math/checkintf|inlined.0 drop i32.const 1 local.get $2 - local.get $5 + local.get $4 i32.and br_if $~lib/util/math/checkintf|inlined.0 drop @@ -8344,7 +8294,7 @@ local.tee $0 f32.div local.get $0 - local.get $5 + local.get $4 i32.const 31 i32.shr_u select @@ -8356,19 +8306,19 @@ if block $~lib/util/math/checkintf|inlined.1 (result i32) i32.const 0 - local.get $5 + local.get $4 local.tee $3 i32.const 23 i32.shr_u i32.const 255 i32.and - local.tee $5 + local.tee $4 i32.const 127 i32.lt_u br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 2 - local.get $5 + local.get $4 i32.const 150 i32.gt_u br_if $~lib/util/math/checkintf|inlined.1 @@ -8376,10 +8326,10 @@ i32.const 0 i32.const 1 i32.const 150 - local.get $5 + local.get $4 i32.sub i32.shl - local.tee $5 + local.tee $4 i32.const 1 i32.sub local.get $3 @@ -8388,17 +8338,17 @@ drop i32.const 1 local.get $3 - local.get $5 + local.get $4 i32.and br_if $~lib/util/math/checkintf|inlined.1 drop i32.const 2 end - local.tee $5 + local.tee $4 i32.eqz if - local.get $4 - local.get $4 + local.get $0 + local.get $0 f32.sub local.tee $0 local.get $0 @@ -8407,11 +8357,11 @@ end i32.const 65536 i32.const 0 - local.get $5 + local.get $4 i32.const 1 i32.eq select - local.set $7 + local.set $6 local.get $2 i32.const 2147483647 i32.and @@ -8421,7 +8371,7 @@ i32.const 8388608 i32.lt_u if (result i32) - local.get $4 + local.get $0 f32.const 8388608 f32.mul i32.reinterpret_f32 @@ -8438,14 +8388,14 @@ local.get $2 i32.const 1060306944 i32.sub - local.tee $5 + local.tee $4 i32.const -8388608 i32.and local.tee $3 i32.sub f32.reinterpret_i32 f64.promote_f32 - local.get $5 + local.get $4 i32.const 19 i32.shr_u i32.const 15 @@ -8454,30 +8404,30 @@ i32.shl i32.const 10016 i32.add - local.tee $5 + local.tee $4 f64.load f64.mul f64.const 1 f64.sub - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 f64.mul - local.set $8 - local.get $0 + local.set $7 + local.get $1 f64.promote_f32 - local.get $9 + local.get $8 f64.const 0.288457581109214 f64.mul f64.const -0.36092606229713164 f64.add - local.get $8 - local.get $8 + local.get $7 + local.get $7 f64.mul f64.mul - local.get $9 + local.get $8 f64.const 1.4426950408774342 f64.mul - local.get $5 + local.get $4 f64.load offset=8 local.get $3 i32.const 23 @@ -8485,17 +8435,17 @@ f64.convert_i32_s f64.add f64.add - local.get $9 + local.get $8 f64.const 0.480898481472577 f64.mul f64.const -0.7213474675006291 f64.add - local.get $8 + local.get $7 f64.mul f64.add f64.add f64.mul - local.tee $9 + local.tee $8 i64.reinterpret_f64 i64.const 47 i64.shr_u @@ -8506,54 +8456,54 @@ if f32.const -1584563250285286751870879e5 f32.const 1584563250285286751870879e5 - local.get $7 + local.get $6 select f32.const 1584563250285286751870879e5 f32.mul - local.get $9 + local.get $8 f64.const 127.99999995700433 f64.gt br_if $~lib/util/math/powf_lut|inlined.0 drop f32.const -2.524354896707238e-29 f32.const 2.524354896707238e-29 - local.get $7 + local.get $6 select f32.const 2.524354896707238e-29 f32.mul - local.get $9 + local.get $8 f64.const -150 f64.le br_if $~lib/util/math/powf_lut|inlined.0 drop end - local.get $9 + local.get $8 f64.const 211106232532992 f64.add - local.tee $8 + local.tee $7 i64.reinterpret_f64 - local.set $6 - local.get $9 + local.set $5 local.get $8 + local.get $7 f64.const 211106232532992 f64.sub f64.sub - local.tee $9 + local.tee $8 f64.const 0.6931471806916203 f64.mul f64.const 1 f64.add - local.get $9 + local.get $8 f64.const 0.05550361559341535 f64.mul f64.const 0.2402284522445722 f64.add - local.get $9 - local.get $9 + local.get $8 + local.get $8 f64.mul f64.mul f64.add - local.get $6 + local.get $5 i32.wrap_i64 i32.const 31 i32.and @@ -8562,9 +8512,9 @@ i32.const 7712 i32.add i64.load - local.get $7 - i64.extend_i32_u local.get $6 + i64.extend_i32_u + local.get $5 i64.add i64.const 47 i64.shl @@ -9959,16 +9909,6 @@ i32.and i64.extend_i32_s local.set $6 - local.get $2 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $2 - i64.load offset=8 - local.set $4 f64.const 8.515303950216386e-20 local.get $0 f64.promote_f32 @@ -9979,12 +9919,21 @@ i32.const 8388608 i32.or i64.extend_i32_s - local.tee $3 + local.tee $4 local.get $2 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $2 i64.load local.get $6 i64.shl - local.get $4 + local.get $2 + i64.load offset=8 + local.tee $3 i64.const 64 local.get $6 i64.sub @@ -9995,7 +9944,7 @@ i64.const 32 i64.gt_u if (result i64) - local.get $4 + local.get $3 local.get $6 i64.const 32 i64.sub @@ -10008,13 +9957,13 @@ i64.shr_u i64.or else - local.get $4 + local.get $3 i64.const 32 local.get $6 i64.sub i64.shr_u end - local.get $3 + local.get $4 i64.mul i64.const 32 i64.shr_u @@ -10022,7 +9971,7 @@ local.tee $4 i64.const 2 i64.shl - local.tee $3 + local.tee $6 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y @@ -10030,7 +9979,7 @@ local.get $4 i64.const 62 i64.shr_u - local.get $3 + local.get $6 i64.const 63 i64.shr_u i64.add @@ -10925,16 +10874,6 @@ i32.and i64.extend_i32_s local.set $6 - local.get $2 - i32.const 6 - i32.shr_s - i32.const 3 - i32.shl - i32.const 5632 - i32.add - local.tee $2 - i64.load offset=8 - local.set $4 f64.const 8.515303950216386e-20 local.get $0 f64.promote_f32 @@ -10945,12 +10884,21 @@ i32.const 8388608 i32.or i64.extend_i32_s - local.tee $3 + local.tee $4 local.get $2 + i32.const 6 + i32.shr_s + i32.const 3 + i32.shl + i32.const 5632 + i32.add + local.tee $2 i64.load local.get $6 i64.shl - local.get $4 + local.get $2 + i64.load offset=8 + local.tee $3 i64.const 64 local.get $6 i64.sub @@ -10961,7 +10909,7 @@ i64.const 32 i64.gt_u if (result i64) - local.get $4 + local.get $3 local.get $6 i64.const 32 i64.sub @@ -10974,13 +10922,13 @@ i64.shr_u i64.or else - local.get $4 + local.get $3 i64.const 32 local.get $6 i64.sub i64.shr_u end - local.get $3 + local.get $4 i64.mul i64.const 32 i64.shr_u @@ -10988,7 +10936,7 @@ local.tee $4 i64.const 2 i64.shl - local.tee $3 + local.tee $6 f64.convert_i64_s f64.mul global.set $~lib/math/rempio2f_y @@ -10996,7 +10944,7 @@ local.get $4 i64.const 62 i64.shr_u - local.get $3 + local.get $6 i64.const 63 i64.shr_u i64.add @@ -11779,15 +11727,15 @@ end ) (func $~lib/math/NativeMath.imul (param $0 f64) (param $1 f64) (result f64) - (local $2 f64) - (local $3 i32) - (local $4 i64) - (local $5 i64) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 f64) local.get $0 local.get $1 f64.add - local.tee $2 - local.get $2 + local.tee $5 + local.get $5 f64.sub f64.const 0 f64.ne @@ -11796,41 +11744,40 @@ return end local.get $0 - local.tee $2 i64.reinterpret_f64 - local.tee $4 + local.tee $2 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $5 + local.tee $3 i64.const 1053 i64.le_u if (result i32) - local.get $2 + local.get $0 i32.trunc_f64_s else - local.get $5 + local.get $3 i64.const 1106 i64.le_u if (result i32) i32.const 0 - local.get $4 + local.get $2 i64.const 4503599627370495 i64.and i64.const 4503599627370496 i64.or - local.get $5 + local.get $3 i64.const 1043 i64.sub i64.shl i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $3 + local.tee $4 i32.sub - local.get $3 local.get $4 + local.get $2 i64.const 63 i64.shr_u i32.wrap_i64 @@ -11840,41 +11787,40 @@ end end local.get $1 - local.tee $0 i64.reinterpret_f64 - local.tee $4 + local.tee $2 i64.const 52 i64.shr_u i64.const 2047 i64.and - local.tee $5 + local.tee $3 i64.const 1053 i64.le_u if (result i32) - local.get $0 + local.get $1 i32.trunc_f64_s else - local.get $5 + local.get $3 i64.const 1106 i64.le_u if (result i32) i32.const 0 - local.get $4 + local.get $2 i64.const 4503599627370495 i64.and i64.const 4503599627370496 i64.or - local.get $5 + local.get $3 i64.const 1043 i64.sub i64.shl i64.const 32 i64.shr_u i32.wrap_i64 - local.tee $3 + local.tee $4 i32.sub - local.get $3 local.get $4 + local.get $2 i64.const 63 i64.shr_u i32.wrap_i64 @@ -18121,9 +18067,10 @@ end f32.const -8.066848754882812 f32.const 4.535662651062012 + call $~lib/math/NativeMathf.atan2 f32.const -1.0585895776748657 f32.const -0.22352588176727295 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18135,9 +18082,10 @@ end f32.const 4.345239639282227 f32.const -8.887990951538086 + call $~lib/math/NativeMathf.atan2 f32.const 2.686873435974121 f32.const 0.09464472532272339 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18149,9 +18097,10 @@ end f32.const -8.381433486938477 f32.const -2.7636072635650635 + call $~lib/math/NativeMathf.atan2 f32.const -1.8893001079559326 f32.const -0.21941901743412018 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18163,9 +18112,10 @@ end f32.const -6.531673431396484 f32.const 4.567535400390625 + call $~lib/math/NativeMathf.atan2 f32.const -0.9605468511581421 f32.const 0.46015575528144836 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18177,9 +18127,10 @@ end f32.const 9.267057418823242 f32.const 4.811392307281494 + call $~lib/math/NativeMathf.atan2 f32.const 1.0919123888015747 f32.const -0.05708503723144531 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18191,9 +18142,10 @@ end f32.const -6.450045585632324 f32.const 0.6620717644691467 + call $~lib/math/NativeMathf.atan2 f32.const -1.4685084819793701 f32.const 0.19611206650733948 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18205,9 +18157,10 @@ end f32.const 7.858890056610107 f32.const 0.052154526114463806 + call $~lib/math/NativeMathf.atan2 f32.const 1.5641601085662842 f32.const 0.48143187165260315 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18219,9 +18172,10 @@ end f32.const -0.7920545339584351 f32.const 7.676402568817139 + call $~lib/math/NativeMathf.atan2 f32.const -0.10281659662723541 f32.const -0.4216274917125702 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18233,9 +18187,10 @@ end f32.const 0.6157026886940002 f32.const 2.0119025707244873 + call $~lib/math/NativeMathf.atan2 f32.const 0.29697975516319275 f32.const 0.2322007566690445 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18247,9 +18202,10 @@ end f32.const -0.5587586760520935 f32.const 0.03223983198404312 + call $~lib/math/NativeMathf.atan2 f32.const -1.5131611824035645 f32.const 0.16620726883411407 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18261,9 +18217,10 @@ end f32.const 0 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18275,9 +18232,10 @@ end f32.const 0 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18289,9 +18247,10 @@ end f32.const 0 f32.const -1 + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18303,9 +18262,10 @@ end f32.const 0 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18317,9 +18277,10 @@ end f32.const 0 f32.const 1 + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18331,9 +18292,10 @@ end f32.const 0 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18345,9 +18307,10 @@ end f32.const -0 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18359,9 +18322,10 @@ end f32.const -0 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18373,9 +18337,10 @@ end f32.const -0 f32.const -1 + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18387,9 +18352,10 @@ end f32.const -0 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18401,9 +18367,10 @@ end f32.const -0 f32.const 1 + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18415,9 +18382,10 @@ end f32.const -0 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18429,9 +18397,10 @@ end f32.const -1 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18443,9 +18412,10 @@ end f32.const -1 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18457,9 +18427,10 @@ end f32.const 1 f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18471,9 +18442,10 @@ end f32.const 1 f32.const -0 + call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18485,9 +18457,10 @@ end f32.const -1 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const -0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18499,9 +18472,10 @@ end f32.const 1 f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const 0 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18513,9 +18487,10 @@ end f32.const -1 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const -3.1415927410125732 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18527,9 +18502,10 @@ end f32.const 1 f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const 3.1415927410125732 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18541,9 +18517,10 @@ end f32.const inf f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const 1.5707963705062866 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18555,9 +18532,10 @@ end f32.const -inf f32.const 0 + call $~lib/math/NativeMathf.atan2 f32.const -1.5707963705062866 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18569,9 +18547,10 @@ end f32.const inf f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const 0.7853981852531433 f32.const 0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18583,9 +18562,10 @@ end f32.const inf f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const 2.356194496154785 f32.const 0.02500828728079796 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18597,9 +18577,10 @@ end f32.const -inf f32.const inf + call $~lib/math/NativeMathf.atan2 f32.const -0.7853981852531433 f32.const -0.3666777014732361 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18611,9 +18592,10 @@ end f32.const -inf f32.const -inf + call $~lib/math/NativeMathf.atan2 f32.const -2.356194496154785 f32.const -0.02500828728079796 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18625,9 +18607,10 @@ end f32.const 5.877471754111438e-39 f32.const 1 + call $~lib/math/NativeMathf.atan2 f32.const 5.877471754111438e-39 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18639,9 +18622,10 @@ end f32.const 1 f32.const 1701411834604692317316873e14 + call $~lib/math/NativeMathf.atan2 f32.const 5.877471754111438e-39 f32.const 0 - call $std/math/test_atan2f + call $std/math/check i32.eqz if i32.const 0 @@ -18652,9 +18636,19 @@ unreachable end f64.const -8.06684839057968 + call $~lib/math/NativeMath.cbrt f64.const -2.0055552545020245 f64.const 0.46667951345443726 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -8.06684839057968 + call $~lib/bindings/Math/cbrt + f64.const -2.0055552545020245 + f64.const 0.46667951345443726 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18665,9 +18659,19 @@ unreachable end f64.const 4.345239849338305 + call $~lib/math/NativeMath.cbrt f64.const 1.6318162410515635 f64.const -0.08160271495580673 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 4.345239849338305 + call $~lib/bindings/Math/cbrt + f64.const 1.6318162410515635 + f64.const -0.08160271495580673 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18678,9 +18682,19 @@ unreachable end f64.const -8.38143342755525 + call $~lib/math/NativeMath.cbrt f64.const -2.031293910673361 f64.const -0.048101816326379776 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -8.38143342755525 + call $~lib/bindings/Math/cbrt + f64.const -2.031293910673361 + f64.const -0.048101816326379776 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18691,9 +18705,19 @@ unreachable end f64.const -6.531673581913484 + call $~lib/math/NativeMath.cbrt f64.const -1.8692820012204925 f64.const 0.08624018728733063 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -6.531673581913484 + call $~lib/bindings/Math/cbrt + f64.const -1.8692820012204925 + f64.const 0.08624018728733063 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18704,9 +18728,19 @@ unreachable end f64.const 9.267056966972586 + call $~lib/math/NativeMath.cbrt f64.const 2.100457720859702 f64.const -0.2722989022731781 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 9.267056966972586 + call $~lib/bindings/Math/cbrt + f64.const 2.100457720859702 + f64.const -0.2722989022731781 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18717,9 +18751,19 @@ unreachable end f64.const 0.6619858980995045 + call $~lib/math/NativeMath.cbrt f64.const 0.8715311470455973 f64.const 0.4414918124675751 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 0.6619858980995045 + call $~lib/bindings/Math/cbrt + f64.const 0.8715311470455973 + f64.const 0.4414918124675751 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18730,9 +18774,19 @@ unreachable end f64.const -0.4066039223853553 + call $~lib/math/NativeMath.cbrt f64.const -0.740839030300223 f64.const 0.016453813761472702 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -0.4066039223853553 + call $~lib/bindings/Math/cbrt + f64.const -0.740839030300223 + f64.const 0.016453813761472702 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18743,9 +18797,19 @@ unreachable end f64.const 0.5617597462207241 + call $~lib/math/NativeMath.cbrt f64.const 0.8251195400559286 f64.const 0.30680638551712036 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 0.5617597462207241 + call $~lib/bindings/Math/cbrt + f64.const 0.8251195400559286 + f64.const 0.30680638551712036 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18756,9 +18820,19 @@ unreachable end f64.const 0.7741522965913037 + call $~lib/math/NativeMath.cbrt f64.const 0.9182102478959914 f64.const 0.06543998420238495 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 0.7741522965913037 + call $~lib/bindings/Math/cbrt + f64.const 0.9182102478959914 + f64.const 0.06543998420238495 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18769,9 +18843,19 @@ unreachable end f64.const -0.6787637026394024 + call $~lib/math/NativeMath.cbrt f64.const -0.8788326906580094 f64.const -0.2016713172197342 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -0.6787637026394024 + call $~lib/bindings/Math/cbrt + f64.const -0.8788326906580094 + f64.const -0.2016713172197342 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18782,9 +18866,19 @@ unreachable end f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.cbrt f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const nan:0x8000000000000 + call $~lib/bindings/Math/cbrt + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18795,9 +18889,19 @@ unreachable end f64.const inf + call $~lib/math/NativeMath.cbrt f64.const inf f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const inf + call $~lib/bindings/Math/cbrt + f64.const inf + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18808,9 +18912,19 @@ unreachable end f64.const -inf + call $~lib/math/NativeMath.cbrt f64.const -inf f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -inf + call $~lib/bindings/Math/cbrt + f64.const -inf + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18821,9 +18935,19 @@ unreachable end f64.const 0 + call $~lib/math/NativeMath.cbrt f64.const 0 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 0 + call $~lib/bindings/Math/cbrt + f64.const 0 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18834,9 +18958,19 @@ unreachable end f64.const -0 + call $~lib/math/NativeMath.cbrt f64.const -0 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -0 + call $~lib/bindings/Math/cbrt + f64.const -0 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18847,9 +18981,19 @@ unreachable end f64.const 9.313225746154785e-10 + call $~lib/math/NativeMath.cbrt f64.const 0.0009765625 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 9.313225746154785e-10 + call $~lib/bindings/Math/cbrt + f64.const 0.0009765625 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18860,9 +19004,19 @@ unreachable end f64.const -9.313225746154785e-10 + call $~lib/math/NativeMath.cbrt f64.const -0.0009765625 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -9.313225746154785e-10 + call $~lib/bindings/Math/cbrt + f64.const -0.0009765625 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18873,9 +19027,19 @@ unreachable end f64.const 1 + call $~lib/math/NativeMath.cbrt f64.const 1 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 1 + call $~lib/bindings/Math/cbrt + f64.const 1 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18886,9 +19050,19 @@ unreachable end f64.const -1 + call $~lib/math/NativeMath.cbrt f64.const -1 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const -1 + call $~lib/bindings/Math/cbrt + f64.const -1 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -18899,9 +19073,19 @@ unreachable end f64.const 8 + call $~lib/math/NativeMath.cbrt f64.const 2 f64.const 0 - call $std/math/test_cbrt + call $std/math/check + if (result i32) + f64.const 8 + call $~lib/bindings/Math/cbrt + f64.const 2 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -29039,9 +29223,10 @@ end f64.const -8.06684839057968 f64.const 4.535662560676869 + call $~lib/math/NativeMath.hypot f64.const 9.25452742288464 f64.const -0.31188681721687317 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29053,9 +29238,10 @@ end f64.const 4.345239849338305 f64.const -8.88799136300345 + call $~lib/math/NativeMath.hypot f64.const 9.893305808328252 f64.const 0.4593673348426819 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29067,9 +29253,10 @@ end f64.const -8.38143342755525 f64.const -2.763607337379588 + call $~lib/math/NativeMath.hypot f64.const 8.825301797432132 f64.const -0.1701754331588745 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29081,9 +29268,10 @@ end f64.const -6.531673581913484 f64.const 4.567535276842744 + call $~lib/math/NativeMath.hypot f64.const 7.970265885519092 f64.const -0.3176782727241516 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29095,9 +29283,10 @@ end f64.const 9.267056966972586 f64.const 4.811392084359796 + call $~lib/math/NativeMath.hypot f64.const 10.441639651824575 f64.const -0.2693633437156677 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29109,9 +29298,10 @@ end f64.const -6.450045556060236 f64.const 0.6620717923376739 + call $~lib/math/NativeMath.hypot f64.const 6.483936052542593 f64.const 0.35618898272514343 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29123,9 +29313,10 @@ end f64.const 7.858890253041697 f64.const 0.05215452675006225 + call $~lib/math/NativeMath.hypot f64.const 7.859063309581766 f64.const 0.08044655621051788 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29137,9 +29328,10 @@ end f64.const -0.792054511984896 f64.const 7.67640268511754 + call $~lib/math/NativeMath.hypot f64.const 7.717156764899584 f64.const 0.05178084969520569 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29151,9 +29343,10 @@ end f64.const 0.615702673197924 f64.const 2.0119025790324803 + call $~lib/math/NativeMath.hypot f64.const 2.104006123874314 f64.const -0.0918039008975029 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29165,9 +29358,10 @@ end f64.const -0.5587586823609152 f64.const 0.03223983060263804 + call $~lib/math/NativeMath.hypot f64.const 0.5596880129062913 f64.const 0.1383407711982727 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29179,9 +29373,10 @@ end f64.const 3 f64.const 4 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29193,9 +29388,10 @@ end f64.const -3 f64.const 4 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29207,9 +29403,10 @@ end f64.const 4 f64.const 3 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29221,9 +29418,10 @@ end f64.const 4 f64.const -3 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29235,9 +29433,10 @@ end f64.const -3 f64.const -4 + call $~lib/math/NativeMath.hypot f64.const 5 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29249,9 +29448,10 @@ end f64.const 1797693134862315708145274e284 f64.const 0 + call $~lib/math/NativeMath.hypot f64.const 1797693134862315708145274e284 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29263,9 +29463,10 @@ end f64.const 1797693134862315708145274e284 f64.const -0 + call $~lib/math/NativeMath.hypot f64.const 1797693134862315708145274e284 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29277,9 +29478,10 @@ end f64.const 5e-324 f64.const 0 + call $~lib/math/NativeMath.hypot f64.const 5e-324 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29291,9 +29493,10 @@ end f64.const 5e-324 f64.const -0 + call $~lib/math/NativeMath.hypot f64.const 5e-324 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29305,9 +29508,10 @@ end f64.const inf f64.const 1 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29319,9 +29523,10 @@ end f64.const 1 f64.const inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29333,9 +29538,10 @@ end f64.const inf f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29347,9 +29553,10 @@ end f64.const nan:0x8000000000000 f64.const inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29361,9 +29568,10 @@ end f64.const -inf f64.const 1 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29375,9 +29583,10 @@ end f64.const 1 f64.const -inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29389,9 +29598,10 @@ end f64.const -inf f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29403,9 +29613,10 @@ end f64.const nan:0x8000000000000 f64.const -inf + call $~lib/math/NativeMath.hypot f64.const inf f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29417,9 +29628,10 @@ end f64.const nan:0x8000000000000 f64.const 1 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29431,9 +29643,10 @@ end f64.const 1 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29445,9 +29658,10 @@ end f64.const nan:0x8000000000000 f64.const 0 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -29459,9 +29673,10 @@ end f64.const 0 f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.hypot f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_hypot + call $std/math/check i32.eqz if i32.const 0 @@ -30516,9 +30731,19 @@ unreachable end f64.const -8.06684839057968 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -8.06684839057968 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30529,9 +30754,19 @@ unreachable end f64.const 4.345239849338305 + call $~lib/math/NativeMath.log10 f64.const 0.6380137537120029 f64.const -0.2088824063539505 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 4.345239849338305 + call $~lib/bindings/Math/log10 + f64.const 0.6380137537120029 + f64.const -0.2088824063539505 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30542,9 +30777,19 @@ unreachable end f64.const -8.38143342755525 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -8.38143342755525 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30555,9 +30800,19 @@ unreachable end f64.const -6.531673581913484 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -6.531673581913484 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30568,9 +30823,19 @@ unreachable end f64.const 9.267056966972586 + call $~lib/math/NativeMath.log10 f64.const 0.9669418327487274 f64.const -0.06120431795716286 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 9.267056966972586 + call $~lib/bindings/Math/log10 + f64.const 0.9669418327487274 + f64.const -0.06120431795716286 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30581,9 +30846,19 @@ unreachable end f64.const 0.6619858980995045 + call $~lib/math/NativeMath.log10 f64.const -0.17915126198447093 f64.const 0.39090874791145325 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 0.6619858980995045 + call $~lib/bindings/Math/log10 + f64.const -0.17915126198447093 + f64.const 0.39090874791145325 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30594,9 +30869,19 @@ unreachable end f64.const -0.4066039223853553 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -0.4066039223853553 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30607,9 +30892,19 @@ unreachable end f64.const 0.5617597462207241 + call $~lib/math/NativeMath.log10 f64.const -0.25044938407454437 f64.const -0.3046841621398926 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 0.5617597462207241 + call $~lib/bindings/Math/log10 + f64.const -0.25044938407454437 + f64.const -0.3046841621398926 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30620,9 +30915,19 @@ unreachable end f64.const 0.7741522965913037 + call $~lib/math/NativeMath.log10 f64.const -0.11117359349943837 f64.const -0.31503361463546753 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 0.7741522965913037 + call $~lib/bindings/Math/log10 + f64.const -0.11117359349943837 + f64.const -0.31503361463546753 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30633,9 +30938,19 @@ unreachable end f64.const -0.6787637026394024 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -0.6787637026394024 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30646,9 +30961,19 @@ unreachable end f64.const 0 + call $~lib/math/NativeMath.log10 f64.const -inf f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 0 + call $~lib/bindings/Math/log10 + f64.const -inf + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30659,9 +30984,19 @@ unreachable end f64.const -0 + call $~lib/math/NativeMath.log10 f64.const -inf f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -0 + call $~lib/bindings/Math/log10 + f64.const -inf + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30672,9 +31007,19 @@ unreachable end f64.const -7.888609052210118e-31 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -7.888609052210118e-31 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30685,9 +31030,19 @@ unreachable end f64.const 1 + call $~lib/math/NativeMath.log10 f64.const 0 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const 1 + call $~lib/bindings/Math/log10 + f64.const 0 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30698,9 +31053,19 @@ unreachable end f64.const -1 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -1 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30711,9 +31076,19 @@ unreachable end f64.const inf + call $~lib/math/NativeMath.log10 f64.const inf f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const inf + call $~lib/bindings/Math/log10 + f64.const inf + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30724,9 +31099,19 @@ unreachable end f64.const -inf + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const -inf + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30737,9 +31122,19 @@ unreachable end f64.const nan:0x8000000000000 + call $~lib/math/NativeMath.log10 f64.const nan:0x8000000000000 f64.const 0 - call $std/math/test_log10 + call $std/math/check + if (result i32) + f64.const nan:0x8000000000000 + call $~lib/bindings/Math/log10 + f64.const nan:0x8000000000000 + f64.const 0 + call $std/math/check + else + i32.const 0 + end i32.eqz if i32.const 0 @@ -30750,9 +31145,10 @@ unreachable end f32.const -8.066848754882812 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30763,9 +31159,10 @@ unreachable end f32.const 4.345239639282227 + call $~lib/math/NativeMathf.log10 f32.const 0.6380137205123901 f32.const -0.20476758480072021 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30776,9 +31173,10 @@ unreachable end f32.const -8.381433486938477 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30789,9 +31187,10 @@ unreachable end f32.const -6.531673431396484 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30802,9 +31201,10 @@ unreachable end f32.const 9.267057418823242 + call $~lib/math/NativeMathf.log10 f32.const 0.9669418334960938 f32.const -0.34273025393486023 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30815,9 +31215,10 @@ unreachable end f32.const 0.6619858741760254 + call $~lib/math/NativeMathf.log10 f32.const -0.1791512817144394 f32.const -0.27078554034233093 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30828,9 +31229,10 @@ unreachable end f32.const -0.40660393238067627 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30841,9 +31243,10 @@ unreachable end f32.const 0.5617597699165344 + call $~lib/math/NativeMathf.log10 f32.const -0.25044935941696167 f32.const 0.2126826047897339 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30854,9 +31257,10 @@ unreachable end f32.const 0.7741522789001465 + call $~lib/math/NativeMathf.log10 f32.const -0.1111735999584198 f32.const 0.46515095233917236 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30867,9 +31271,10 @@ unreachable end f32.const -0.6787636876106262 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30880,9 +31285,10 @@ unreachable end f32.const 0 + call $~lib/math/NativeMathf.log10 f32.const -inf f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30893,9 +31299,10 @@ unreachable end f32.const -0 + call $~lib/math/NativeMathf.log10 f32.const -inf f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30906,9 +31313,10 @@ unreachable end f32.const -7.888609052210118e-31 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30919,9 +31327,10 @@ unreachable end f32.const 1 + call $~lib/math/NativeMathf.log10 f32.const 0 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30932,9 +31341,10 @@ unreachable end f32.const -1 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30945,9 +31355,10 @@ unreachable end f32.const inf + call $~lib/math/NativeMathf.log10 f32.const inf f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30958,9 +31369,10 @@ unreachable end f32.const -inf + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -30971,9 +31383,10 @@ unreachable end f32.const nan:0x400000 + call $~lib/math/NativeMathf.log10 f32.const nan:0x400000 f32.const 0 - call $std/math/test_log10f + call $std/math/check i32.eqz if i32.const 0 @@ -44156,9 +44569,9 @@ local.get $2 i64.xor local.tee $2 - local.get $2 i64.const 17 i64.shr_u + local.get $2 i64.xor i64.xor local.get $3 diff --git a/tests/compiler/std/mod.optimized.wat b/tests/compiler/std/mod.optimized.wat index 97a015ffff..3a905d40e0 100644 --- a/tests/compiler/std/mod.optimized.wat +++ b/tests/compiler/std/mod.optimized.wat @@ -137,91 +137,89 @@ i64.or end local.set $5 - loop $while-continue|0 - local.get $6 - local.get $7 - i64.gt_s - if - local.get $3 - local.get $5 - i64.ge_u - if (result i64) - local.get $0 - f64.const 0 - f64.mul - local.get $3 - local.get $5 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod - drop + block $folding-inner0 + loop $while-continue|0 + local.get $6 + local.get $7 + i64.gt_s + if local.get $3 local.get $5 + i64.ge_u + if (result i64) + local.get $3 + local.get $5 + i64.eq + br_if $folding-inner0 + local.get $3 + local.get $5 + i64.sub + else + local.get $3 + end + i64.const 1 + i64.shl + local.set $3 + local.get $6 + i64.const 1 i64.sub - else - local.get $3 + local.set $6 + br $while-continue|0 end - i64.const 1 - i64.shl - local.set $3 - local.get $6 - i64.const 1 - i64.sub - local.set $6 - br $while-continue|0 end - end - local.get $6 - local.get $3 - local.get $5 - i64.ge_u - if - local.get $0 - f64.const 0 - f64.mul + local.get $6 local.get $3 local.get $5 - i64.eq - br_if $__inlined_func$~lib/math/NativeMath.mod - drop + i64.ge_u + if + local.get $3 + local.get $5 + i64.eq + br_if $folding-inner0 + local.get $3 + local.get $5 + i64.sub + local.set $3 + end local.get $3 - local.get $5 + i64.const 11 + i64.shl + i64.clz + local.tee $6 i64.sub - local.set $3 - end - local.get $3 - i64.const 11 - i64.shl - i64.clz - local.tee $6 - i64.sub - local.set $5 - local.get $3 - local.get $6 - i64.shl - local.set $3 - local.get $5 - i64.const 0 - i64.gt_s - if (result i64) + local.set $5 local.get $3 - i64.const 4503599627370496 - i64.sub + local.get $6 + i64.shl + local.set $3 local.get $5 - i64.const 52 + i64.const 0 + i64.gt_s + if (result i64) + local.get $3 + i64.const 4503599627370496 + i64.sub + local.get $5 + i64.const 52 + i64.shl + i64.or + else + local.get $3 + i64.const 1 + local.get $5 + i64.sub + i64.shr_u + end + local.get $8 + i64.const 63 i64.shl i64.or - else - local.get $3 - i64.const 1 - local.get $5 - i64.sub - i64.shr_u + f64.reinterpret_i64 + br $__inlined_func$~lib/math/NativeMath.mod end - local.get $8 - i64.const 63 - i64.shl - i64.or - f64.reinterpret_i64 + local.get $0 + f64.const 0 + f64.mul end local.tee $1 local.get $1 @@ -400,89 +398,87 @@ i32.shl end local.set $4 - loop $while-continue|0 - local.get $5 - local.get $6 - i32.gt_s - if - local.get $3 - local.get $4 - i32.ge_u - if (result i32) - local.get $0 - f32.const 0 - f32.mul - local.get $3 - local.get $4 - i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.mod - drop + block $folding-inner0 + loop $while-continue|0 + local.get $5 + local.get $6 + i32.gt_s + if local.get $3 local.get $4 + i32.ge_u + if (result i32) + local.get $3 + local.get $4 + i32.eq + br_if $folding-inner0 + local.get $3 + local.get $4 + i32.sub + else + local.get $3 + end + i32.const 1 + i32.shl + local.set $3 + local.get $5 + i32.const 1 i32.sub - else - local.get $3 + local.set $5 + br $while-continue|0 end - i32.const 1 - i32.shl - local.set $3 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|0 end - end - local.get $5 - local.get $3 - local.get $4 - i32.ge_u - if - local.get $0 - f32.const 0 - f32.mul + local.get $5 local.get $3 local.get $4 - i32.eq - br_if $__inlined_func$~lib/math/NativeMathf.mod - drop + i32.ge_u + if + local.get $3 + local.get $4 + i32.eq + br_if $folding-inner0 + local.get $3 + local.get $4 + i32.sub + local.set $3 + end local.get $3 - local.get $4 + i32.const 8 + i32.shl + i32.clz + local.tee $5 i32.sub - local.set $3 - end - local.get $3 - i32.const 8 - i32.shl - i32.clz - local.tee $5 - i32.sub - local.set $4 - local.get $3 - local.get $5 - i32.shl - local.set $3 - local.get $4 - i32.const 0 - i32.gt_s - if (result i32) + local.set $4 local.get $3 - i32.const 8388608 - i32.sub - local.get $4 - i32.const 23 + local.get $5 i32.shl - i32.or - else - local.get $3 - i32.const 1 + local.set $3 local.get $4 - i32.sub - i32.shr_u + i32.const 0 + i32.gt_s + if (result i32) + local.get $3 + i32.const 8388608 + i32.sub + local.get $4 + i32.const 23 + i32.shl + i32.or + else + local.get $3 + i32.const 1 + local.get $4 + i32.sub + i32.shr_u + end + local.get $7 + i32.or + f32.reinterpret_i32 + br $__inlined_func$~lib/math/NativeMathf.mod end - local.get $7 - i32.or - f32.reinterpret_i32 + local.get $0 + f32.const 0 + f32.mul end local.tee $0 local.get $0 diff --git a/tests/compiler/std/new.optimized.wat b/tests/compiler/std/new.optimized.wat index c13d239956..37485b7a44 100644 --- a/tests/compiler/std/new.optimized.wat +++ b/tests/compiler/std/new.optimized.wat @@ -125,7 +125,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -133,10 +132,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17860 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -150,7 +149,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -175,9 +174,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -185,11 +183,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -198,7 +195,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -213,16 +210,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -230,11 +227,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1407,8 +1404,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 @@ -1437,64 +1434,64 @@ local.get $0 i32.const 20 i32.add - local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 8 i32.add - local.tee $1 + local.tee $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $0 i32.const 4 i32.sub i32.const 0 i32.store8 local.get $4 - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.store - local.get $0 + local.get $1 f32.const 2 f32.store offset=4 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load i32.const 1 i32.add i32.store - local.get $0 + local.get $1 f32.const 3 f32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 global.set $std/new/aClass ) (func $~lib/rt/__visit_members (param $0 i32) diff --git a/tests/compiler/std/operator-overloading.optimized.wat b/tests/compiler/std/operator-overloading.optimized.wat index 96a78110d9..2f5135eadb 100644 --- a/tests/compiler/std/operator-overloading.optimized.wat +++ b/tests/compiler/std/operator-overloading.optimized.wat @@ -184,7 +184,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -192,10 +191,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17956 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -209,7 +208,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -234,9 +233,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -244,11 +242,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1520 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -257,7 +254,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1524 @@ -272,16 +269,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -289,11 +286,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1273,17 +1270,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1296,16 +1293,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1313,15 +1310,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1348,12 +1345,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1363,7 +1360,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1372,19 +1369,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1410,26 +1407,26 @@ i32.const 8 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1444,42 +1441,42 @@ local.get $1 i32.const 20 i32.add - local.tee $0 + local.tee $1 i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 8 i32.add - local.tee $1 + local.tee $0 i32.const 1 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=1 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=2 - local.get $1 + local.get $0 i32.const 2 i32.sub i32.const 0 i32.store8 - local.get $1 + local.get $0 i32.const 3 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 i32.const 0 i32.store8 offset=3 - local.get $1 + local.get $0 i32.const 4 i32.sub i32.const 0 i32.store8 - local.get $0 + local.get $1 ) (func $~lib/math/ipow32 (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2068,7 +2065,6 @@ (func $start:std/operator-overloading (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -2133,10 +2129,8 @@ global.set $std/operator-overloading/a2 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a1 - local.tee $0 + local.tee $1 i32.store - local.get $0 - local.set $1 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a2 local.tee $0 @@ -2183,13 +2177,11 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/s2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/s1 local.tee $0 + global.get $std/operator-overloading/s1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/s2 local.tee $0 i32.store offset=4 @@ -2233,13 +2225,11 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/m2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/m1 local.tee $0 + global.get $std/operator-overloading/m1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/m2 local.tee $0 i32.store offset=4 @@ -2285,13 +2275,11 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/d2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/d1 local.tee $0 + global.get $std/operator-overloading/d1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/d2 local.tee $0 i32.store offset=4 @@ -2337,13 +2325,11 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/f2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/f1 local.tee $0 + global.get $std/operator-overloading/f1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/f2 local.tee $0 i32.store offset=4 @@ -2386,13 +2372,11 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/p2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/p1 local.tee $0 + global.get $std/operator-overloading/p1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/p2 local.tee $0 i32.store offset=4 @@ -2438,13 +2422,11 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/n2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/n1 local.tee $0 + global.get $std/operator-overloading/n1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/n2 local.tee $0 i32.store offset=4 @@ -2490,13 +2472,11 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/o2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/o1 local.tee $0 + global.get $std/operator-overloading/o1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/o2 local.tee $0 i32.store offset=4 @@ -2542,13 +2522,11 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/x2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/x1 local.tee $0 + global.get $std/operator-overloading/x1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/x2 local.tee $0 i32.store offset=4 @@ -2594,26 +2572,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/eq1 local.tee $0 + global.get $std/operator-overloading/eq1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/eq2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 - local.tee $2 i32.load i32.eq if (result i32) local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=4 i32.eq else @@ -2640,26 +2615,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/eq4 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/eq3 local.tee $0 + global.get $std/operator-overloading/eq3 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/eq4 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 - local.tee $2 i32.load i32.eq if (result i32) local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=4 i32.eq else @@ -2676,26 +2648,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/eq1 local.tee $0 + global.get $std/operator-overloading/eq1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/eq2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 - local.tee $2 i32.load i32.ne if (result i32) local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=4 i32.ne else @@ -2712,26 +2681,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/eq3 local.tee $0 + global.get $std/operator-overloading/eq3 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/eq4 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 - local.tee $2 i32.load i32.ne if (result i32) local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=4 i32.ne else @@ -2758,26 +2724,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gt2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/gt1 local.tee $0 + global.get $std/operator-overloading/gt1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/gt2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 - local.tee $2 i32.load i32.gt_s if (result i32) local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=4 i32.gt_s else @@ -2804,26 +2767,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/gte2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/gte1 local.tee $0 + global.get $std/operator-overloading/gte1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/gte2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 - local.tee $2 i32.load i32.ge_s if (result i32) local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=4 i32.ge_s else @@ -2850,26 +2810,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/le2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/le1 local.tee $0 + global.get $std/operator-overloading/le1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/le2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 - local.tee $2 i32.load i32.lt_s if (result i32) local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=4 i32.lt_s else @@ -2896,26 +2853,23 @@ call $std/operator-overloading/Tester#constructor global.set $std/operator-overloading/leq2 global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/operator-overloading/leq1 local.tee $0 + global.get $std/operator-overloading/leq1 + local.tee $1 i32.store local.get $0 - local.set $1 - local.get $2 global.get $std/operator-overloading/leq2 local.tee $0 i32.store offset=4 local.get $1 i32.load local.get $0 - local.tee $2 i32.load i32.le_s if (result i32) local.get $1 i32.load offset=4 - local.get $2 + local.get $0 i32.load offset=4 i32.le_s else @@ -3186,12 +3140,11 @@ local.tee $0 i32.store local.get $0 - local.tee $1 i32.load if (result i32) i32.const 1 else - local.get $1 + local.get $0 i32.load offset=4 end i32.eqz @@ -3427,18 +3380,18 @@ call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais1 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/operator-overloading/ais1 local.tee $0 + global.get $std/operator-overloading/ais1 + local.tee $1 i32.store - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 + local.get $1 i32.load i32.const 1 i32.add - local.get $0 + local.get $1 i32.load offset=4 i32.const 1 i32.add @@ -3450,21 +3403,21 @@ global.set $std/operator-overloading/ais2 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais1 - local.tee $0 + local.tee $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ais2 - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineStatic#constructor global.set $std/operator-overloading/ais @@ -3513,21 +3466,21 @@ global.set $std/operator-overloading/aii2 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/aii1 - local.tee $0 + local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/aii2 - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $0 - i32.load local.get $1 i32.load - i32.add local.get $0 - i32.load offset=4 + i32.load + i32.add local.get $1 i32.load offset=4 + local.get $0 + i32.load offset=4 i32.add call $std/operator-overloading/TesterInlineInstance#constructor global.set $std/operator-overloading/aii diff --git a/tests/compiler/std/set.optimized.wat b/tests/compiler/std/set.optimized.wat index c3457e8d4b..ffd55b7272 100644 --- a/tests/compiler/std/set.optimized.wat +++ b/tests/compiler/std/set.optimized.wat @@ -123,7 +123,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -131,10 +130,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18220 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -148,7 +147,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -173,21 +172,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1648 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -196,7 +193,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1652 @@ -211,28 +208,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1495,7 +1492,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1523,11 +1520,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1546,9 +1543,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1564,7 +1561,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1579,18 +1576,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1601,7 +1598,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1615,16 +1612,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1637,89 +1631,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1727,7 +1721,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -1814,61 +1808,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $7 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 - local.get $4 + local.set $4 + local.get $3 local.set $2 loop $while-continue|0 - local.get $3 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $3 - local.tee $5 + local.get $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load8_s - local.tee $3 + local.tee $8 i32.store8 local.get $2 - local.get $3 + local.get $8 i32.extend8_s i32.const -1028477379 i32.mul @@ -1878,24 +1871,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $3 i32.xor local.get $1 i32.and @@ -1903,10 +1896,10 @@ i32.shl local.get $6 i32.add - local.tee $3 + local.tee $8 i32.load i32.store offset=4 - local.get $3 + local.get $8 local.get $2 i32.store local.get $2 @@ -1914,10 +1907,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 8 i32.add - local.set $3 + local.set $7 br $while-continue|0 end end @@ -1931,13 +1924,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -1952,79 +1945,77 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $2 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=4 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|0 end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -2058,18 +2049,18 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add local.tee $2 local.get $1 @@ -2808,237 +2799,16 @@ i32.store8 end ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 20 - i32.sub - local.tee $2 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - local.get $1 - i32.ge_u - if - local.get $2 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $4 - local.get $1 - local.get $2 - i32.load offset=16 - local.tee $2 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $5 - block $~lib/util/memory/memmove|inlined.0 - local.get $4 - local.tee $1 - local.get $0 - i32.eq - br_if $~lib/util/memory/memmove|inlined.0 - local.get $0 - local.get $1 - i32.sub - local.get $5 - i32.sub - i32.const 0 - local.get $5 - i32.const 1 - i32.shl - i32.sub - i32.le_u - if - local.get $1 - local.get $0 - local.get $5 - call $~lib/util/memory/memcpy - br $~lib/util/memory/memmove|inlined.0 - end - local.get $0 - local.get $1 - i32.gt_u - if - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|0 - local.get $1 - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $1 - local.get $0 - i64.load - i64.store - local.get $5 - i32.const 8 - i32.sub - local.set $5 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 8 - i32.add - local.set $0 - br $while-continue|1 - end - end - end - loop $while-continue|2 - local.get $5 - if - local.get $1 - local.tee $3 - i32.const 1 - i32.add - local.set $1 - local.get $0 - local.tee $2 - i32.const 1 - i32.add - local.set $0 - local.get $3 - local.get $2 - i32.load8_u - i32.store8 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $while-continue|2 - end - end - else - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.eq - if - loop $while-continue|3 - local.get $1 - local.get $5 - i32.add - i32.const 7 - i32.and - if - local.get $5 - i32.eqz - br_if $~lib/util/memory/memmove|inlined.0 - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $5 - i32.const 8 - i32.ge_u - if - local.get $5 - i32.const 8 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i64.load - i64.store - br $while-continue|4 - end - end - end - loop $while-continue|5 - local.get $5 - if - local.get $5 - i32.const 1 - i32.sub - local.tee $5 - local.get $1 - i32.add - local.get $0 - local.get $5 - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end - end - end - local.get $4 - ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 i32.load offset=8 - local.tee $4 + local.tee $8 local.get $2 i32.shr_u local.get $1 @@ -3057,6 +2827,9 @@ call $~lib/builtins/abort unreachable end + local.get $0 + i32.load + local.set $4 local.get $1 i32.const 8 local.get $1 @@ -3066,53 +2839,272 @@ local.get $2 i32.shl local.set $1 - local.get $0 - i32.load - local.tee $5 - local.get $3 - if + block $__inlined_func$~lib/rt/itcms/__renew (result i32) + local.get $3 + if (result i32) + local.get $8 + i32.const 1 + i32.shl + local.tee $2 + i32.const 1073741820 + local.get $2 + i32.const 1073741820 + i32.lt_u + select + local.tee $2 + local.get $1 + local.get $1 + local.get $2 + i32.lt_u + select + else + local.get $1 + end + local.tee $6 local.get $4 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select local.tee $2 + i32.const 20 + i32.sub + local.tee $1 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $1 + local.get $6 + i32.store offset=16 + local.get $2 + br $__inlined_func$~lib/rt/itcms/__renew + end + local.get $6 + local.get $1 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $9 + local.set $3 + local.get $6 local.get $1 + i32.load offset=16 + local.tee $1 local.get $1 - local.get $2 - i32.lt_u + local.get $6 + i32.gt_u select - local.set $1 - end - local.get $1 - call $~lib/rt/itcms/__renew - local.tee $2 - local.get $4 + local.set $7 + block $~lib/util/memory/memmove|inlined.0 + local.get $3 + local.get $2 + local.tee $1 + i32.eq + br_if $~lib/util/memory/memmove|inlined.0 + local.get $1 + local.get $3 + i32.sub + local.get $7 + i32.sub + i32.const 0 + local.get $7 + i32.const 1 + i32.shl + i32.sub + i32.le_u + if + local.get $3 + local.get $1 + local.get $7 + call $~lib/util/memory/memcpy + br $~lib/util/memory/memmove|inlined.0 + end + local.get $1 + local.get $3 + i32.gt_u + if + local.get $1 + i32.const 7 + i32.and + local.get $3 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|0 + local.get $3 + i32.const 7 + i32.and + if + local.get $7 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + local.get $3 + local.tee $5 + i32.const 1 + i32.add + local.set $3 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $5 + local.get $4 + i32.load8_u + i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $7 + i32.const 8 + i32.ge_u + if + local.get $3 + local.get $1 + i64.load + i64.store + local.get $7 + i32.const 8 + i32.sub + local.set $7 + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $1 + i32.const 8 + i32.add + local.set $1 + br $while-continue|1 + end + end + end + loop $while-continue|2 + local.get $7 + if + local.get $3 + local.tee $5 + i32.const 1 + i32.add + local.set $3 + local.get $1 + local.tee $4 + i32.const 1 + i32.add + local.set $1 + local.get $5 + local.get $4 + i32.load8_u + i32.store8 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + br $while-continue|2 + end + end + else + local.get $1 + i32.const 7 + i32.and + local.get $3 + i32.const 7 + i32.and + i32.eq + if + loop $while-continue|3 + local.get $3 + local.get $7 + i32.add + i32.const 7 + i32.and + if + local.get $7 + i32.eqz + br_if $~lib/util/memory/memmove|inlined.0 + local.get $3 + local.get $7 + i32.const 1 + i32.sub + local.tee $7 + i32.add + local.get $1 + local.get $7 + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + loop $while-continue|4 + local.get $7 + i32.const 8 + i32.ge_u + if + local.get $3 + local.get $7 + i32.const 8 + i32.sub + local.tee $7 + i32.add + local.get $1 + local.get $7 + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $7 + if + local.get $3 + local.get $7 + i32.const 1 + i32.sub + local.tee $7 + i32.add + local.get $1 + local.get $7 + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end + end + end + end + local.get $9 + end + local.tee $1 + local.get $8 i32.add - local.get $1 - local.get $4 + local.get $6 + local.get $8 i32.sub call $~lib/memory/memory.fill + local.get $1 local.get $2 - local.get $5 i32.ne if local.get $0 - local.get $2 + local.get $1 i32.store local.get $0 - local.get $2 + local.get $1 i32.store offset=4 local.get $0 - local.get $2 + local.get $1 call $~lib/rt/itcms/__link end local.get $0 - local.get $1 + local.get $6 i32.store offset=8 end ) @@ -3175,51 +3167,50 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -3236,7 +3227,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -3245,8 +3235,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -3352,27 +3343,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 call $~lib/set/Set#constructor - local.tee $11 + local.tee $2 i32.store loop $for-loop|1 - local.get $1 + local.get $0 i32.extend8_s i32.const 100 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -3382,62 +3373,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $1 + i32.load8_u + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -3446,14 +3437,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -3463,62 +3454,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $1 + i32.load8_u + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -3528,14 +3519,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -3548,18 +3539,18 @@ unreachable end i32.const 50 - local.set $1 + local.set $0 loop $for-loop|3 - local.get $1 + local.get $0 i32.extend8_s i32.const 100 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -3569,62 +3560,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $1 + i32.load8_u + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -3634,14 +3625,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.extend8_s i32.const -1028477379 i32.mul @@ -3651,62 +3642,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $1 + i32.load8_u + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -3716,14 +3707,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -3736,8 +3727,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 + local.tee $1 + i32.const 0 + local.set $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3749,13 +3742,13 @@ local.tee $1 i32.const 0 i32.store - local.get $11 + local.get $2 i32.load offset=8 - local.set $6 - local.get $11 + local.set $10 + local.get $2 i32.load offset=16 - local.tee $10 - local.set $8 + local.tee $11 + local.set $5 local.get $1 i32.const 8 i32.sub @@ -3789,7 +3782,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $8 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -3801,34 +3794,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.const 8 - local.get $8 + local.get $5 i32.const 8 i32.gt_u select - local.tee $9 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 - local.get $9 + local.get $6 + local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $7 + local.get $6 i32.store local.get $3 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $3 - local.get $7 + local.get $6 i32.store offset=4 local.get $3 - local.get $9 + local.get $8 i32.store offset=8 local.get $3 - local.get $8 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -3838,14 +3831,14 @@ local.get $3 i32.store loop $for-loop|0 - local.get $5 - local.get $10 + local.get $7 + local.get $11 i32.lt_s if - local.get $5 + local.get $7 i32.const 3 i32.shl - local.get $6 + local.get $10 i32.add local.tee $1 i32.load offset=4 @@ -3863,10 +3856,10 @@ i32.add local.set $0 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|0 end end @@ -3883,20 +3876,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $9 + local.tee $1 i32.store offset=8 loop $for-loop|4 - local.get $1 + local.get $3 i32.load offset=12 - local.get $2 + local.get $4 i32.gt_s if - local.get $1 - local.get $2 + local.get $3 + local.get $4 call $~lib/array/Array#__get local.tee $6 i32.extend8_s @@ -3908,49 +3900,49 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.set $3 - local.get $11 + local.set $0 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $3 - local.get $3 + local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $10 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u local.get $6 i32.const 255 @@ -3958,17 +3950,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $10 + local.get $7 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -3978,21 +3970,21 @@ call $~lib/builtins/abort unreachable end - local.get $9 local.get $1 - local.get $2 + local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|4 end end - local.get $9 + local.get $1 i32.load offset=20 - local.get $11 + local.get $2 i32.load offset=20 i32.ne if @@ -4004,19 +3996,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|6 - local.get $2 + local.get $4 i32.extend8_s i32.const 50 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $1 + i32.load offset=4 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4026,62 +4017,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -4091,14 +4082,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4108,62 +4099,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|017 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -4172,14 +4163,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|6 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -4192,19 +4183,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|8 - local.get $2 + local.get $4 i32.extend8_s i32.const 50 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $1 + i32.load offset=4 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4214,62 +4204,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|020 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -4278,14 +4268,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4295,62 +4285,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|023 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -4360,14 +4350,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.extend8_s i32.const -1028477379 i32.mul @@ -4377,62 +4367,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $1 + local.get $4 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|026 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -4441,14 +4431,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|8 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -4460,9 +4450,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $2 call $~lib/set/Set#clear - local.get $11 + local.get $2 i32.load offset=20 if i32.const 0 @@ -4509,63 +4499,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $7 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 - local.get $4 + local.set $4 + local.get $3 local.set $2 loop $while-continue|0 - local.get $3 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $3 - local.tee $5 + local.get $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load8_u - local.tee $3 + local.tee $8 i32.store8 local.get $2 - local.get $3 - i32.const 255 - i32.and + local.get $8 i32.const -1028477379 i32.mul i32.const 374761394 @@ -4574,24 +4561,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $3 i32.xor local.get $1 i32.and @@ -4599,10 +4586,10 @@ i32.shl local.get $6 i32.add - local.tee $3 + local.tee $8 i32.load i32.store offset=4 - local.get $3 + local.get $8 local.get $2 i32.store local.get $2 @@ -4610,10 +4597,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 8 i32.add - local.set $3 + local.set $7 br $while-continue|0 end end @@ -4627,13 +4614,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -4648,80 +4635,78 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=4 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load8_u local.get $2 + i32.load8_u + local.get $1 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|0 end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -4755,18 +4740,18 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add local.tee $2 local.get $1 @@ -4817,52 +4802,51 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -4879,7 +4863,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -4888,8 +4871,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -4964,99 +4948,94 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $1 i64.const 0 i64.store - local.get $6 + local.get $1 i32.const 0 i32.store offset=8 - local.get $6 + local.get $1 call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|1 - local.get $2 + local.get $0 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $0 - local.set $5 local.get $2 - local.set $4 - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $6 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $5 + local.get $1 if - local.get $5 - local.get $5 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $1 i32.load8_u - local.get $6 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $5 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end + local.get $1 if i32.const 0 i32.const 1568 @@ -5065,87 +5044,80 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 - call $~lib/set/Set#add local.get $0 - local.set $5 + call $~lib/set/Set#add local.get $2 - local.set $4 - block $__inlined_func$~lib/set/Set#find1 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $6 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - loop $while-continue|02 - local.get $5 - if - local.get $5 - local.get $5 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $5 - i32.load8_u - local.get $6 - i32.const 255 - i32.and - i32.eq - end + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find1 + loop $while-continue|02 + local.get $1 + if + local.get $1 + i32.load offset=4 + local.tee $5 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + i32.load8_u + local.get $0 + i32.const 255 + i32.and + i32.eq + end br_if $__inlined_func$~lib/set/Set#find1 - drop - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $5 + local.set $1 br $while-continue|02 end end i32.const 0 + local.set $1 end - i32.const 0 - i32.ne + local.get $1 i32.eqz if i32.const 0 @@ -5155,14 +5127,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|1 end end - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -5175,92 +5147,85 @@ unreachable end i32.const 50 - local.set $2 + local.set $0 loop $for-loop|3 - local.get $2 + local.get $0 i32.const 255 i32.and i32.const 100 i32.lt_u if - local.get $0 - local.set $5 local.get $2 - local.set $4 - block $__inlined_func$~lib/set/Set#find4 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $6 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $5 + local.get $1 if - local.get $5 - local.get $5 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $1 i32.load8_u - local.get $6 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - drop - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $5 + local.set $1 br $while-continue|05 end end i32.const 0 + local.set $1 end - i32.const 0 - i32.ne + local.get $1 i32.eqz if i32.const 0 @@ -5270,87 +5235,80 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 - call $~lib/set/Set#add local.get $0 - local.set $5 + call $~lib/set/Set#add local.get $2 - local.set $4 - block $__inlined_func$~lib/set/Set#find7 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $6 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $5 + local.get $1 if - local.get $5 - local.get $5 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $1 i32.load8_u - local.get $6 + local.get $0 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - drop - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $5 + local.set $1 br $while-continue|08 end end i32.const 0 + local.set $1 end - i32.const 0 - i32.ne + local.get $1 i32.eqz if i32.const 0 @@ -5360,14 +5318,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|3 end end - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -5380,8 +5338,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $6 + local.tee $1 + i32.const 0 + local.set $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -5390,17 +5350,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $2 i32.load offset=8 local.set $10 - local.get $0 + local.get $2 i32.load offset=16 local.tee $11 - local.set $4 - local.get $2 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -5409,31 +5369,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $3 i64.const 0 i64.store - local.get $6 + local.get $3 i32.const 16 i32.const 6 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.store - local.get $6 + local.get $3 i32.const 0 i32.store - local.get $6 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link - local.get $6 + local.get $3 i32.const 0 i32.store offset=4 - local.get $6 + local.get $3 i32.const 0 i32.store offset=8 - local.get $6 + local.get $3 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 1073741820 i32.gt_u if @@ -5445,41 +5405,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 8 - local.get $4 + local.get $5 i32.const 8 i32.gt_u select local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill + local.get $3 local.get $6 - local.get $5 i32.store + local.get $3 local.get $6 - local.get $5 call $~lib/rt/itcms/__link + local.get $3 local.get $6 - local.get $5 i32.store offset=4 - local.get $6 + local.get $3 local.get $8 i32.store offset=8 - local.get $6 - local.get $4 + local.get $3 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.store loop $for-loop|0 local.get $7 @@ -5491,21 +5451,21 @@ i32.shl local.get $10 i32.add - local.tee $2 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $6 local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load8_u call $~lib/array/Array#__set - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 end local.get $7 i32.const 1 @@ -5514,110 +5474,105 @@ br $for-loop|0 end end - local.get $6 local.get $3 + local.get $0 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 local.get $3 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $2 + local.tee $1 i32.store offset=8 loop $for-loop|4 - local.get $6 + local.get $3 i32.load offset=12 - local.get $1 + local.get $4 i32.gt_s if - local.get $0 - local.set $3 - local.get $6 - local.get $1 + local.get $3 + local.get $4 call $~lib/array/Array#__get - local.set $4 - block $__inlined_func$~lib/set/Set#find10 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $4 - local.tee $5 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.tee $6 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.set $0 + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $4 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u - local.get $5 + local.get $6 i32.const 255 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - drop - local.get $4 + local.get $7 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|011 end end i32.const 0 + local.set $0 end - i32.const 0 - i32.ne + local.get $0 i32.eqz if i32.const 0 @@ -5627,21 +5582,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 local.get $1 + local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|4 end end - local.get $2 + local.get $1 i32.load offset=20 - local.get $0 + local.get $2 i32.load offset=20 i32.ne if @@ -5653,73 +5608,67 @@ unreachable end i32.const 0 - local.set $1 + local.set $4 loop $for-loop|6 - local.get $1 + local.get $4 i32.const 255 i32.and i32.const 50 i32.lt_u if + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - local.set $3 - local.get $1 - local.set $2 - block $__inlined_func$~lib/set/Set#find13 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u local.get $4 i32.const 255 @@ -5727,18 +5676,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - drop - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|014 end end i32.const 0 + local.set $0 end - i32.const 0 - i32.ne + local.get $0 i32.eqz if i32.const 0 @@ -5748,68 +5696,62 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - local.set $3 - local.get $1 - local.set $2 - block $__inlined_func$~lib/set/Set#find16 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u local.get $4 i32.const 255 @@ -5817,16 +5759,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - drop - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|017 end end i32.const 0 + local.set $0 end + local.get $0 if i32.const 0 i32.const 1568 @@ -5835,14 +5778,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|6 end end - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -5855,73 +5798,67 @@ unreachable end i32.const 0 - local.set $1 + local.set $4 loop $for-loop|8 - local.get $1 + local.get $4 i32.const 255 i32.and i32.const 50 i32.lt_u if + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - local.set $3 - local.get $1 - local.set $2 - block $__inlined_func$~lib/set/Set#find19 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u local.get $4 i32.const 255 @@ -5929,16 +5866,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - drop - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|020 end end i32.const 0 + local.set $0 end + local.get $0 if i32.const 0 i32.const 1568 @@ -5947,68 +5885,62 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#add + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - local.set $3 - local.get $1 - local.set $2 - block $__inlined_func$~lib/set/Set#find22 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u local.get $4 i32.const 255 @@ -6016,18 +5948,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - drop - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|023 end end i32.const 0 + local.set $0 end - i32.const 0 - i32.ne + local.get $0 i32.eqz if i32.const 0 @@ -6037,68 +5968,62 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - local.set $3 - local.get $1 - local.set $2 - block $__inlined_func$~lib/set/Set#find25 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load8_u local.get $4 i32.const 255 @@ -6106,16 +6031,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - drop - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|026 end end i32.const 0 + local.set $0 end + local.get $0 if i32.const 0 i32.const 1568 @@ -6124,14 +6050,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|8 end end - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -6143,9 +6069,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 call $~lib/set/Set#clear - local.get $0 + local.get $2 i32.load offset=20 if i32.const 0 @@ -6192,61 +6118,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $7 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 - local.get $4 + local.set $4 + local.get $3 local.set $2 loop $while-continue|0 - local.get $3 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $3 - local.tee $5 + local.get $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load16_s - local.tee $3 + local.tee $8 i32.store16 local.get $2 - local.get $3 + local.get $8 i32.extend16_s i32.const -1028477379 i32.mul @@ -6256,24 +6181,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $3 i32.xor local.get $1 i32.and @@ -6281,10 +6206,10 @@ i32.shl local.get $6 i32.add - local.tee $3 + local.tee $8 i32.load i32.store offset=4 - local.get $3 + local.get $8 local.get $2 i32.store local.get $2 @@ -6292,10 +6217,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 8 i32.add - local.set $3 + local.set $7 br $while-continue|0 end end @@ -6309,13 +6234,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -6330,79 +6255,77 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $2 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=4 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|0 end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -6436,18 +6359,18 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add local.tee $2 local.get $1 @@ -6539,51 +6462,50 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -6600,7 +6522,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -6609,8 +6530,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -6685,27 +6607,27 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 call $~lib/set/Set#constructor - local.tee $11 + local.tee $2 i32.store loop $for-loop|1 - local.get $1 + local.get $0 i32.extend16_s i32.const 100 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -6715,62 +6637,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $1 + i32.load16_u + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -6779,14 +6701,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -6796,62 +6718,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $1 + i32.load16_u + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -6861,14 +6783,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -6881,18 +6803,18 @@ unreachable end i32.const 50 - local.set $1 + local.set $0 loop $for-loop|3 - local.get $1 + local.get $0 i32.extend16_s i32.const 100 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -6902,62 +6824,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $1 + i32.load16_u + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -6967,14 +6889,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.extend16_s i32.const -1028477379 i32.mul @@ -6984,62 +6906,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $1 + i32.load16_u + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -7049,14 +6971,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|3 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -7069,8 +6991,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 + local.tee $1 + i32.const 0 + local.set $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -7082,13 +7006,13 @@ local.tee $1 i32.const 0 i32.store - local.get $11 + local.get $2 i32.load offset=8 - local.set $6 - local.get $11 + local.set $10 + local.get $2 i32.load offset=16 - local.tee $10 - local.set $8 + local.tee $11 + local.set $5 local.get $1 i32.const 8 i32.sub @@ -7122,7 +7046,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $8 + local.get $5 i32.const 536870910 i32.gt_u if @@ -7134,36 +7058,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.const 8 - local.get $8 + local.get $5 i32.const 8 i32.gt_u select i32.const 1 i32.shl - local.tee $9 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 - local.get $9 + local.get $6 + local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $7 + local.get $6 i32.store local.get $3 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $3 - local.get $7 + local.get $6 i32.store offset=4 local.get $3 - local.get $9 + local.get $8 i32.store offset=8 local.get $3 - local.get $8 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -7173,14 +7097,14 @@ local.get $3 i32.store loop $for-loop|0 - local.get $5 - local.get $10 + local.get $7 + local.get $11 i32.lt_s if - local.get $5 + local.get $7 i32.const 3 i32.shl - local.get $6 + local.get $10 i32.add local.tee $1 i32.load offset=4 @@ -7198,10 +7122,10 @@ i32.add local.set $0 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|0 end end @@ -7218,20 +7142,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $9 + local.tee $1 i32.store offset=8 loop $for-loop|4 - local.get $1 + local.get $3 i32.load offset=12 - local.get $2 + local.get $4 i32.gt_s if - local.get $1 - local.get $2 + local.get $3 + local.get $4 call $~lib/array/Array#__get local.tee $6 i32.extend16_s @@ -7243,49 +7166,49 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.set $3 - local.get $11 + local.set $0 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $3 - local.get $3 + local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $10 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u local.get $6 i32.const 65535 @@ -7293,17 +7216,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $10 + local.get $7 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -7313,21 +7236,21 @@ call $~lib/builtins/abort unreachable end - local.get $9 local.get $1 - local.get $2 + local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|4 end end - local.get $9 + local.get $1 i32.load offset=20 - local.get $11 + local.get $2 i32.load offset=20 i32.ne if @@ -7339,19 +7262,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|6 - local.get $2 + local.get $4 i32.extend16_s i32.const 50 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $1 + i32.load offset=4 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7361,62 +7283,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -7426,14 +7348,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7443,62 +7365,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|017 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -7507,14 +7429,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|6 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -7527,19 +7449,18 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|8 - local.get $2 + local.get $4 i32.extend16_s i32.const 50 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $1 + i32.load offset=4 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7549,62 +7470,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|020 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -7613,14 +7534,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7630,62 +7551,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|023 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -7695,14 +7616,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.extend16_s i32.const -1028477379 i32.mul @@ -7712,62 +7633,62 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $1 + local.get $4 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|026 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -7776,14 +7697,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|8 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -7795,9 +7716,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $2 call $~lib/set/Set#clear - local.get $11 + local.get $2 i32.load offset=20 if i32.const 0 @@ -7844,63 +7765,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $7 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 - local.get $4 + local.set $4 + local.get $3 local.set $2 loop $while-continue|0 - local.get $3 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $3 - local.tee $5 + local.get $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load16_u - local.tee $3 + local.tee $8 i32.store16 local.get $2 - local.get $3 - i32.const 65535 - i32.and + local.get $8 i32.const -1028477379 i32.mul i32.const 374761395 @@ -7909,24 +7827,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $3 i32.xor local.get $1 i32.and @@ -7934,10 +7852,10 @@ i32.shl local.get $6 i32.add - local.tee $3 + local.tee $8 i32.load i32.store offset=4 - local.get $3 + local.get $8 local.get $2 i32.store local.get $2 @@ -7945,10 +7863,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 8 i32.add - local.set $3 + local.set $7 br $while-continue|0 end end @@ -7962,13 +7880,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -7983,80 +7901,78 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=4 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - i32.load16_u local.get $2 + i32.load16_u + local.get $1 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|0 end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -8090,18 +8006,18 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add local.tee $2 local.get $1 @@ -8154,52 +8070,51 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -8216,7 +8131,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -8225,8 +8139,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -8301,99 +8216,94 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $1 i64.const 0 i64.store - local.get $6 + local.get $1 i32.const 0 i32.store offset=8 - local.get $6 + local.get $1 call $~lib/set/Set#constructor - local.tee $0 + local.tee $2 i32.store loop $for-loop|1 - local.get $2 + local.get $0 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $0 - local.set $5 local.get $2 - local.set $4 - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $6 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $5 + local.get $1 if - local.get $5 - local.get $5 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $1 i32.load16_u - local.get $6 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $5 + local.set $1 br $while-continue|0 end end i32.const 0 + local.set $1 end + local.get $1 if i32.const 0 i32.const 1568 @@ -8402,87 +8312,80 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 - call $~lib/set/Set#add local.get $0 - local.set $5 + call $~lib/set/Set#add local.get $2 - local.set $4 - block $__inlined_func$~lib/set/Set#find1 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $6 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $5 + local.get $1 if - local.get $5 - local.get $5 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $1 i32.load16_u - local.get $6 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - drop - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $5 + local.set $1 br $while-continue|02 end end i32.const 0 + local.set $1 end - i32.const 0 - i32.ne + local.get $1 i32.eqz if i32.const 0 @@ -8492,14 +8395,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|1 end end - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -8512,92 +8415,85 @@ unreachable end i32.const 50 - local.set $2 + local.set $0 loop $for-loop|3 - local.get $2 + local.get $0 i32.const 65535 i32.and i32.const 100 i32.lt_u if - local.get $0 - local.set $5 local.get $2 - local.set $4 - block $__inlined_func$~lib/set/Set#find4 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $6 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $5 + local.get $1 if - local.get $5 - local.get $5 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $1 i32.load16_u - local.get $6 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - drop - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $5 + local.set $1 br $while-continue|05 end end i32.const 0 + local.set $1 end - i32.const 0 - i32.ne + local.get $1 i32.eqz if i32.const 0 @@ -8607,87 +8503,80 @@ call $~lib/builtins/abort unreachable end - local.get $0 local.get $2 - call $~lib/set/Set#add local.get $0 - local.set $5 + call $~lib/set/Set#add local.get $2 - local.set $4 - block $__inlined_func$~lib/set/Set#find7 (result i32) - local.get $5 - i32.load - local.get $5 - i32.load offset=4 - local.get $4 - local.tee $6 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $5 - i32.const 15 - i32.shr_u - local.get $5 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $5 - i32.const 13 - i32.shr_u - local.get $5 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $5 - i32.const 16 - i32.shr_u - local.get $5 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $5 + local.get $1 if - local.get $5 - local.get $5 + local.get $1 i32.load offset=4 - local.tee $4 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $5 + local.get $1 i32.load16_u - local.get $6 + local.get $0 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - drop - local.get $4 + local.get $5 i32.const -2 i32.and - local.set $5 + local.set $1 br $while-continue|08 end end i32.const 0 + local.set $1 end - i32.const 0 - i32.ne + local.get $1 i32.eqz if i32.const 0 @@ -8697,14 +8586,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|3 end end - local.get $0 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -8717,8 +8606,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $6 + local.tee $1 + i32.const 0 + local.set $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -8727,17 +8618,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $2 i32.load offset=8 local.set $10 - local.get $0 + local.get $2 i32.load offset=16 local.tee $11 - local.set $4 - local.get $2 + local.set $5 + local.get $1 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -8746,31 +8637,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $3 i64.const 0 i64.store - local.get $6 + local.get $3 i32.const 16 i32.const 10 call $~lib/rt/itcms/__new - local.tee $6 + local.tee $3 i32.store - local.get $6 + local.get $3 i32.const 0 i32.store - local.get $6 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link - local.get $6 + local.get $3 i32.const 0 i32.store offset=4 - local.get $6 + local.get $3 i32.const 0 i32.store offset=8 - local.get $6 + local.get $3 i32.const 0 i32.store offset=12 - local.get $4 + local.get $5 i32.const 536870910 i32.gt_u if @@ -8782,9 +8673,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 8 - local.get $4 + local.get $5 i32.const 8 i32.gt_u select @@ -8793,32 +8684,32 @@ local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $6 i32.store offset=4 - local.get $5 + local.get $6 local.get $8 call $~lib/memory/memory.fill + local.get $3 local.get $6 - local.get $5 i32.store + local.get $3 local.get $6 - local.get $5 call $~lib/rt/itcms/__link + local.get $3 local.get $6 - local.get $5 i32.store offset=4 - local.get $6 + local.get $3 local.get $8 i32.store offset=8 - local.get $6 - local.get $4 + local.get $3 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $6 + local.get $1 + local.get $3 i32.store loop $for-loop|0 local.get $7 @@ -8830,21 +8721,21 @@ i32.shl local.get $10 i32.add - local.tee $2 + local.tee $1 i32.load offset=4 i32.const 1 i32.and i32.eqz if - local.get $6 local.get $3 - local.get $2 + local.get $0 + local.get $1 i32.load16_u call $~lib/array/Array#__set - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 end local.get $7 i32.const 1 @@ -8853,110 +8744,105 @@ br $for-loop|0 end end - local.get $6 local.get $3 + local.get $0 i32.const 1 i32.const 0 call $~lib/array/ensureCapacity - local.get $6 local.get $3 + local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 + local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $2 + local.tee $1 i32.store offset=8 loop $for-loop|4 - local.get $6 + local.get $3 i32.load offset=12 - local.get $1 + local.get $4 i32.gt_s if - local.get $0 - local.set $3 - local.get $6 - local.get $1 + local.get $3 + local.get $4 call $~lib/array/Array#__get - local.set $4 - block $__inlined_func$~lib/set/Set#find10 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $4 - local.tee $5 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.tee $6 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.set $0 + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $4 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u - local.get $5 + local.get $6 i32.const 65535 i32.and i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - drop - local.get $4 + local.get $7 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|011 end end i32.const 0 + local.set $0 end - i32.const 0 - i32.ne + local.get $0 i32.eqz if i32.const 0 @@ -8966,22 +8852,22 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $6 local.get $1 + local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|4 end end + local.get $1 + i32.load offset=20 local.get $2 i32.load offset=20 - local.get $0 - i32.load offset=20 i32.ne if i32.const 0 @@ -8992,73 +8878,67 @@ unreachable end i32.const 0 - local.set $1 + local.set $4 loop $for-loop|6 - local.get $1 + local.get $4 i32.const 65535 i32.and i32.const 50 i32.lt_u if + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - local.set $3 - local.get $1 - local.set $2 - block $__inlined_func$~lib/set/Set#find13 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u local.get $4 i32.const 65535 @@ -9066,18 +8946,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - drop - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|014 end end i32.const 0 + local.set $0 end - i32.const 0 - i32.ne + local.get $0 i32.eqz if i32.const 0 @@ -9087,68 +8966,62 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - local.set $3 - local.get $1 - local.set $2 - block $__inlined_func$~lib/set/Set#find16 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u local.get $4 i32.const 65535 @@ -9156,16 +9029,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - drop - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|017 end end i32.const 0 + local.set $0 end + local.get $0 if i32.const 0 i32.const 1568 @@ -9174,14 +9048,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|6 end end - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -9194,73 +9068,67 @@ unreachable end i32.const 0 - local.set $1 + local.set $4 loop $for-loop|8 - local.get $1 + local.get $4 i32.const 65535 i32.and i32.const 50 i32.lt_u if + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - local.set $3 - local.get $1 - local.set $2 - block $__inlined_func$~lib/set/Set#find19 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u local.get $4 i32.const 65535 @@ -9268,16 +9136,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - drop - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|020 end end i32.const 0 + local.set $0 end + local.get $0 if i32.const 0 i32.const 1568 @@ -9286,68 +9155,62 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#add + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - local.set $3 - local.get $1 - local.set $2 - block $__inlined_func$~lib/set/Set#find22 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u local.get $4 i32.const 65535 @@ -9355,18 +9218,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - drop - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|023 end end i32.const 0 + local.set $0 end - i32.const 0 - i32.ne + local.get $0 i32.eqz if i32.const 0 @@ -9376,68 +9238,62 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete + local.get $2 + i32.load + local.get $2 + i32.load offset=4 + local.get $4 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u local.get $0 - local.set $3 - local.get $1 - local.set $2 - block $__inlined_func$~lib/set/Set#find25 (result i32) - local.get $3 - i32.load - local.get $3 - i32.load offset=4 - local.get $2 - local.tee $4 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $0 if - local.get $3 - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 + local.get $0 i32.load16_u local.get $4 i32.const 65535 @@ -9445,16 +9301,17 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - drop - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|026 end end i32.const 0 + local.set $0 end + local.get $0 if i32.const 0 i32.const 1568 @@ -9463,14 +9320,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $1 + local.set $4 br $for-loop|8 end end - local.get $0 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -9482,9 +9339,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 call $~lib/set/Set#clear - local.get $0 + local.get $2 i32.load offset=20 if i32.const 0 @@ -9531,61 +9388,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $7 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 - local.get $4 + local.set $4 + local.get $3 local.set $2 loop $while-continue|0 - local.get $3 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $3 - local.tee $5 + local.get $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load - local.tee $3 + local.tee $8 i32.store local.get $2 - local.get $3 + local.get $8 i32.const -1028477379 i32.mul i32.const 374761397 @@ -9594,24 +9450,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $3 i32.xor local.get $1 i32.and @@ -9619,10 +9475,10 @@ i32.shl local.get $6 i32.add - local.tee $3 + local.tee $8 i32.load i32.store offset=4 - local.get $3 + local.get $8 local.get $2 i32.store local.get $2 @@ -9630,10 +9486,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 8 i32.add - local.set $3 + local.set $7 br $while-continue|0 end end @@ -9647,13 +9503,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -9668,76 +9524,74 @@ (local $2 i32) (local $3 i32) (local $4 i32) - (local $5 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + local.get $0 + i32.load + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=4 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $1 local.get $2 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|0 end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -9771,18 +9625,18 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add local.tee $2 local.get $1 @@ -9874,50 +9728,49 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -9932,7 +9785,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -9941,8 +9793,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -10017,26 +9870,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 call $~lib/set/Set#constructor - local.tee $11 + local.tee $2 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 100 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10045,60 +9898,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -10107,14 +9960,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10122,61 +9975,61 @@ i32.const 17 i32.rotl i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 + i32.mul + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -10186,14 +10039,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10206,17 +10059,17 @@ unreachable end i32.const 50 - local.set $1 + local.set $0 loop $for-loop|1 - local.get $1 + local.get $0 i32.const 100 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10225,60 +10078,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -10288,14 +10141,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10304,60 +10157,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -10367,14 +10220,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -10387,8 +10240,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 + local.tee $1 + i32.const 0 + local.set $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -10400,13 +10255,13 @@ local.tee $1 i32.const 0 i32.store - local.get $11 + local.get $2 i32.load offset=8 - local.set $6 - local.get $11 + local.set $10 + local.get $2 i32.load offset=16 - local.tee $10 - local.set $8 + local.tee $11 + local.set $5 local.get $1 i32.const 8 i32.sub @@ -10440,7 +10295,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $8 + local.get $5 i32.const 268435455 i32.gt_u if @@ -10452,36 +10307,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.const 8 - local.get $8 + local.get $5 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $9 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 - local.get $9 + local.get $6 + local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $7 + local.get $6 i32.store local.get $3 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $3 - local.get $7 + local.get $6 i32.store offset=4 local.get $3 - local.get $9 + local.get $8 i32.store offset=8 local.get $3 - local.get $8 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -10491,14 +10346,14 @@ local.get $3 i32.store loop $for-loop|01 - local.get $5 - local.get $10 + local.get $7 + local.get $11 i32.lt_s if - local.get $5 + local.get $7 i32.const 3 i32.shl - local.get $6 + local.get $10 i32.add local.tee $1 i32.load offset=4 @@ -10516,10 +10371,10 @@ i32.add local.set $0 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|01 end end @@ -10536,20 +10391,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $9 + local.tee $1 i32.store offset=8 loop $for-loop|2 - local.get $1 + local.get $3 i32.load offset=12 - local.get $2 + local.get $4 i32.gt_s if - local.get $1 - local.get $2 + local.get $3 + local.get $4 call $~lib/array/Array#__get local.tee $6 i32.const -1028477379 @@ -10560,65 +10414,65 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.set $3 - local.get $11 + local.set $0 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $3 - local.get $3 + local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $10 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $6 - local.get $3 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $10 + local.get $7 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -10628,21 +10482,21 @@ call $~lib/builtins/abort unreachable end - local.get $9 local.get $1 - local.get $2 + local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|2 end end - local.get $9 + local.get $1 i32.load offset=20 - local.get $11 + local.get $2 i32.load offset=20 i32.ne if @@ -10654,18 +10508,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|3 - local.get $2 + local.get $4 i32.const 50 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $1 + i32.load offset=4 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10674,60 +10527,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -10737,14 +10590,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10753,60 +10606,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|017 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -10815,14 +10668,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|3 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -10835,18 +10688,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|4 - local.get $2 + local.get $4 i32.const 50 i32.lt_s if - local.get $11 + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $1 + i32.load offset=4 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10855,60 +10707,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|020 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -10917,14 +10769,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -10933,60 +10785,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|023 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -10996,14 +10848,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11012,60 +10864,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|026 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -11074,14 +10926,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|4 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -11093,9 +10945,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $2 call $~lib/set/Set#clear - local.get $11 + local.get $2 i32.load offset=20 if i32.const 0 @@ -11142,61 +10994,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $5 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $7 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 - local.get $4 + local.set $4 + local.get $3 local.set $2 loop $while-continue|0 - local.get $3 - local.get $8 + local.get $4 + local.get $7 i32.ne if - local.get $3 - local.tee $5 + local.get $7 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $7 i32.load - local.tee $3 + local.tee $8 i32.store local.get $2 - local.get $3 + local.get $8 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11205,24 +11056,24 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $8 + local.get $8 i32.const 16 i32.shr_u - local.get $3 i32.xor local.get $1 i32.and @@ -11230,10 +11081,10 @@ i32.shl local.get $6 i32.add - local.tee $3 + local.tee $8 i32.load i32.store offset=4 - local.get $3 + local.get $8 local.get $2 i32.store local.get $2 @@ -11241,10 +11092,10 @@ i32.add local.set $2 end - local.get $5 + local.get $7 i32.const 8 i32.add - local.set $3 + local.set $7 br $while-continue|0 end end @@ -11258,13 +11109,13 @@ local.get $1 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -11277,78 +11128,76 @@ ) (func $~lib/set/Set#add (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $2 if - local.get $3 - local.get $3 + local.get $2 i32.load offset=4 - local.tee $5 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $1 local.get $2 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop - local.get $5 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $2 br $while-continue|0 end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -11382,18 +11231,18 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add local.tee $2 local.get $1 @@ -11446,50 +11295,49 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $1 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + local.tee $2 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + local.get $1 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + local.get $1 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + local.get $1 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $1 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $1 if - local.get $1 local.get $1 i32.load offset=4 local.tee $3 @@ -11504,7 +11352,6 @@ i32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -11513,8 +11360,9 @@ end end i32.const 0 + local.set $1 end - local.tee $1 + local.get $1 i32.eqz if return @@ -11589,26 +11437,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $1 i32.const 0 i32.store offset=8 - local.get $3 + local.get $1 call $~lib/set/Set#constructor - local.tee $11 + local.tee $2 i32.store loop $for-loop|0 - local.get $1 + local.get $0 i32.const 100 i32.lt_u if - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11617,60 +11465,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|0 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -11679,14 +11527,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11695,60 +11543,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|02 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -11758,14 +11606,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -11778,17 +11626,17 @@ unreachable end i32.const 50 - local.set $1 + local.set $0 loop $for-loop|1 - local.get $1 + local.get $0 i32.const 100 i32.lt_u if - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11797,60 +11645,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|05 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -11860,14 +11708,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $0 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $0 i32.const -1028477379 i32.mul i32.const 374761397 @@ -11876,60 +11724,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $1 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $3 + local.get $1 if - local.get $3 + local.get $1 i32.load offset=4 - local.tee $10 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else + local.get $0 local.get $1 - local.get $3 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $10 + local.get $5 i32.const -2 i32.and - local.set $3 + local.set $1 br $while-continue|08 end end i32.const 0 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.eqz if i32.const 0 @@ -11939,14 +11787,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|1 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 100 i32.ne @@ -11959,8 +11807,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 - local.get $3 + local.tee $1 + i32.const 0 + local.set $0 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -11972,13 +11822,13 @@ local.tee $1 i32.const 0 i32.store - local.get $11 + local.get $2 i32.load offset=8 - local.set $6 - local.get $11 + local.set $10 + local.get $2 i32.load offset=16 - local.tee $10 - local.set $8 + local.tee $11 + local.set $5 local.get $1 i32.const 8 i32.sub @@ -12012,7 +11862,7 @@ local.get $3 i32.const 0 i32.store offset=12 - local.get $8 + local.get $5 i32.const 268435455 i32.gt_u if @@ -12024,36 +11874,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $5 i32.const 8 - local.get $8 + local.get $5 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $9 + local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 - local.get $9 + local.get $6 + local.get $8 call $~lib/memory/memory.fill local.get $3 - local.get $7 + local.get $6 i32.store local.get $3 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $3 - local.get $7 + local.get $6 i32.store offset=4 local.get $3 - local.get $9 + local.get $8 i32.store offset=8 local.get $3 - local.get $8 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -12063,14 +11913,14 @@ local.get $3 i32.store loop $for-loop|01 - local.get $5 - local.get $10 + local.get $7 + local.get $11 i32.lt_s if - local.get $5 + local.get $7 i32.const 3 i32.shl - local.get $6 + local.get $10 i32.add local.tee $1 i32.load offset=4 @@ -12088,10 +11938,10 @@ i32.add local.set $0 end - local.get $5 + local.get $7 i32.const 1 i32.add - local.set $5 + local.set $7 br $for-loop|01 end end @@ -12108,20 +11958,19 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $3 - local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $9 + local.tee $1 i32.store offset=8 loop $for-loop|2 - local.get $1 + local.get $3 i32.load offset=12 - local.get $2 + local.get $4 i32.gt_s if - local.get $1 - local.get $2 + local.get $3 + local.get $4 call $~lib/array/Array#__get local.tee $6 i32.const -1028477379 @@ -12132,65 +11981,65 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.set $3 - local.get $11 + local.set $0 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $3 - local.get $3 + local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $10 + local.tee $7 i32.const 1 i32.and if (result i32) i32.const 0 else local.get $6 - local.get $3 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $10 + local.get $7 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|011 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -12200,21 +12049,21 @@ call $~lib/builtins/abort unreachable end - local.get $9 local.get $1 - local.get $2 + local.get $3 + local.get $4 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|2 end end - local.get $9 + local.get $1 i32.load offset=20 - local.get $11 + local.get $2 i32.load offset=20 i32.ne if @@ -12226,18 +12075,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|3 - local.get $2 + local.get $4 i32.const 50 i32.lt_u if - local.get $11 + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $1 + i32.load offset=4 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12246,60 +12094,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -12309,14 +12157,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12325,60 +12173,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|017 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -12387,14 +12235,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|3 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -12407,18 +12255,17 @@ unreachable end i32.const 0 - local.set $2 + local.set $4 loop $for-loop|4 - local.get $2 + local.get $4 i32.const 50 i32.lt_u if - local.get $11 + local.get $2 i32.load - local.get $11 - i32.load offset=4 local.get $2 - local.tee $1 + i32.load offset=4 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12427,60 +12274,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|020 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -12488,15 +12335,15 @@ i32.const 5 call $~lib/builtins/abort unreachable - end - local.get $11 - local.get $1 + end + local.get $2 + local.get $4 call $~lib/set/Set#add - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12505,60 +12352,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|023 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 i32.eqz if i32.const 0 @@ -12568,14 +12415,14 @@ call $~lib/builtins/abort unreachable end - local.get $11 - local.get $1 + local.get $2 + local.get $4 call $~lib/set/Set#delete - local.get $11 + local.get $2 i32.load - local.get $11 + local.get $2 i32.load offset=4 - local.get $1 + local.get $4 i32.const -1028477379 i32.mul i32.const 374761397 @@ -12584,60 +12431,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $3 - local.get $3 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $3 + local.get $0 if - local.get $3 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $3 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $1 - local.get $3 + local.get $4 + local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $2 + local.get $3 i32.const -2 i32.and - local.set $3 + local.set $0 br $while-continue|026 end end i32.const 0 - local.set $3 + local.set $0 end - local.get $3 + local.get $0 if i32.const 0 i32.const 1568 @@ -12646,14 +12493,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $4 i32.const 1 i32.add - local.set $2 + local.set $4 br $for-loop|4 end end - local.get $11 + local.get $2 i32.load offset=20 i32.const 50 i32.ne @@ -12665,9 +12512,9 @@ call $~lib/builtins/abort unreachable end - local.get $11 + local.get $2 call $~lib/set/Set#clear - local.get $11 + local.get $2 i32.load offset=20 if i32.const 0 @@ -12692,61 +12539,60 @@ ) (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 local.tee $2 @@ -12761,7 +12607,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $2 i32.const -2 i32.and @@ -12770,7 +12615,9 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) @@ -12779,8 +12626,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i64) + (local $6 i64) + (local $7 i32) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer @@ -12799,61 +12646,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $5 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $8 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $9 - local.get $4 + local.set $4 + local.get $3 local.set $2 loop $while-continue|0 - local.get $3 - local.get $9 + local.get $4 + local.get $8 i32.ne if - local.get $3 - local.tee $5 + local.get $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $8 i64.load - local.tee $7 + local.tee $6 i64.store local.get $2 - local.get $7 + local.get $1 + local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -12863,7 +12710,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $7 + local.get $6 i64.const 32 i64.shr_u i32.wrap_i64 @@ -12874,35 +12721,34 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $3 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add - local.tee $3 + local.tee $9 i32.load i32.store offset=8 - local.get $3 + local.get $9 local.get $2 i32.store local.get $2 @@ -12910,30 +12756,30 @@ i32.add local.set $2 end - local.get $5 + local.get $8 i32.const 16 i32.add - local.set $3 + local.set $8 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $7 i32.store local.get $0 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $8 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -12948,62 +12794,61 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -13018,7 +12863,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -13027,7 +12871,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -13061,18 +12907,18 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $2 i32.const 4 i32.shl - local.get $2 + local.get $3 i32.add local.tee $2 local.get $1 @@ -13164,61 +13010,60 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -13233,7 +13078,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -13242,8 +13086,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -13328,9 +13173,9 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) + (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -13350,23 +13195,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store loop $for-loop|0 - local.get $1 + local.get $3 i64.const 100 i64.lt_s if + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13376,11 +13221,11 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#add + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13391,14 +13236,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|0 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -13411,14 +13256,14 @@ unreachable end i64.const 50 - local.set $1 + local.set $3 loop $for-loop|1 - local.get $1 + local.get $3 i64.const 100 i64.lt_s if + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13429,11 +13274,11 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#add + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13444,14 +13289,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|1 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -13464,8 +13309,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -13474,17 +13319,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $4 i32.load offset=8 local.set $11 - local.get $3 + local.get $4 i32.load offset=16 local.tee $12 local.set $5 - local.get $4 + local.get $1 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -13493,28 +13339,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 local.get $5 @@ -13545,27 +13391,27 @@ local.get $6 local.get $9 call $~lib/memory/memory.fill - local.get $2 + local.get $1 local.get $6 i32.store - local.get $2 + local.get $1 local.get $6 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 local.get $6 i32.store offset=4 - local.get $2 + local.get $1 local.get $9 i32.store offset=8 - local.get $2 + local.get $1 local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $2 + local.get $1 i32.store loop $for-loop|01 local.get $8 @@ -13577,15 +13423,15 @@ i32.shl local.get $11 i32.add - local.tee $4 + local.tee $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 + local.get $1 local.get $0 - local.get $4 + local.get $2 i64.load call $~lib/array/Array#__set local.get $0 @@ -13600,32 +13446,32 @@ br $for-loop|01 end end - local.get $2 + local.get $1 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $2 i32.store offset=8 loop $for-loop|2 - local.get $2 + local.get $1 i32.load offset=12 local.get $7 i32.gt_s if - local.get $3 - local.get $2 + local.get $4 + local.get $1 local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has @@ -13638,8 +13484,8 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -13650,9 +13496,9 @@ br $for-loop|2 end end - local.get $4 + local.get $2 i32.load offset=20 - local.get $3 + local.get $4 i32.load offset=20 i32.ne if @@ -13664,14 +13510,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $3 loop $for-loop|3 - local.get $1 + local.get $3 i64.const 50 i64.lt_s if + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13682,11 +13528,11 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#delete + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13696,14 +13542,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|3 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -13716,14 +13562,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $3 loop $for-loop|4 - local.get $1 + local.get $3 i64.const 50 i64.lt_s if + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13733,11 +13579,11 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#add + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has i32.eqz if @@ -13748,11 +13594,11 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#delete + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -13762,14 +13608,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|4 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -13781,9 +13627,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 call $~lib/set/Set#clear - local.get $3 + local.get $4 i32.load offset=20 if i32.const 0 @@ -13808,61 +13654,60 @@ ) (func $~lib/set/Set#has (param $0 i32) (param $1 i64) (result i32) (local $2 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 local.tee $2 @@ -13877,7 +13722,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $2 i32.const -2 i32.and @@ -13886,7 +13730,9 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) @@ -13895,8 +13741,8 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i64) + (local $6 i64) + (local $7 i32) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer @@ -13915,61 +13761,61 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $8 + local.tee $5 i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $8 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $9 - local.get $4 + local.set $4 + local.get $3 local.set $2 loop $while-continue|0 - local.get $3 - local.get $9 + local.get $4 + local.get $8 i32.ne if - local.get $3 - local.tee $5 + local.get $8 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $8 i64.load - local.tee $7 + local.tee $6 i64.store local.get $2 - local.get $7 + local.get $1 + local.get $6 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -13979,7 +13825,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $7 + local.get $6 i64.const 32 i64.shr_u i32.wrap_i64 @@ -13990,35 +13836,34 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $3 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add - local.tee $3 + local.tee $9 i32.load i32.store offset=8 - local.get $3 + local.get $9 local.get $2 i32.store local.get $2 @@ -14026,30 +13871,30 @@ i32.add local.set $2 end - local.get $5 + local.get $8 i32.const 16 i32.add - local.set $3 + local.set $8 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $7 i32.store local.get $0 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $8 + local.get $5 i32.store offset=12 local.get $0 local.get $0 @@ -14064,62 +13909,61 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -14134,7 +13978,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -14143,7 +13986,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -14177,18 +14022,18 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $2 i32.const 4 i32.shl - local.get $2 + local.get $3 i32.add local.tee $2 local.get $1 @@ -14241,61 +14086,60 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -14310,7 +14154,6 @@ i64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -14319,8 +14162,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -14374,9 +14218,9 @@ ) (func $std/set/testNumeric (local $0 i32) - (local $1 i64) + (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 i64) (local $4 i32) (local $5 i32) (local $6 i32) @@ -14396,23 +14240,23 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 call $~lib/set/Set#constructor - local.tee $3 + local.tee $4 i32.store loop $for-loop|0 - local.get $1 + local.get $3 i64.const 100 i64.lt_u if + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14422,11 +14266,11 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#add + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14437,14 +14281,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|0 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -14457,14 +14301,14 @@ unreachable end i64.const 50 - local.set $1 + local.set $3 loop $for-loop|1 - local.get $1 + local.get $3 i64.const 100 i64.lt_u if + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14475,11 +14319,11 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#add + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14490,14 +14334,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|1 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 100 i32.ne @@ -14510,8 +14354,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $2 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -14520,17 +14364,18 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $4 i32.load offset=8 local.set $11 - local.get $3 + local.get $4 i32.load offset=16 local.tee $12 local.set $5 - local.get $4 + local.get $1 + local.tee $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -14539,28 +14384,28 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 16 i32.const 18 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 i32.store - local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 i32.const 0 i32.store offset=4 - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 0 i32.store offset=12 local.get $5 @@ -14591,27 +14436,27 @@ local.get $6 local.get $9 call $~lib/memory/memory.fill - local.get $2 + local.get $1 local.get $6 i32.store - local.get $2 + local.get $1 local.get $6 call $~lib/rt/itcms/__link - local.get $2 + local.get $1 local.get $6 i32.store offset=4 - local.get $2 + local.get $1 local.get $9 i32.store offset=8 - local.get $2 + local.get $1 local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $2 + local.get $1 i32.store loop $for-loop|01 local.get $8 @@ -14623,15 +14468,15 @@ i32.shl local.get $11 i32.add - local.tee $4 + local.tee $2 i32.load offset=8 i32.const 1 i32.and i32.eqz if - local.get $2 + local.get $1 local.get $0 - local.get $4 + local.get $2 i64.load call $~lib/array/Array#__set local.get $0 @@ -14646,32 +14491,32 @@ br $for-loop|01 end end - local.get $2 + local.get $1 local.get $0 i32.const 3 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 + local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $4 + local.tee $2 i32.store offset=8 loop $for-loop|2 - local.get $2 + local.get $1 i32.load offset=12 local.get $7 i32.gt_s if - local.get $3 - local.get $2 + local.get $4 + local.get $1 local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has @@ -14684,8 +14529,8 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $2 + local.get $1 local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add @@ -14696,9 +14541,9 @@ br $for-loop|2 end end - local.get $4 + local.get $2 i32.load offset=20 - local.get $3 + local.get $4 i32.load offset=20 i32.ne if @@ -14710,14 +14555,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $3 loop $for-loop|3 - local.get $1 + local.get $3 i64.const 50 i64.lt_u if + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14728,11 +14573,11 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#delete + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14742,14 +14587,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|3 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -14762,14 +14607,14 @@ unreachable end i64.const 0 - local.set $1 + local.set $3 loop $for-loop|4 - local.get $1 + local.get $3 i64.const 50 i64.lt_u if + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14779,11 +14624,11 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#add + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has i32.eqz if @@ -14794,11 +14639,11 @@ call $~lib/builtins/abort unreachable end + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#delete + local.get $4 local.get $3 - local.get $1 call $~lib/set/Set#has if i32.const 0 @@ -14808,14 +14653,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $3 i64.const 1 i64.add - local.set $1 + local.set $3 br $for-loop|4 end end - local.get $3 + local.get $4 i32.load offset=20 i32.const 50 i32.ne @@ -14827,9 +14672,9 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $4 call $~lib/set/Set#clear - local.get $3 + local.get $4 i32.load offset=20 if i32.const 0 @@ -14855,12 +14700,12 @@ (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) + (local $4 f32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f32) + (local $9 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -14877,61 +14722,60 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $7 + local.tee $6 i32.const 3 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $8 local.get $0 i32.load offset=16 i32.const 3 i32.shl i32.add - local.set $8 - local.get $4 + local.set $5 + local.get $3 local.set $2 loop $while-continue|0 - local.get $3 + local.get $5 local.get $8 i32.ne if - local.get $3 - local.tee $5 + local.get $8 i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $8 f32.load - local.tee $9 + local.tee $4 f32.store local.get $2 - local.get $9 + local.get $4 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -14941,35 +14785,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $9 + local.get $9 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $9 + local.get $9 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $9 + local.get $9 i32.const 16 i32.shr_u - local.get $3 i32.xor local.get $1 i32.and i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add - local.tee $3 + local.tee $9 i32.load i32.store offset=4 - local.get $3 + local.get $9 local.get $2 i32.store local.get $2 @@ -14977,30 +14821,30 @@ i32.add local.set $2 end - local.get $5 + local.get $8 i32.const 8 i32.add - local.set $3 + local.set $8 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $7 i32.store local.get $0 - local.get $6 + local.get $7 call $~lib/rt/itcms/__link local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $7 + local.get $6 i32.store offset=12 local.get $0 local.get $0 @@ -15009,57 +14853,56 @@ global.get $~lib/memory/__stack_pointer i32.const 8 i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#add (param $0 i32) (param $1 f32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#add (param $0 i32) (param $1 f32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + i32.load + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -15074,7 +14917,6 @@ f32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -15083,7 +14925,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -15117,18 +14961,18 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $2 + local.get $3 i32.add local.tee $2 local.get $1 @@ -15181,50 +15025,49 @@ (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=4 local.tee $3 @@ -15239,7 +15082,6 @@ f32.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -15248,8 +15090,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -15304,8 +15147,8 @@ (func $std/set/testNumeric (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f32) + (local $2 f32) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -15325,26 +15168,26 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 call $~lib/set/Set#constructor - local.tee $4 + local.tee $3 i32.store loop $for-loop|0 - local.get $3 + local.get $2 f32.const 100 f32.lt if - local.get $4 + local.get $3 i32.load - local.get $4 - i32.load offset=4 local.get $3 + i32.load offset=4 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15354,60 +15197,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/set/Set#find loop $while-continue|0 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $2 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find - local.get $2 + local.get $5 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|0 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -15416,14 +15259,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $2 call $~lib/set/Set#add - local.get $4 + local.get $3 i32.load - local.get $4 - i32.load offset=4 local.get $3 + i32.load offset=4 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15433,60 +15276,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/set/Set#find1 loop $while-continue|02 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $2 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find1 - local.get $2 + local.get $5 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|02 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -15496,14 +15339,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f32.const 1 f32.add - local.set $3 + local.set $2 br $for-loop|0 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -15516,17 +15359,17 @@ unreachable end f32.const 50 - local.set $3 + local.set $2 loop $for-loop|1 - local.get $3 + local.get $2 f32.const 100 f32.lt if - local.get $4 + local.get $3 i32.load - local.get $4 - i32.load offset=4 local.get $3 + i32.load offset=4 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15536,60 +15379,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/set/Set#find4 loop $while-continue|05 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $2 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find4 - local.get $2 + local.get $5 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|05 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -15599,14 +15442,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $2 call $~lib/set/Set#add - local.get $4 + local.get $3 i32.load - local.get $4 - i32.load offset=4 local.get $3 + i32.load offset=4 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15616,60 +15459,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/set/Set#find7 loop $while-continue|08 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $5 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $2 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find7 - local.get $2 + local.get $5 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|08 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -15679,14 +15522,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f32.const 1 f32.add - local.set $3 + local.set $2 br $for-loop|1 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 100 i32.ne @@ -15699,8 +15542,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -15709,17 +15552,17 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $4 + local.get $3 i32.load offset=8 - local.set $12 - local.get $4 + local.set $11 + local.get $3 i32.load offset=16 - local.tee $6 - local.set $7 - local.get $1 + local.tee $12 + local.set $5 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -15728,31 +15571,31 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $4 i64.const 0 i64.store - local.get $2 + local.get $4 i32.const 16 i32.const 20 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.const 0 i32.store - local.get $2 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link - local.get $2 + local.get $4 i32.const 0 i32.store offset=4 - local.get $2 + local.get $4 i32.const 0 i32.store offset=8 - local.get $2 + local.get $4 i32.const 0 i32.store offset=12 - local.get $7 + local.get $5 i32.const 268435455 i32.gt_u if @@ -15764,53 +15607,53 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $5 i32.const 8 - local.get $7 + local.get $5 i32.const 8 i32.gt_u select i32.const 2 i32.shl - local.tee $5 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $6 i32.store offset=4 - local.get $8 - local.get $5 + local.get $6 + local.get $9 call $~lib/memory/memory.fill - local.get $2 - local.get $8 + local.get $4 + local.get $6 i32.store - local.get $2 - local.get $8 + local.get $4 + local.get $6 call $~lib/rt/itcms/__link - local.get $2 - local.get $8 + local.get $4 + local.get $6 i32.store offset=4 - local.get $2 - local.get $5 + local.get $4 + local.get $9 i32.store offset=8 - local.get $2 - local.get $7 + local.get $4 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $2 + local.get $0 + local.get $4 i32.store loop $for-loop|01 - local.get $6 - local.get $10 - i32.gt_s + local.get $8 + local.get $12 + i32.lt_s if - local.get $10 + local.get $8 i32.const 3 i32.shl - local.get $12 + local.get $11 i32.add local.tee $5 i32.load offset=4 @@ -15818,20 +15661,20 @@ i32.and i32.eqz if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 1 i32.add - local.set $0 + local.set $1 local.get $5 f32.load - local.set $3 - local.get $2 + local.set $2 + local.get $4 i32.load offset=12 - local.get $1 + local.get $0 i32.le_u if - local.get $1 + local.get $0 i32.const 0 i32.lt_s if @@ -15842,63 +15685,62 @@ call $~lib/builtins/abort unreachable end - local.get $2 - local.get $1 + local.get $4 + local.get $0 i32.const 1 i32.add local.tee $5 i32.const 2 i32.const 1 call $~lib/array/ensureCapacity - local.get $2 + local.get $4 local.get $5 i32.store offset=12 end - local.get $2 + local.get $4 i32.load offset=4 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add - local.get $3 + local.get $2 f32.store end - local.get $10 + local.get $8 i32.const 1 i32.add - local.set $10 + local.set $8 br $for-loop|01 end end - local.get $2 - local.get $0 + local.get $4 + local.get $1 i32.const 2 i32.const 0 call $~lib/array/ensureCapacity - local.get $2 - local.get $0 + local.get $4 + local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.tee $0 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $6 + local.tee $1 i32.store offset=8 loop $for-loop|2 - local.get $0 + local.get $4 i32.load offset=12 - local.get $9 + local.get $7 i32.gt_s if - local.get $0 - local.get $9 + local.get $4 + local.get $7 call $~lib/array/Array#__get - local.tee $3 + local.tee $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -15908,65 +15750,65 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.set $1 - local.get $4 + local.set $0 + local.get $3 i32.load - local.get $4 + local.get $3 i32.load offset=4 - local.get $1 - local.get $1 + local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/set/Set#find10 loop $while-continue|011 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $2 + local.tee $6 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $2 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find10 - local.get $2 + local.get $6 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|011 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -15976,21 +15818,21 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $0 - local.get $9 + local.get $1 + local.get $4 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $9 + local.get $7 i32.const 1 i32.add - local.set $9 + local.set $7 br $for-loop|2 end end - local.get $6 + local.get $1 i32.load offset=20 - local.get $4 + local.get $3 i32.load offset=20 i32.ne if @@ -16002,17 +15844,17 @@ unreachable end f32.const 0 - local.set $3 + local.set $2 loop $for-loop|3 - local.get $3 + local.get $2 f32.const 50 f32.lt if - local.get $4 + local.get $3 i32.load - local.get $4 - i32.load offset=4 local.get $3 + i32.load offset=4 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -16022,60 +15864,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/set/Set#find13 loop $while-continue|014 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $2 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find13 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|014 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -16085,14 +15927,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $2 call $~lib/set/Set#delete - local.get $4 + local.get $3 i32.load - local.get $4 - i32.load offset=4 local.get $3 + i32.load offset=4 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -16102,60 +15944,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/set/Set#find16 loop $while-continue|017 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $2 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find16 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|017 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -16164,14 +16006,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f32.const 1 f32.add - local.set $3 + local.set $2 br $for-loop|3 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -16184,17 +16026,17 @@ unreachable end f32.const 0 - local.set $3 + local.set $2 loop $for-loop|4 - local.get $3 + local.get $2 f32.const 50 f32.lt if - local.get $4 + local.get $3 i32.load - local.get $4 - i32.load offset=4 local.get $3 + i32.load offset=4 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -16204,60 +16046,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/set/Set#find19 loop $while-continue|020 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $2 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find19 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|020 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -16266,14 +16108,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $2 call $~lib/set/Set#add - local.get $4 + local.get $3 i32.load - local.get $4 - i32.load offset=4 local.get $3 + i32.load offset=4 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -16283,60 +16125,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/set/Set#find22 loop $while-continue|023 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $2 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find22 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|023 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.eqz if i32.const 0 @@ -16346,14 +16188,14 @@ call $~lib/builtins/abort unreachable end - local.get $4 local.get $3 + local.get $2 call $~lib/set/Set#delete - local.get $4 + local.get $3 i32.load - local.get $4 - i32.load offset=4 local.get $3 + i32.load offset=4 + local.get $2 i32.reinterpret_f32 i32.const -1028477379 i32.mul @@ -16363,60 +16205,60 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul - local.tee $1 - local.get $1 + local.tee $0 i32.const 16 i32.shr_u + local.get $0 i32.xor i32.and i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 block $__inlined_func$~lib/set/Set#find25 loop $while-continue|026 - local.get $1 + local.get $0 if - local.get $1 + local.get $0 i32.load offset=4 - local.tee $0 + local.tee $4 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $3 - local.get $1 + local.get $2 + local.get $0 f32.load f32.eq end br_if $__inlined_func$~lib/set/Set#find25 - local.get $0 + local.get $4 i32.const -2 i32.and - local.set $1 + local.set $0 br $while-continue|026 end end i32.const 0 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 if i32.const 0 i32.const 1568 @@ -16425,14 +16267,14 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $2 f32.const 1 f32.add - local.set $3 + local.set $2 br $for-loop|4 end end - local.get $4 + local.get $3 i32.load offset=20 i32.const 50 i32.ne @@ -16444,9 +16286,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 call $~lib/set/Set#clear - local.get $4 + local.get $3 i32.load offset=20 if i32.const 0 @@ -16472,63 +16314,62 @@ (func $~lib/set/Set#has (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $2 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $2 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $2 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $2 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 local.tee $3 @@ -16543,7 +16384,6 @@ f64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -16552,20 +16392,22 @@ end end i32.const 0 + local.set $0 end + local.get $0 i32.const 0 i32.ne ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) + (local $4 i64) + (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f64) - (local $10 i64) + (local $9 i32) + (local $10 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -16582,21 +16424,21 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $5 + local.tee $2 i64.const 0 i64.store - local.get $5 + local.get $2 local.get $1 i32.const 1 i32.add - local.tee $4 + local.tee $2 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 3 i32.shl i32.const 3 @@ -16605,40 +16447,40 @@ i32.const 4 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $3 i32.store offset=4 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $9 local.get $0 i32.load offset=16 i32.const 4 i32.shl i32.add - local.set $8 - local.get $4 + local.set $6 + local.get $3 local.set $2 loop $while-continue|0 - local.get $3 - local.get $8 + local.get $6 + local.get $9 i32.ne if - local.get $3 - local.tee $5 + local.get $9 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $2 - local.get $5 + local.get $9 f64.load - local.tee $9 + local.tee $5 f64.store local.get $2 - local.get $9 + local.get $1 + local.get $5 i64.reinterpret_f64 - local.tee $10 + local.tee $4 i32.wrap_i64 i32.const -1028477379 i32.mul @@ -16648,7 +16490,7 @@ i32.rotl i32.const 668265263 i32.mul - local.get $10 + local.get $4 i64.const 32 i64.shr_u i32.wrap_i64 @@ -16659,35 +16501,34 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $3 + local.tee $10 + local.get $10 i32.const 15 i32.shr_u - local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $3 + local.tee $10 + local.get $10 i32.const 13 i32.shr_u - local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $3 + local.tee $10 + local.get $10 i32.const 16 i32.shr_u - local.get $3 i32.xor - local.get $1 i32.and i32.const 2 i32.shl - local.get $6 + local.get $8 i32.add - local.tee $3 + local.tee $10 i32.load i32.store offset=8 - local.get $3 + local.get $10 local.get $2 i32.store local.get $2 @@ -16695,27 +16536,27 @@ i32.add local.set $2 end - local.get $5 + local.get $9 i32.const 16 i32.add - local.set $3 + local.set $9 br $while-continue|0 end end local.get $0 - local.get $6 + local.get $8 i32.store local.get $0 - local.get $6 + local.get $8 call $~lib/rt/itcms/__link local.get $0 local.get $1 i32.store offset=4 local.get $0 - local.get $4 + local.get $3 i32.store offset=8 local.get $0 - local.get $4 + local.get $3 call $~lib/rt/itcms/__link local.get $0 local.get $7 @@ -16734,64 +16575,63 @@ (local $3 i32) (local $4 i64) (local $5 i32) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $1 - i64.reinterpret_f64 - local.tee $4 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - local.tee $5 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $1 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + local.tee $5 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -16806,7 +16646,6 @@ f64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -16815,7 +16654,9 @@ end end i32.const 0 + local.set $2 end + local.get $2 i32.eqz if local.get $0 @@ -16849,18 +16690,18 @@ end local.get $0 i32.load offset=8 - local.set $2 + local.set $3 local.get $0 local.get $0 i32.load offset=16 - local.tee $3 + local.tee $2 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $2 i32.const 4 i32.shl - local.get $2 + local.get $3 i32.add local.tee $2 local.get $1 @@ -16914,63 +16755,62 @@ (local $2 i32) (local $3 i32) (local $4 i64) - block $__inlined_func$~lib/set/Set#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - i64.reinterpret_f64 - local.tee $4 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $4 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $2 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i64.reinterpret_f64 + local.tee $4 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $4 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + local.get $2 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + local.get $2 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $2 + block $__inlined_func$~lib/set/Set#find loop $while-continue|0 local.get $2 if - local.get $2 local.get $2 i32.load offset=8 local.tee $3 @@ -16985,7 +16825,6 @@ f64.eq end br_if $__inlined_func$~lib/set/Set#find - drop local.get $3 i32.const -2 i32.and @@ -16994,8 +16833,9 @@ end end i32.const 0 + local.set $2 end - local.tee $2 + local.get $2 i32.eqz if return @@ -17071,13 +16911,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 call $~lib/set/Set#constructor local.tee $4 i32.store @@ -17185,8 +17025,8 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -17195,7 +17035,7 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store local.get $4 @@ -17204,8 +17044,9 @@ local.get $4 i32.load offset=16 local.tee $12 - local.set $6 - local.get $0 + local.set $5 + local.get $1 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer @@ -17238,7 +17079,7 @@ local.get $1 i32.const 0 i32.store offset=12 - local.get $6 + local.get $5 i32.const 134217727 i32.gt_u if @@ -17250,36 +17091,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 8 - local.get $6 + local.get $5 i32.const 8 i32.gt_u select i32.const 3 i32.shl - local.tee $5 + local.tee $9 i32.const 0 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $6 i32.store offset=4 - local.get $7 - local.get $5 + local.get $6 + local.get $9 call $~lib/memory/memory.fill local.get $1 - local.get $7 + local.get $6 i32.store local.get $1 - local.get $7 + local.get $6 call $~lib/rt/itcms/__link local.get $1 - local.get $7 + local.get $6 i32.store offset=4 local.get $1 - local.get $5 + local.get $9 i32.store offset=8 local.get $1 - local.get $6 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17289,11 +17130,11 @@ local.get $1 i32.store loop $for-loop|01 - local.get $9 + local.get $8 local.get $12 i32.lt_s if - local.get $9 + local.get $8 i32.const 4 i32.shl local.get $11 @@ -17349,10 +17190,10 @@ local.get $3 f64.store end - local.get $9 + local.get $8 i32.const 1 i32.add - local.set $9 + local.set $8 br $for-loop|01 end end @@ -17369,21 +17210,20 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $1 - local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer call $~lib/set/Set#constructor - local.tee $2 + local.tee $0 i32.store offset=8 loop $for-loop|2 - local.get $0 + local.get $1 i32.load offset=12 - local.get $8 + local.get $7 i32.gt_s if local.get $4 - local.get $0 - local.get $8 + local.get $1 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#has i32.eqz @@ -17395,19 +17235,19 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $0 - local.get $8 + local.get $1 + local.get $7 call $~lib/array/Array#__get call $~lib/set/Set#add - local.get $8 + local.get $7 i32.const 1 i32.add - local.set $8 + local.set $7 br $for-loop|2 end end - local.get $2 + local.get $0 i32.load offset=20 local.get $4 i32.load offset=20 diff --git a/tests/compiler/std/static-array.optimized.wat b/tests/compiler/std/static-array.optimized.wat index 8310c1c8eb..668d2cd2fe 100644 --- a/tests/compiler/std/static-array.optimized.wat +++ b/tests/compiler/std/static-array.optimized.wat @@ -161,7 +161,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -169,10 +168,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18396 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -186,7 +185,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -211,21 +210,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 1952 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1472 i32.const 1824 @@ -234,7 +231,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 1956 @@ -249,28 +246,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -2472,8 +2469,8 @@ i32.load offset=8 local.set $4 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $1 @@ -2515,9 +2512,9 @@ select local.set $5 block $~lib/util/memory/memmove|inlined.0 - local.get $0 local.get $4 local.tee $1 + local.get $0 i32.eq br_if $~lib/util/memory/memmove|inlined.0 local.get $0 diff --git a/tests/compiler/std/staticarray.optimized.wat b/tests/compiler/std/staticarray.optimized.wat index e4fd0397f5..807cc52cd7 100644 --- a/tests/compiler/std/staticarray.optimized.wat +++ b/tests/compiler/std/staticarray.optimized.wat @@ -251,7 +251,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -259,10 +258,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 19572 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -276,7 +275,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -301,21 +300,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 3088 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1088 i32.const 1536 @@ -324,7 +321,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 3092 @@ -339,28 +336,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1623,7 +1620,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1651,11 +1648,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1674,9 +1671,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1692,7 +1689,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1707,18 +1704,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1729,7 +1726,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1743,16 +1740,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1765,89 +1759,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1855,7 +1849,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2943,25 +2937,25 @@ (func $~lib/staticarray/StaticArray<~lib/string/String>#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3188 - i32.lt_s - if - i32.const 19600 - i32.const 19648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3188 + i32.lt_s + if + i32.const 19600 + i32.const 19648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf local.get $2 local.get $0 i32.const 20 @@ -2980,6 +2974,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf end local.get $2 @@ -3019,7 +3014,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 br $__inlined_func$~lib/staticarray/StaticArray<~lib/string/String>#indexOf end local.get $2 @@ -3034,7 +3028,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 + local.set $2 end + local.get $2 i32.const 0 i32.ge_s ) @@ -3045,37 +3041,37 @@ (local $5 i32) (local $6 i32) (local $7 i32) - block $__inlined_func$~lib/util/string/joinStringArray (result i32) - local.get $0 - i32.load offset=4 - local.set $7 - local.get $0 - i32.load offset=12 - local.set $5 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3188 - i32.lt_s - if - i32.const 19600 - i32.const 19648 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $6 - i64.const 0 - i64.store - local.get $6 - i32.const 0 - i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=12 + local.set $5 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3188 + i32.lt_s + if + i32.const 19600 + i32.const 19648 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinStringArray local.get $5 i32.const 1 i32.sub @@ -3088,6 +3084,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 2720 + local.set $0 br $__inlined_func$~lib/util/string/joinStringArray end local.get $6 @@ -3099,23 +3096,24 @@ i32.load local.tee $0 i32.store - local.get $1 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 i32.const 2720 local.get $0 select + local.set $0 + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinStringArray end loop $for-loop|0 - local.get $0 + local.get $3 local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 2 i32.shl local.get $7 @@ -3131,14 +3129,14 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.get $3 + local.get $0 i32.add - local.set $3 + local.set $0 end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|0 end end @@ -3152,50 +3150,50 @@ i32.shr_u local.tee $5 i32.mul - local.get $3 + local.get $0 i32.add i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $0 i32.store offset=8 i32.const 0 - local.set $0 + local.set $3 loop $for-loop|1 - local.get $0 + local.get $3 local.get $6 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.const 2 i32.shl local.get $7 i32.add i32.load - local.tee $3 + local.tee $4 i32.store offset=4 - local.get $3 + local.get $4 if local.get $2 i32.const 1 i32.shl - local.get $4 + local.get $0 i32.add - local.get $3 - local.get $3 + local.get $4 + local.get $4 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $3 + local.tee $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $2 - local.get $3 + local.get $4 i32.add local.set $2 end @@ -3204,7 +3202,7 @@ local.get $2 i32.const 1 i32.shl - local.get $4 + local.get $0 i32.add local.get $1 local.get $5 @@ -3216,10 +3214,10 @@ i32.add local.set $2 end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 br $for-loop|1 end end @@ -3230,17 +3228,17 @@ local.get $7 i32.add i32.load - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $1 if local.get $2 i32.const 1 i32.shl - local.get $4 - i32.add - local.get $0 local.get $0 + i32.add + local.get $1 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3254,8 +3252,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end + local.get $0 ) (func $~lib/staticarray/StaticArray~visit (param $0 i32) (local $1 i32) @@ -3392,9 +3390,9 @@ (local $0 i32) (local $1 i32) (local $2 i32) - (local $3 i32) + (local $3 f32) (local $4 f64) - (local $5 f32) + (local $5 i32) (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 28 @@ -3406,19 +3404,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $6 i64.const 0 i64.store - local.get $0 + local.get $6 i64.const 0 i64.store offset=8 - local.get $0 + local.get $6 i64.const 0 i64.store offset=16 - local.get $0 + local.get $6 i32.const 0 i32.store offset=24 - local.get $0 + local.get $6 i32.const 1056 i32.store i32.const 1056 @@ -3575,17 +3573,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.const 1312 i32.const 12 call $~lib/memory/memory.copy - local.get $0 + local.get $6 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $6 i32.store - local.get $0 + local.get $6 i32.const 0 call $~lib/staticarray/StaticArray#__get i32.const 5 @@ -3600,9 +3598,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $6 i32.store - local.get $0 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -3617,9 +3615,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $6 i32.store - local.get $0 + local.get $6 i32.const 2 call $~lib/staticarray/StaticArray#__get i32.const 7 @@ -3634,9 +3632,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $6 i32.store - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -3654,16 +3652,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $6 i32.store - local.get $0 + local.get $6 i32.const 8 call $~lib/staticarray/StaticArray#__set global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $6 i32.store - local.get $0 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 8 @@ -3679,17 +3677,17 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.const 1312 i32.const 12 call $~lib/memory/memory.copy - local.get $0 + local.get $6 global.set $std/staticarray/arr3 global.get $~lib/memory/__stack_pointer global.get $std/staticarray/arr3 - local.tee $0 + local.tee $6 i32.store - local.get $0 + local.get $6 i32.const 1 call $~lib/staticarray/StaticArray#__get i32.const 6 @@ -3706,33 +3704,33 @@ i32.const 8 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.store offset=4 - local.get $0 + local.get $6 call $std/staticarray/Ref#constructor - local.tee $1 + local.tee $0 i32.store + local.get $6 local.get $0 - local.get $1 i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $6 call $std/staticarray/Ref#constructor - local.tee $1 + local.tee $0 i32.store offset=4 + local.get $6 local.get $0 - local.get $1 i32.const 1 call $~lib/rt/itcms/__link - local.get $0 + local.get $6 global.set $std/staticarray/arr4 i32.const 0 global.set $std/staticarray/arr3 i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $0 + local.tee $6 + local.get $6 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -3741,25 +3739,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $6 i32.const 0 i32.store - local.get $0 + local.get $6 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.store - local.get $0 + local.get $6 i32.const 12 call $~lib/memory/memory.fill global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store offset=4 - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -3776,17 +3774,17 @@ unreachable end loop $for-loop|0 - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $2 + local.get $1 i32.gt_s if - local.get $0 - local.get $2 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray#__get if i32.const 0 @@ -3796,10 +3794,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|0 end end @@ -3808,16 +3806,16 @@ i32.const 6 i32.const 1728 call $~lib/rt/__newArray - local.tee $2 + local.tee $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 call $~lib/staticarray/StaticArray.fromArray - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $2 + local.get $6 i32.load offset=12 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3833,20 +3831,20 @@ unreachable end i32.const 0 - local.set $0 + local.set $1 loop $for-loop|1 - local.get $2 + local.get $6 i32.load offset=12 - local.get $0 + local.get $1 i32.gt_s if - local.get $1 local.get $0 + local.get $1 call $~lib/staticarray/StaticArray#__get - local.set $6 - local.get $2 + local.set $2 + local.get $6 i32.load offset=12 - local.get $0 + local.get $1 i32.le_u if i32.const 1088 @@ -3856,14 +3854,14 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $6 i32.load offset=4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.get $6 + local.get $2 i32.ne if i32.const 0 @@ -3873,10 +3871,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|1 end end @@ -3885,15 +3883,15 @@ i32.const 6 i32.const 1824 call $~lib/rt/__newArray - local.set $0 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store - local.get $0 + local.get $6 call $~lib/staticarray/StaticArray.fromArray - local.tee $0 + local.tee $6 i32.store offset=4 - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -3911,29 +3909,29 @@ i32.const 8 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.const 1856 i32.const 8 call $~lib/memory/memory.copy - local.get $0 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.const 1888 i32.const 4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 - local.get $2 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray.concat - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3953,25 +3951,25 @@ i32.const 0 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.const 1920 i32.const 0 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 - local.get $2 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray.concat - local.tee $2 + local.tee $1 i32.store offset=8 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -3990,26 +3988,26 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.const 2128 i32.const 20 call $~lib/memory/memory.copy - local.get $0 + local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.const 0 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4025,33 +4023,33 @@ unreachable end i32.const 0 - local.set $2 + local.set $1 loop $for-loop|2 - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $2 + local.get $1 i32.gt_s if - local.get $0 - local.get $2 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $6 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.store + local.get $0 local.get $1 - local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $5 i32.store offset=12 - local.get $6 - local.get $3 + local.get $2 + local.get $5 call $~lib/string/String.__eq i32.eqz if @@ -4062,21 +4060,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.const 1 i32.const 3 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4092,18 +4090,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $6 - local.get $1 + local.tee $2 + local.get $0 i32.store - local.get $6 + local.get $2 i32.const 1984 i32.store offset=12 - local.get $1 + local.get $0 i32.const 1984 call $~lib/string/String.__eq i32.eqz @@ -4115,18 +4113,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 1 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 2016 i32.store offset=12 - local.get $2 + local.get $1 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4139,13 +4137,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.const 1 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4153,7 +4151,7 @@ i32.shr_u i32.const 1 i32.sub - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4169,19 +4167,19 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.const 0 i32.const 50 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4197,13 +4195,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.const 100 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4218,13 +4216,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.const -1 i32.const 2147483647 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4240,18 +4238,18 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $2 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 2080 i32.store offset=12 - local.get $2 + local.get $1 i32.const 2080 call $~lib/string/String.__eq i32.eqz @@ -4264,13 +4262,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.const -2 i32.const -2 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4285,13 +4283,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.const 2 i32.const -2 call $~lib/staticarray/StaticArray.slice<~lib/string/String> - local.tee $0 + local.tee $6 i32.store offset=4 - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4307,18 +4305,18 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $6 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#__get - local.set $0 + local.set $6 global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $0 + local.tee $1 + local.get $6 i32.store - local.get $2 + local.get $1 i32.const 2016 i32.store offset=12 - local.get $0 + local.get $6 i32.const 2016 call $~lib/string/String.__eq i32.eqz @@ -4334,29 +4332,29 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.const 2304 i32.const 20 call $~lib/memory/memory.copy - local.get $0 + local.get $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 9 i32.const 2352 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 - local.get $2 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $2 + local.tee $1 i32.store offset=16 - local.get $2 + local.get $1 i32.load offset=12 - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4376,18 +4374,18 @@ i32.const 9 i32.const 2416 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=12 - local.get $0 - local.get $2 + local.get $6 + local.get $1 call $~lib/staticarray/StaticArray<~lib/string/String>#concat - local.tee $2 + local.tee $1 i32.store offset=16 - local.get $2 + local.get $1 i32.load offset=12 - local.get $0 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -4408,16 +4406,16 @@ i32.const 20 i32.const 8 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $6 i32.const 2448 i32.const 20 call $~lib/memory/memory.copy - local.get $0 + local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer i32.const 1984 i32.store offset=12 - local.get $0 + local.get $6 i32.const 1984 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4434,7 +4432,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2384 i32.store offset=12 - local.get $0 + local.get $6 i32.const 2384 i32.const 0 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4449,7 +4447,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $0 + local.get $6 i32.const 2080 i32.const 5 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4464,7 +4462,7 @@ global.get $~lib/memory/__stack_pointer i32.const 2080 i32.store offset=12 - local.get $0 + local.get $6 i32.const 2080 i32.const -1 call $~lib/staticarray/StaticArray<~lib/string/String>#includes @@ -4481,41 +4479,41 @@ i32.const 8 i32.const 10 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2496 i32.const 8 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store block $__inlined_func$~lib/staticarray/StaticArray#includes (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 3 i32.shr_u - local.tee $6 + local.tee $2 i32.const 0 - local.get $6 + local.get $2 select i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop loop $while-continue|0 - local.get $0 - local.get $6 + local.get $1 + local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $0 + local.get $1 i32.const 3 i32.shl - local.get $2 + local.get $6 i32.add f64.load local.tee $4 @@ -4527,10 +4525,10 @@ select br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0 end end @@ -4548,57 +4546,57 @@ i32.const 4 i32.const 11 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2528 i32.const 4 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $6 i32.store block $__inlined_func$~lib/staticarray/StaticArray#includes (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $6 + local.tee $2 i32.const 0 - local.get $6 + local.get $2 select i32.eqz br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - loop $while-continue|08 - local.get $0 - local.get $6 + loop $while-continue|07 + local.get $1 + local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add f32.load - local.tee $5 - local.get $5 + local.tee $3 + local.get $3 f32.ne - local.get $5 + local.get $3 f32.const nan:0x400000 f32.eq select br_if $__inlined_func$~lib/staticarray/StaticArray#includes drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|08 + local.set $1 + br $while-continue|07 end end i32.const 0 @@ -4616,39 +4614,40 @@ i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $6 i32.const 2560 i32.const 12 call $~lib/memory/memory.copy - local.get $2 + local.get $6 i32.store offset=16 i32.const 0 - local.set $0 - i32.const -1 local.set $1 block $__inlined_func$~lib/staticarray/StaticArray#indexOf - local.get $2 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $6 + local.tee $0 i32.const 0 - local.get $6 + local.get $0 select i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf - loop $while-continue|025 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/staticarray/StaticArray#indexOf + end + loop $while-continue|013 local.get $0 - local.get $6 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 2 @@ -4657,8 +4656,8 @@ local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|025 + local.set $1 + br $while-continue|013 end end i32.const -1 @@ -4674,42 +4673,43 @@ unreachable end i32.const 0 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf26 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf14 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $6 + local.tee $0 i32.const 0 - local.get $6 + local.get $0 select i32.eqz - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf26 - loop $while-continue|029 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/staticarray/StaticArray#indexOf14 + end + loop $while-continue|015 local.get $0 - local.get $6 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 7 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf26 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf14 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|029 + local.set $1 + br $while-continue|015 end end i32.const -1 @@ -4727,43 +4727,44 @@ unreachable end i32.const 2 - local.set $0 - i32.const -1 local.set $1 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf30 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf16 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $6 + local.tee $0 i32.const 2 i32.le_u i32.const 1 - local.get $6 + local.get $0 select - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf30 - loop $while-continue|032 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/staticarray/StaticArray#indexOf16 + end + loop $while-continue|017 local.get $0 - local.get $6 - i32.lt_s + local.get $1 + i32.gt_s if - local.get $0 - local.tee $1 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 9 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf30 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf16 local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|032 + local.set $1 + br $while-continue|017 end end i32.const -1 @@ -4780,57 +4781,59 @@ call $~lib/builtins/abort unreachable end - i32.const -1 - local.set $0 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf33 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf18 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.const -1 i32.le_s i32.const 1 - local.get $1 + local.get $0 select - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf33 - local.get $1 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/staticarray/StaticArray#indexOf18 + end + local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 - loop $while-continue|035 + local.set $1 + loop $while-continue|019 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf33 - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf18 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|035 + local.set $1 + br $while-continue|019 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -4841,57 +4844,59 @@ call $~lib/builtins/abort unreachable end - i32.const -1 - local.set $0 - block $__inlined_func$~lib/staticarray/StaticArray#indexOf36 - local.get $2 + block $__inlined_func$~lib/staticarray/StaticArray#indexOf20 + local.get $6 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.const -3 i32.le_s i32.const 1 - local.get $1 + local.get $0 select - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf36 - local.get $1 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/staticarray/StaticArray#indexOf20 + end + local.get $0 i32.const 3 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 - loop $while-continue|038 + local.set $1 + loop $while-continue|021 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf36 - local.get $0 + br_if $__inlined_func$~lib/staticarray/StaticArray#indexOf20 + local.get $1 i32.const 1 i32.add - local.set $0 - br $while-continue|038 + local.set $1 + br $while-continue|021 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1216 @@ -4905,22 +4910,22 @@ i32.const 9 i32.const 2688 call $~lib/rt/__newArray - local.tee $0 + local.tee $6 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 2752 i32.store offset=20 - local.get $0 + local.get $6 i32.const 2752 call $~lib/array/Array<~lib/string/String>#join - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 2784 i32.store offset=12 - local.get $2 + local.get $1 i32.const 2784 call $~lib/string/String.__eq i32.eqz @@ -4935,17 +4940,17 @@ global.get $~lib/memory/__stack_pointer i32.const 2720 i32.store offset=20 - local.get $0 + local.get $6 i32.const 2720 call $~lib/array/Array<~lib/string/String>#join - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 2832 i32.store offset=12 - local.get $2 + local.get $1 i32.const 2832 call $~lib/string/String.__eq i32.eqz @@ -4960,17 +4965,17 @@ global.get $~lib/memory/__stack_pointer i32.const 2880 i32.store offset=20 - local.get $0 + local.get $6 i32.const 2880 call $~lib/array/Array<~lib/string/String>#join - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 2912 i32.store offset=12 - local.get $2 + local.get $1 i32.const 2912 call $~lib/string/String.__eq i32.eqz @@ -4985,17 +4990,17 @@ global.get $~lib/memory/__stack_pointer i32.const 2960 i32.store offset=20 - local.get $0 + local.get $6 i32.const 2960 call $~lib/array/Array<~lib/string/String>#join - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 2992 i32.store offset=12 - local.get $2 + local.get $1 i32.const 2992 call $~lib/string/String.__eq i32.eqz @@ -5010,12 +5015,12 @@ global.get $~lib/memory/__stack_pointer i32.const 2752 i32.store offset=20 - local.get $0 + local.get $6 i32.const 2752 call $~lib/array/Array<~lib/string/String>#join - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -5026,25 +5031,25 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 2752 i32.store - local.get $0 + local.get $6 i32.const 2752 call $~lib/array/Array<~lib/string/String>#join - local.set $0 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store offset=12 - local.get $2 - local.get $0 + local.get $1 + local.get $6 call $~lib/string/String.__eq i32.eqz if @@ -5060,63 +5065,63 @@ i32.const 6 i32.const 3056 call $~lib/rt/__newArray - local.tee $0 + local.tee $6 i32.store offset=24 - local.get $0 + local.get $6 i32.load offset=12 - local.tee $6 - local.set $2 - i32.const -1 + local.tee $2 local.set $1 + i32.const -1 + local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf - local.get $6 + local.get $2 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf + local.get $1 local.get $2 - local.get $6 i32.add - local.get $6 + local.get $2 i32.const 1 i32.sub + local.get $1 + local.get $1 local.get $2 - local.get $2 - local.get $6 i32.ge_s select - local.get $2 + local.get $1 i32.const 0 i32.lt_s select - local.set $2 - local.get $0 + local.set $1 + local.get $6 i32.load offset=4 - local.set $6 - loop $while-continue|011 - local.get $2 + local.set $2 + loop $while-continue|00 + local.get $1 i32.const 0 i32.ge_s if - local.get $2 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $6 + local.get $2 i32.add i32.load i32.const 2 i32.eq br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $1 + local.get $0 i32.const 1 i32.sub - local.set $2 - br $while-continue|011 + local.set $1 + br $while-continue|00 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const 3 i32.ne if @@ -5127,63 +5132,61 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.tee $2 + local.get $6 i32.load offset=12 - local.set $0 - i32.const -1 + local.tee $2 local.set $1 - block $__inlined_func$~lib/array/Array#lastIndexOf16 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/array/Array#lastIndexOf5 local.get $2 - i32.load offset=12 - local.tee $6 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf16 - local.get $0 - local.get $6 + br_if $__inlined_func$~lib/array/Array#lastIndexOf5 + local.get $1 + local.get $2 i32.add - local.get $6 + local.get $2 i32.const 1 i32.sub - local.get $0 - local.get $0 - local.get $6 + local.get $1 + local.get $1 + local.get $2 i32.ge_s select - local.get $0 + local.get $1 i32.const 0 i32.lt_s select - local.set $0 - local.get $2 + local.set $1 + local.get $6 i32.load offset=4 - local.set $6 - loop $while-continue|017 - local.get $0 + local.set $2 + loop $while-continue|06 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - local.tee $1 + local.get $1 + local.tee $0 i32.const 2 i32.shl - local.get $6 + local.get $2 i32.add i32.load i32.const 7 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf16 - local.get $1 + br_if $__inlined_func$~lib/array/Array#lastIndexOf5 + local.get $0 i32.const 1 i32.sub - local.set $0 - br $while-continue|017 + local.set $1 + br $while-continue|06 end end i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -5194,14 +5197,16 @@ call $~lib/builtins/abort unreachable end - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf18 - local.get $2 + block $__inlined_func$~lib/array/Array#lastIndexOf7 + local.get $6 i32.load offset=12 local.tee $1 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf18 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/array/Array#lastIndexOf7 + end local.get $1 i32.const 1 i32.sub @@ -5210,35 +5215,35 @@ i32.const 3 i32.le_s select - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|040 - local.get $0 + local.get $6 + i32.load offset=4 + local.set $0 + loop $while-continue|023 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf18 - local.get $0 + br_if $__inlined_func$~lib/array/Array#lastIndexOf7 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|040 + local.set $1 + br $while-continue|023 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -5249,14 +5254,16 @@ call $~lib/builtins/abort unreachable end - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf28 - local.get $2 + block $__inlined_func$~lib/array/Array#lastIndexOf24 + local.get $6 i32.load offset=12 local.tee $1 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf28 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/array/Array#lastIndexOf24 + end local.get $1 i32.const 1 i32.sub @@ -5265,35 +5272,35 @@ i32.const 2 i32.le_s select - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|02941 - local.get $0 + local.get $6 + i32.load offset=4 + local.set $0 + loop $while-continue|025 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf28 - local.get $0 + br_if $__inlined_func$~lib/array/Array#lastIndexOf24 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|02941 + local.set $1 + br $while-continue|025 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1216 @@ -5302,46 +5309,48 @@ call $~lib/builtins/abort unreachable end - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf30 - local.get $2 + block $__inlined_func$~lib/array/Array#lastIndexOf26 + local.get $6 i32.load offset=12 local.tee $1 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf30 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/array/Array#lastIndexOf26 + end local.get $1 i32.const 2 i32.sub - local.set $0 - local.get $2 - i32.load offset=4 local.set $1 - loop $while-continue|031 - local.get $0 + local.get $6 + i32.load offset=4 + local.set $0 + loop $while-continue|027 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $0 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf30 - local.get $0 + br_if $__inlined_func$~lib/array/Array#lastIndexOf26 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|031 + local.set $1 + br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1216 @@ -5350,46 +5359,48 @@ call $~lib/builtins/abort unreachable end - i32.const -1 - local.set $0 - block $__inlined_func$~lib/array/Array#lastIndexOf32 - local.get $2 + block $__inlined_func$~lib/array/Array#lastIndexOf28 + local.get $6 i32.load offset=12 local.tee $1 i32.eqz - br_if $__inlined_func$~lib/array/Array#lastIndexOf32 + if + i32.const -1 + local.set $1 + br $__inlined_func$~lib/array/Array#lastIndexOf28 + end local.get $1 i32.const 1 i32.sub - local.set $0 - local.get $2 + local.set $1 + local.get $6 i32.load offset=4 - local.set $2 - loop $while-continue|033 - local.get $0 + local.set $6 + loop $while-continue|029 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $6 i32.add i32.load i32.const 2 i32.eq - br_if $__inlined_func$~lib/array/Array#lastIndexOf32 - local.get $0 + br_if $__inlined_func$~lib/array/Array#lastIndexOf28 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $while-continue|033 + local.set $1 + br $while-continue|029 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -5406,12 +5417,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|034 + loop $while-continue|08 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|034 + br $while-continue|08 end end end @@ -5614,22 +5625,22 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - local.tee $3 + i32.const 0 local.get $1 + select + local.tee $3 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 2 i32.shr_u - i32.const 0 - local.get $1 - select local.tee $4 i32.add local.tee $2 @@ -5653,16 +5664,16 @@ i32.store local.get $2 local.get $0 - local.get $3 + local.get $4 i32.const 2 i32.shl - local.tee $3 + local.tee $0 call $~lib/memory/memory.copy + local.get $0 local.get $2 - local.get $3 i32.add local.get $1 - local.get $4 + local.get $3 i32.const 2 i32.shl call $~lib/memory/memory.copy @@ -5764,7 +5775,7 @@ i32.shl local.get $0 i32.add - local.set $4 + local.set $1 i32.const 0 local.set $0 loop $while-continue|0 @@ -5776,13 +5787,13 @@ local.get $2 i32.add local.get $0 - local.get $4 + local.get $1 i32.add i32.load - local.tee $1 + local.tee $4 i32.store local.get $2 - local.get $1 + local.get $4 i32.const 1 call $~lib/rt/itcms/__link local.get $0 @@ -5895,7 +5906,7 @@ i32.const 0 local.get $1 select - local.tee $5 + local.tee $6 i32.add local.tee $3 i32.const 268435455 @@ -5917,7 +5928,7 @@ i32.store local.get $3 i32.load offset=4 - local.set $6 + local.set $5 local.get $2 i32.const 2 i32.shl @@ -5928,7 +5939,7 @@ i32.gt_u if local.get $4 - local.get $6 + local.get $5 i32.add local.get $0 local.get $4 @@ -5948,13 +5959,13 @@ end end local.get $2 - local.get $6 + local.get $5 i32.add local.set $4 local.get $1 i32.load offset=4 - local.set $2 - local.get $5 + local.set $1 + local.get $6 i32.const 2 i32.shl local.set $5 @@ -5969,13 +5980,13 @@ local.get $4 i32.add local.get $0 - local.get $2 + local.get $1 i32.add i32.load - local.tee $1 + local.tee $2 i32.store local.get $3 - local.get $1 + local.get $2 i32.const 1 call $~lib/rt/itcms/__link local.get $0 diff --git a/tests/compiler/std/string-casemapping.optimized.wat b/tests/compiler/std/string-casemapping.optimized.wat index e9b8c283a6..2733967504 100644 --- a/tests/compiler/std/string-casemapping.optimized.wat +++ b/tests/compiler/std/string-casemapping.optimized.wat @@ -573,7 +573,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -581,10 +580,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 37476 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -598,7 +597,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -623,9 +622,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -633,11 +631,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 21056 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1280 i32.const 1344 @@ -646,7 +643,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 21060 @@ -661,16 +658,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -678,11 +675,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1952,8 +1949,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -3487,25 +3484,25 @@ (local $3 i32) (local $4 i32) (local $5 i32) - block $__inlined_func$~lib/util/number/itoa64 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 21092 - i32.lt_s - if - i32.const 37504 - i32.const 37552 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21092 + i32.lt_s + if + i32.const 37504 + i32.const 37552 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa64 local.get $0 i64.eqz if @@ -3514,6 +3511,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 19200 + local.set $1 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 @@ -3533,48 +3531,48 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $1 local.tee $3 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -3582,16 +3580,16 @@ end local.get $4 i32.add - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 local.get $1 local.get $3 + local.get $2 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -3647,25 +3645,25 @@ end local.get $4 i32.add - local.tee $3 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $while-continue|0 local.get $0 i64.const 100000000 i64.ge_u if - local.get $3 + local.get $2 i32.const 4 i32.sub - local.tee $3 + local.tee $2 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add local.get $0 local.get $0 @@ -3676,7 +3674,7 @@ i64.mul i64.sub i32.wrap_i64 - local.tee $1 + local.tee $3 i32.const 10000 i32.rem_u local.tee $5 @@ -3699,18 +3697,18 @@ i64.shl i64.or i64.store - local.get $3 + local.get $2 i32.const 4 i32.sub - local.tee $3 + local.tee $2 i32.const 1 i32.shl - local.get $2 - i32.add local.get $1 + i32.add + local.get $3 i32.const 10000 i32.div_u - local.tee $1 + local.tee $3 i32.const 100 i32.div_u i32.const 2 @@ -3718,7 +3716,7 @@ i32.const 19212 i32.add i64.load32_u - local.get $1 + local.get $3 i32.const 100 i32.rem_u i32.const 2 @@ -3733,15 +3731,15 @@ br $while-continue|0 end end - local.get $2 + local.get $1 local.get $0 i32.wrap_i64 - local.get $3 + local.get $2 call $~lib/util/number/utoa32_dec_lut end local.get $4 if - local.get $2 + local.get $1 i32.const 45 i32.store16 end @@ -3749,32 +3747,32 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $1 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/string/String#concat (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 21092 - i32.lt_s - if - i32.const 37504 - i32.const 37552 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 21092 + i32.lt_s + if + i32.const 37504 + i32.const 37552 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/string/String#concat local.get $0 i32.const 20 i32.sub @@ -3802,6 +3800,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1056 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer @@ -3824,8 +3823,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -4083,22 +4082,22 @@ i32.shl i32.const 1488 i32.add - local.tee $1 + local.tee $2 i32.load16_u offset=6 - local.set $2 + local.set $1 local.get $5 i32.const 1 i32.shl local.get $6 i32.add local.tee $4 - local.get $1 + local.get $2 i32.load offset=2 i32.store local.get $4 - local.get $2 + local.get $1 i32.store16 offset=4 - local.get $2 + local.get $1 i32.const 0 i32.ne i32.const 1 @@ -4112,7 +4111,7 @@ call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.tee $2 + local.tee $1 i32.const 65536 i32.lt_u if @@ -4121,7 +4120,7 @@ i32.shl local.get $6 i32.add - local.get $2 + local.get $1 i32.store16 else local.get $5 @@ -4129,15 +4128,15 @@ i32.shl local.get $6 i32.add - local.get $2 + local.get $1 i32.const 65536 i32.sub - local.tee $2 + local.tee $1 i32.const 10 i32.shr_u i32.const 55296 i32.or - local.get $2 + local.get $1 i32.const 1023 i32.and i32.const 56320 @@ -4188,14 +4187,14 @@ global.set $~lib/memory/__stack_pointer ) (func $start:std/string-casemapping - (local $0 i32) + (local $0 i64) (local $1 i64) (local $2 i64) (local $3 i64) - (local $4 i64) + (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i64) + (local $6 i64) + (local $7 i32) (local $8 i32) (local $9 i32) global.get $~lib/memory/__stack_pointer @@ -4214,16 +4213,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $9 i64.const 0 i64.store - local.get $0 + local.get $9 i64.const 0 i64.store offset=8 - local.get $0 + local.get $9 i64.const 0 i64.store offset=16 - local.get $0 + local.get $9 i32.const 0 i32.store offset=24 memory.size @@ -4258,19 +4257,19 @@ i32.store i32.const 1376 global.set $~lib/rt/itcms/fromSpace - local.get $0 + local.get $9 i32.const 1056 i32.store offset=8 i32.const 1056 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - local.get $0 + local.get $9 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -4287,14 +4286,14 @@ i32.store offset=8 i32.const 1056 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 1056 i32.store offset=4 - local.get $0 + local.get $9 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -4311,14 +4310,14 @@ i32.store offset=8 i32.const 11808 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=4 - local.get $0 + local.get $9 i32.const 11856 call $~lib/string/String.__eq i32.eqz @@ -4335,14 +4334,14 @@ i32.store offset=8 i32.const 11904 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 11952 i32.store offset=4 - local.get $0 + local.get $9 i32.const 11952 call $~lib/string/String.__eq i32.eqz @@ -4359,14 +4358,14 @@ i32.store offset=8 i32.const 12000 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 12096 i32.store offset=4 - local.get $0 + local.get $9 i32.const 12096 call $~lib/string/String.__eq i32.eqz @@ -4383,14 +4382,14 @@ i32.store offset=8 i32.const 12096 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 12192 i32.store offset=4 - local.get $0 + local.get $9 i32.const 12192 call $~lib/string/String.__eq i32.eqz @@ -4407,14 +4406,14 @@ i32.store offset=8 i32.const 12288 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 12352 i32.store offset=4 - local.get $0 + local.get $9 i32.const 12352 call $~lib/string/String.__eq i32.eqz @@ -4431,14 +4430,14 @@ i32.store offset=8 i32.const 12352 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 12416 i32.store offset=4 - local.get $0 + local.get $9 i32.const 12416 call $~lib/string/String.__eq i32.eqz @@ -4455,14 +4454,14 @@ i32.store offset=8 i32.const 12480 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 12576 i32.store offset=4 - local.get $0 + local.get $9 i32.const 12576 call $~lib/string/String.__eq i32.eqz @@ -4479,14 +4478,14 @@ i32.store offset=8 i32.const 12576 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 12672 i32.store offset=4 - local.get $0 + local.get $9 i32.const 12672 call $~lib/string/String.__eq i32.eqz @@ -4503,14 +4502,14 @@ i32.store offset=8 i32.const 12768 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 12864 i32.store offset=4 - local.get $0 + local.get $9 i32.const 12864 call $~lib/string/String.__eq i32.eqz @@ -4527,14 +4526,14 @@ i32.store offset=8 i32.const 12864 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 12960 i32.store offset=4 - local.get $0 + local.get $9 i32.const 12960 call $~lib/string/String.__eq i32.eqz @@ -4551,14 +4550,14 @@ i32.store offset=8 i32.const 13056 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 13136 i32.store offset=4 - local.get $0 + local.get $9 i32.const 13136 call $~lib/string/String.__eq i32.eqz @@ -4575,14 +4574,14 @@ i32.store offset=8 i32.const 13216 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 13296 i32.store offset=4 - local.get $0 + local.get $9 i32.const 13296 call $~lib/string/String.__eq i32.eqz @@ -4599,14 +4598,14 @@ i32.store offset=8 i32.const 13376 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 13440 i32.store offset=4 - local.get $0 + local.get $9 i32.const 13440 call $~lib/string/String.__eq i32.eqz @@ -4623,14 +4622,14 @@ i32.store offset=8 i32.const 13504 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 13584 i32.store offset=4 - local.get $0 + local.get $9 i32.const 13584 call $~lib/string/String.__eq i32.eqz @@ -4647,14 +4646,14 @@ i32.store offset=8 i32.const 13664 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 13744 i32.store offset=4 - local.get $0 + local.get $9 i32.const 13744 call $~lib/string/String.__eq i32.eqz @@ -4671,14 +4670,14 @@ i32.store offset=8 i32.const 13824 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 13888 i32.store offset=4 - local.get $0 + local.get $9 i32.const 13888 call $~lib/string/String.__eq i32.eqz @@ -4695,14 +4694,14 @@ i32.store offset=8 i32.const 13952 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 14032 i32.store offset=4 - local.get $0 + local.get $9 i32.const 14032 call $~lib/string/String.__eq i32.eqz @@ -4719,14 +4718,14 @@ i32.store offset=8 i32.const 14112 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 14192 i32.store offset=4 - local.get $0 + local.get $9 i32.const 14192 call $~lib/string/String.__eq i32.eqz @@ -4743,14 +4742,14 @@ i32.store offset=8 i32.const 14272 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 14432 i32.store offset=4 - local.get $0 + local.get $9 i32.const 14432 call $~lib/string/String.__eq i32.eqz @@ -4767,14 +4766,14 @@ i32.store offset=8 i32.const 14272 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 14592 i32.store offset=4 - local.get $0 + local.get $9 i32.const 14592 call $~lib/string/String.__eq i32.eqz @@ -4791,14 +4790,14 @@ i32.store offset=8 i32.const 14752 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 14784 i32.store offset=4 - local.get $0 + local.get $9 i32.const 14784 call $~lib/string/String.__eq i32.eqz @@ -4815,14 +4814,14 @@ i32.store offset=8 i32.const 14816 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 14848 i32.store offset=4 - local.get $0 + local.get $9 i32.const 14848 call $~lib/string/String.__eq i32.eqz @@ -4839,14 +4838,14 @@ i32.store offset=8 i32.const 14880 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15088 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15088 call $~lib/string/String.__eq i32.eqz @@ -4863,20 +4862,20 @@ i32.store offset=12 i32.const 14752 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store offset=8 - local.get $0 + local.get $9 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15296 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15296 call $~lib/string/String.__eq i32.eqz @@ -4893,20 +4892,20 @@ i32.store offset=12 i32.const 15328 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store offset=8 - local.get $0 + local.get $9 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15360 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15360 call $~lib/string/String.__eq i32.eqz @@ -4923,20 +4922,20 @@ i32.store offset=12 i32.const 15392 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store offset=8 - local.get $0 + local.get $9 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15392 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15392 call $~lib/string/String.__eq i32.eqz @@ -4950,20 +4949,20 @@ end i32.const 65536 call $~lib/string/String.fromCodePoint - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store offset=8 - local.get $0 + local.get $9 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15648 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15648 call $~lib/string/String.__eq i32.eqz @@ -4977,20 +4976,20 @@ end i32.const 65536 call $~lib/string/String.fromCodePoint - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store offset=8 - local.get $0 + local.get $9 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15648 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15648 call $~lib/string/String.__eq i32.eqz @@ -5007,14 +5006,14 @@ i32.store offset=8 i32.const 15680 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15712 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15712 call $~lib/string/String.__eq i32.eqz @@ -5031,14 +5030,14 @@ i32.store offset=8 i32.const 15744 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15776 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15776 call $~lib/string/String.__eq i32.eqz @@ -5055,14 +5054,14 @@ i32.store offset=8 i32.const 15808 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15840 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15840 call $~lib/string/String.__eq i32.eqz @@ -5079,14 +5078,14 @@ i32.store offset=8 i32.const 15872 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15904 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15904 call $~lib/string/String.__eq i32.eqz @@ -5103,14 +5102,14 @@ i32.store offset=8 i32.const 15936 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 15968 i32.store offset=4 - local.get $0 + local.get $9 i32.const 15968 call $~lib/string/String.__eq i32.eqz @@ -5127,14 +5126,14 @@ i32.store offset=8 i32.const 16000 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16032 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16032 call $~lib/string/String.__eq i32.eqz @@ -5151,14 +5150,14 @@ i32.store offset=8 i32.const 16064 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16096 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16096 call $~lib/string/String.__eq i32.eqz @@ -5175,14 +5174,14 @@ i32.store offset=8 i32.const 16128 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16160 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16160 call $~lib/string/String.__eq i32.eqz @@ -5199,14 +5198,14 @@ i32.store offset=8 i32.const 16192 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16224 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16224 call $~lib/string/String.__eq i32.eqz @@ -5223,14 +5222,14 @@ i32.store offset=8 i32.const 16256 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16288 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16288 call $~lib/string/String.__eq i32.eqz @@ -5247,14 +5246,14 @@ i32.store offset=8 i32.const 16320 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16352 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16352 call $~lib/string/String.__eq i32.eqz @@ -5271,14 +5270,14 @@ i32.store offset=8 i32.const 16384 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16416 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16416 call $~lib/string/String.__eq i32.eqz @@ -5295,14 +5294,14 @@ i32.store offset=8 i32.const 16448 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16480 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16480 call $~lib/string/String.__eq i32.eqz @@ -5319,14 +5318,14 @@ i32.store offset=8 i32.const 16512 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16544 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16544 call $~lib/string/String.__eq i32.eqz @@ -5343,14 +5342,14 @@ i32.store offset=8 i32.const 16576 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16608 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16608 call $~lib/string/String.__eq i32.eqz @@ -5367,14 +5366,14 @@ i32.store offset=8 i32.const 16640 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16672 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16672 call $~lib/string/String.__eq i32.eqz @@ -5391,14 +5390,14 @@ i32.store offset=8 i32.const 16704 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16736 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16736 call $~lib/string/String.__eq i32.eqz @@ -5415,14 +5414,14 @@ i32.store offset=8 i32.const 16768 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16800 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16800 call $~lib/string/String.__eq i32.eqz @@ -5439,14 +5438,14 @@ i32.store offset=8 i32.const 16832 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16864 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16864 call $~lib/string/String.__eq i32.eqz @@ -5463,14 +5462,14 @@ i32.store offset=8 i32.const 16896 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16928 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16928 call $~lib/string/String.__eq i32.eqz @@ -5487,14 +5486,14 @@ i32.store offset=8 i32.const 16960 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16992 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16992 call $~lib/string/String.__eq i32.eqz @@ -5511,14 +5510,14 @@ i32.store offset=8 i32.const 17024 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17056 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17056 call $~lib/string/String.__eq i32.eqz @@ -5535,14 +5534,14 @@ i32.store offset=8 i32.const 17088 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17120 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17120 call $~lib/string/String.__eq i32.eqz @@ -5559,14 +5558,14 @@ i32.store offset=8 i32.const 17152 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17184 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17184 call $~lib/string/String.__eq i32.eqz @@ -5583,14 +5582,14 @@ i32.store offset=8 i32.const 17216 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17248 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17248 call $~lib/string/String.__eq i32.eqz @@ -5607,14 +5606,14 @@ i32.store offset=8 i32.const 17280 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 16352 i32.store offset=4 - local.get $0 + local.get $9 i32.const 16352 call $~lib/string/String.__eq i32.eqz @@ -5631,14 +5630,14 @@ i32.store offset=8 i32.const 17312 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17344 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17344 call $~lib/string/String.__eq i32.eqz @@ -5655,14 +5654,14 @@ i32.store offset=8 i32.const 17376 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17408 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17408 call $~lib/string/String.__eq i32.eqz @@ -5679,14 +5678,14 @@ i32.store offset=8 i32.const 17440 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17472 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17472 call $~lib/string/String.__eq i32.eqz @@ -5703,14 +5702,14 @@ i32.store offset=8 i32.const 17504 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17536 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17536 call $~lib/string/String.__eq i32.eqz @@ -5727,14 +5726,14 @@ i32.store offset=8 i32.const 17568 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17600 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17600 call $~lib/string/String.__eq i32.eqz @@ -5751,14 +5750,14 @@ i32.store offset=8 i32.const 17632 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17664 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17664 call $~lib/string/String.__eq i32.eqz @@ -5775,14 +5774,14 @@ i32.store offset=8 i32.const 17696 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17728 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17728 call $~lib/string/String.__eq i32.eqz @@ -5799,14 +5798,14 @@ i32.store offset=8 i32.const 17760 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17792 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17792 call $~lib/string/String.__eq i32.eqz @@ -5823,14 +5822,14 @@ i32.store offset=8 i32.const 17824 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17856 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17856 call $~lib/string/String.__eq i32.eqz @@ -5847,14 +5846,14 @@ i32.store offset=8 i32.const 17888 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17920 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17920 call $~lib/string/String.__eq i32.eqz @@ -5871,14 +5870,14 @@ i32.store offset=8 i32.const 17952 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 17984 i32.store offset=4 - local.get $0 + local.get $9 i32.const 17984 call $~lib/string/String.__eq i32.eqz @@ -5895,14 +5894,14 @@ i32.store offset=8 i32.const 18016 call $~lib/string/String#toLowerCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18048 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18048 call $~lib/string/String.__eq i32.eqz @@ -5919,14 +5918,14 @@ i32.store offset=8 i32.const 18080 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18112 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18112 call $~lib/string/String.__eq i32.eqz @@ -5943,14 +5942,14 @@ i32.store offset=8 i32.const 15328 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18144 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18144 call $~lib/string/String.__eq i32.eqz @@ -5967,14 +5966,14 @@ i32.store offset=8 i32.const 18176 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18208 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18208 call $~lib/string/String.__eq i32.eqz @@ -5991,14 +5990,14 @@ i32.store offset=8 i32.const 18240 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18272 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18272 call $~lib/string/String.__eq i32.eqz @@ -6015,14 +6014,14 @@ i32.store offset=8 i32.const 18304 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18336 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18336 call $~lib/string/String.__eq i32.eqz @@ -6039,14 +6038,14 @@ i32.store offset=8 i32.const 18368 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18400 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18400 call $~lib/string/String.__eq i32.eqz @@ -6063,14 +6062,14 @@ i32.store offset=8 i32.const 18432 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18400 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18400 call $~lib/string/String.__eq i32.eqz @@ -6087,14 +6086,14 @@ i32.store offset=8 i32.const 18464 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18496 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18496 call $~lib/string/String.__eq i32.eqz @@ -6111,14 +6110,14 @@ i32.store offset=8 i32.const 18528 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18560 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18560 call $~lib/string/String.__eq i32.eqz @@ -6135,14 +6134,14 @@ i32.store offset=8 i32.const 18592 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18624 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18624 call $~lib/string/String.__eq i32.eqz @@ -6159,14 +6158,14 @@ i32.store offset=8 i32.const 18656 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18688 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18688 call $~lib/string/String.__eq i32.eqz @@ -6183,14 +6182,14 @@ i32.store offset=8 i32.const 18720 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18752 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18752 call $~lib/string/String.__eq i32.eqz @@ -6207,14 +6206,14 @@ i32.store offset=8 i32.const 18784 call $~lib/string/String#toUpperCase - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 18816 i32.store offset=4 - local.get $0 + local.get $9 i32.const 18816 call $~lib/string/String.__eq i32.eqz @@ -6234,23 +6233,20 @@ global.get $~lib/memory/__stack_pointer local.get $8 call $~lib/string/String.fromCodePoint - local.tee $5 + local.tee $9 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $9 call $~lib/string/String#toLowerCase - local.tee $0 + local.tee $5 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $9 call $~lib/string/String#toUpperCase - local.tee $5 + local.tee $4 i32.store offset=24 - block $__inlined_func$~lib/string/String#codePointAt (result i32) - local.get $0 - local.set $6 - i32.const -1 - local.get $0 + block $__inlined_func$~lib/string/String#codePointAt + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -6258,13 +6254,16 @@ i32.shr_u local.tee $9 i32.eqz - br_if $__inlined_func$~lib/string/String#codePointAt - drop + if + i32.const -1 + local.set $9 + br $__inlined_func$~lib/string/String#codePointAt + end i32.const 1 local.get $9 i32.const 1 i32.eq - local.get $6 + local.get $5 i32.load16_u local.tee $9 i32.const 64512 @@ -6272,35 +6271,29 @@ i32.const 55296 i32.ne select - if - local.get $9 - br $__inlined_func$~lib/string/String#codePointAt - end - local.get $9 - local.get $6 + br_if $__inlined_func$~lib/string/String#codePointAt + local.get $5 i32.load16_u offset=2 - local.tee $6 + local.tee $7 i32.const 64512 i32.and i32.const 56320 i32.ne br_if $__inlined_func$~lib/string/String#codePointAt - drop - local.get $6 + local.get $7 local.get $9 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub + local.set $9 end + local.get $9 i64.extend_i32_s - local.set $1 - block $__inlined_func$~lib/string/String#codePointAt6 (result i32) - local.get $0 - local.set $6 - i32.const -1 - local.get $0 + local.set $0 + block $__inlined_func$~lib/string/String#codePointAt0 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -6309,13 +6302,16 @@ local.tee $9 i32.const 1 i32.le_u - br_if $__inlined_func$~lib/string/String#codePointAt6 - drop + if + i32.const -1 + local.set $9 + br $__inlined_func$~lib/string/String#codePointAt0 + end i32.const 1 local.get $9 i32.const 2 i32.eq - local.get $6 + local.get $5 i32.load16_u offset=2 local.tee $9 i32.const 64512 @@ -6323,44 +6319,39 @@ i32.const 55296 i32.ne select - if - local.get $9 - br $__inlined_func$~lib/string/String#codePointAt6 - end - local.get $9 - local.get $6 + br_if $__inlined_func$~lib/string/String#codePointAt0 + local.get $5 i32.load16_u offset=4 - local.tee $6 + local.tee $7 i32.const 64512 i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt6 - drop - local.get $6 + br_if $__inlined_func$~lib/string/String#codePointAt0 + local.get $7 local.get $9 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub + local.set $9 end + local.get $9 i64.extend_i32_s - local.tee $4 + local.tee $3 i64.const 0 i64.ge_s if - local.get $4 + local.get $3 i64.const 16 i64.shl - local.get $1 + local.get $0 i64.add - local.set $1 + local.set $0 end - block $__inlined_func$~lib/string/String#codePointAt8 (result i32) - i32.const -1 - local.get $0 - local.tee $6 + block $__inlined_func$~lib/string/String#codePointAt1 + local.get $5 i32.const 20 i32.sub i32.load offset=16 @@ -6369,58 +6360,57 @@ local.tee $9 i32.const 2 i32.le_u - br_if $__inlined_func$~lib/string/String#codePointAt8 - drop + if + i32.const -1 + local.set $9 + br $__inlined_func$~lib/string/String#codePointAt1 + end i32.const 1 local.get $9 i32.const 3 i32.eq - local.get $6 + local.get $5 i32.load16_u offset=4 - local.tee $0 + local.tee $9 i32.const 64512 i32.and i32.const 55296 i32.ne select - if - local.get $0 - br $__inlined_func$~lib/string/String#codePointAt8 - end - local.get $0 - local.get $6 + br_if $__inlined_func$~lib/string/String#codePointAt1 + local.get $5 i32.load16_u offset=6 - local.tee $6 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt8 - drop - local.get $6 - local.get $0 + br_if $__inlined_func$~lib/string/String#codePointAt1 + local.get $5 + local.get $9 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub + local.set $9 end + local.get $9 i64.extend_i32_s - local.tee $4 + local.tee $3 i64.const 0 i64.ge_s if - local.get $4 + local.get $3 i64.const 32 i64.shl - local.get $1 + local.get $0 i64.add - local.set $1 + local.set $0 end - block $__inlined_func$~lib/string/String#codePointAt10 (result i32) - i32.const -1 - local.get $5 - local.tee $0 + block $__inlined_func$~lib/string/String#codePointAt2 + local.get $4 + local.tee $5 i32.const 20 i32.sub i32.load offset=16 @@ -6428,48 +6418,46 @@ i32.shr_u local.tee $9 i32.eqz - br_if $__inlined_func$~lib/string/String#codePointAt10 - drop + if + i32.const -1 + local.set $9 + br $__inlined_func$~lib/string/String#codePointAt2 + end i32.const 1 local.get $9 i32.const 1 i32.eq - local.get $0 + local.get $5 i32.load16_u - local.tee $6 + local.tee $9 i32.const 64512 i32.and i32.const 55296 i32.ne select - if - local.get $6 - br $__inlined_func$~lib/string/String#codePointAt10 - end - local.get $6 - local.get $0 + br_if $__inlined_func$~lib/string/String#codePointAt2 + local.get $5 i32.load16_u offset=2 - local.tee $0 + local.tee $4 i32.const 64512 i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt10 - drop - local.get $0 - local.get $6 + br_if $__inlined_func$~lib/string/String#codePointAt2 + local.get $4 + local.get $9 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub + local.set $9 end + local.get $9 i64.extend_i32_s - local.set $4 - block $__inlined_func$~lib/string/String#codePointAt12 (result i32) - i32.const -1 + local.set $3 + block $__inlined_func$~lib/string/String#codePointAt3 local.get $5 - local.tee $0 i32.const 20 i32.sub i32.load offset=16 @@ -6478,186 +6466,184 @@ local.tee $9 i32.const 1 i32.le_u - br_if $__inlined_func$~lib/string/String#codePointAt12 - drop + if + i32.const -1 + local.set $9 + br $__inlined_func$~lib/string/String#codePointAt3 + end i32.const 1 local.get $9 i32.const 2 i32.eq - local.get $0 + local.get $5 i32.load16_u offset=2 - local.tee $6 + local.tee $9 i32.const 64512 i32.and i32.const 55296 i32.ne select - if - local.get $6 - br $__inlined_func$~lib/string/String#codePointAt12 - end - local.get $6 - local.get $0 + br_if $__inlined_func$~lib/string/String#codePointAt3 + local.get $5 i32.load16_u offset=4 - local.tee $0 + local.tee $4 i32.const 64512 i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt12 - drop - local.get $0 - local.get $6 + br_if $__inlined_func$~lib/string/String#codePointAt3 + local.get $4 + local.get $9 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub + local.set $9 end + local.get $9 i64.extend_i32_s - local.tee $3 + local.tee $2 i64.const 0 i64.ge_s if - local.get $3 + local.get $2 i64.const 16 i64.shl - local.get $4 + local.get $3 i64.add - local.set $4 + local.set $3 end - block $__inlined_func$~lib/string/String#codePointAt14 (result i32) - i32.const -1 + block $__inlined_func$~lib/string/String#codePointAt4 local.get $5 - local.tee $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $6 + local.tee $9 i32.const 2 i32.le_u - br_if $__inlined_func$~lib/string/String#codePointAt14 - drop + if + i32.const -1 + local.set $9 + br $__inlined_func$~lib/string/String#codePointAt4 + end i32.const 1 - local.get $6 + local.get $9 i32.const 3 i32.eq - local.get $0 + local.get $5 i32.load16_u offset=4 - local.tee $5 + local.tee $9 i32.const 64512 i32.and i32.const 55296 i32.ne select - if - local.get $5 - br $__inlined_func$~lib/string/String#codePointAt14 - end + br_if $__inlined_func$~lib/string/String#codePointAt4 local.get $5 - local.get $0 i32.load16_u offset=6 - local.tee $0 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.ne - br_if $__inlined_func$~lib/string/String#codePointAt14 - drop - local.get $0 + br_if $__inlined_func$~lib/string/String#codePointAt4 local.get $5 + local.get $9 i32.const 10 i32.shl i32.add i32.const 56613888 i32.sub + local.set $9 end + local.get $9 i64.extend_i32_s - local.tee $3 + local.tee $2 i64.const 0 i64.ge_s if - local.get $3 + local.get $2 i64.const 32 i64.shl - local.get $4 + local.get $3 i64.add - local.set $4 + local.set $3 end local.get $8 i32.const 0 call $std/string-casemapping/toLowerCaseFromIndex i64.extend_i32_s - local.set $3 + local.set $2 local.get $8 i32.const 1 call $std/string-casemapping/toLowerCaseFromIndex i64.extend_i32_s - local.tee $2 + local.tee $1 i64.const 0 i64.ge_s if - local.get $2 + local.get $1 i64.const 16 i64.shl - local.get $3 + local.get $2 i64.add - local.set $3 + local.set $2 end local.get $8 i32.const 2 call $std/string-casemapping/toLowerCaseFromIndex i64.extend_i32_s - local.tee $2 + local.tee $1 i64.const 0 i64.ge_s if - local.get $2 + local.get $1 i64.const 32 i64.shl - local.get $3 + local.get $2 i64.add - local.set $3 + local.set $2 end local.get $8 i32.const 0 call $std/string-casemapping/toUpperCaseFromIndex i64.extend_i32_s - local.set $2 + local.set $1 local.get $8 i32.const 1 call $std/string-casemapping/toUpperCaseFromIndex i64.extend_i32_s - local.tee $7 + local.tee $6 i64.const 0 i64.ge_s if - local.get $7 + local.get $6 i64.const 16 i64.shl - local.get $2 + local.get $1 i64.add - local.set $2 + local.set $1 end local.get $8 i32.const 2 call $std/string-casemapping/toUpperCaseFromIndex i64.extend_i32_s - local.tee $7 + local.tee $6 i64.const 0 i64.ge_s if - local.get $7 + local.get $6 i64.const 32 i64.shl - local.get $2 + local.get $1 i64.add - local.set $2 + local.set $1 end - local.get $1 - local.get $3 + local.get $0 + local.get $2 i64.ne if global.get $~lib/memory/__stack_pointer @@ -6675,20 +6661,20 @@ global.get $~lib/memory/__stack_pointer i32.const 18944 i32.store offset=4 - local.get $1 + local.get $0 call $~lib/number/I64#toString - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store offset=8 i32.const 18944 - local.get $0 + local.get $9 call $~lib/string/String.__concat - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store - local.get $0 + local.get $9 i32.const 0 f64.const 0 f64.const 0 @@ -6699,20 +6685,20 @@ global.get $~lib/memory/__stack_pointer i32.const 20784 i32.store offset=4 - local.get $3 + local.get $2 call $~lib/number/I64#toString - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store offset=8 i32.const 20784 - local.get $0 + local.get $9 call $~lib/string/String.__concat - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store - local.get $0 + local.get $9 i32.const 0 f64.const 0 f64.const 0 @@ -6721,8 +6707,8 @@ f64.const 0 call $~lib/builtins/trace end - local.get $2 - local.get $4 + local.get $1 + local.get $3 i64.ne if global.get $~lib/memory/__stack_pointer @@ -6740,20 +6726,20 @@ global.get $~lib/memory/__stack_pointer i32.const 20944 i32.store offset=4 - local.get $4 + local.get $3 call $~lib/number/I64#toString - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store offset=8 i32.const 20944 - local.get $0 + local.get $9 call $~lib/string/String.__concat - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store - local.get $0 + local.get $9 i32.const 0 f64.const 0 f64.const 0 @@ -6764,20 +6750,20 @@ global.get $~lib/memory/__stack_pointer i32.const 21008 i32.store offset=4 - local.get $2 + local.get $1 call $~lib/number/I64#toString - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store offset=8 i32.const 21008 - local.get $0 + local.get $9 call $~lib/string/String.__concat - local.set $0 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $9 i32.store - local.get $0 + local.get $9 i32.const 0 f64.const 0 f64.const 0 @@ -6809,7 +6795,6 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -6834,7 +6819,7 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.tee $9 + local.tee $8 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -6845,16 +6830,16 @@ return end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $8 i32.const 2 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $6 i32.store loop $for-loop|0 local.get $4 - local.get $9 + local.get $8 i32.lt_u if local.get $4 @@ -6863,18 +6848,18 @@ local.get $0 i32.add i32.load16_u - local.tee $2 + local.tee $3 i32.const 7 i32.shr_u if block $for-continue|0 - local.get $9 + local.get $8 i32.const 1 i32.sub local.get $4 i32.gt_u i32.const 0 - local.get $2 + local.get $3 i32.const 55295 i32.sub i32.const 1025 @@ -6887,7 +6872,7 @@ local.get $0 i32.add i32.load16_u offset=2 - local.tee $6 + local.tee $7 i32.const 56319 i32.sub i32.const 1025 @@ -6897,10 +6882,10 @@ i32.const 1 i32.add local.set $4 - local.get $6 + local.get $7 i32.const 1023 i32.and - local.get $2 + local.get $3 local.tee $1 i32.const 1023 i32.and @@ -6909,67 +6894,66 @@ i32.or i32.const 65536 i32.add - local.tee $2 + local.tee $3 i32.const 131072 i32.ge_u if - local.get $7 + local.get $5 i32.const 1 i32.shl - local.get $8 - i32.add local.get $6 + i32.add + local.get $7 i32.const 16 i32.shl local.get $1 i32.or i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-continue|0 end end end - local.get $2 + local.get $3 i32.const 304 i32.eq if - local.get $7 + local.get $5 i32.const 1 i32.shl - local.get $8 + local.get $6 i32.add i32.const 50790505 i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 else - local.get $2 + local.get $3 i32.const 931 i32.eq if - local.get $7 + local.get $5 i32.const 1 i32.shl - local.get $8 + local.get $6 i32.add i32.const 962 i32.const 963 - local.get $9 + local.get $8 i32.const 1 i32.gt_u if (result i32) block $~lib/util/string/isFinalSigma|inlined.0 (result i32) i32.const 0 - local.set $3 - local.get $4 + local.set $2 i32.const 0 local.get $4 - local.tee $2 + local.tee $3 i32.const 30 i32.sub local.tee $1 @@ -6977,21 +6961,20 @@ i32.const 0 i32.lt_s select - local.set $10 + local.set $9 loop $while-continue|1 - local.get $2 - local.get $10 + local.get $3 + local.get $9 i32.gt_s if i32.const -1 local.set $1 block $~lib/util/string/codePointBefore|inlined.0 - local.get $2 - local.tee $5 + local.get $3 i32.const 0 i32.le_s br_if $~lib/util/string/codePointBefore|inlined.0 - local.get $5 + local.get $3 i32.const 1 i32.sub i32.const 1 @@ -6999,22 +6982,22 @@ local.get $0 i32.add i32.load16_u - local.tee $2 + local.tee $7 i32.const 64512 i32.and i32.const 56320 i32.eq - local.get $5 + local.get $3 i32.const 2 i32.sub i32.const 0 i32.ge_s i32.and if - local.get $2 + local.get $7 i32.const 1023 i32.and - local.get $5 + local.get $3 i32.const 2 i32.sub i32.const 1 @@ -7022,7 +7005,7 @@ local.get $0 i32.add i32.load16_u - local.tee $11 + local.tee $10 i32.const 1023 i32.and i32.const 10 @@ -7031,7 +7014,7 @@ i32.const 65536 i32.add local.set $1 - local.get $11 + local.get $10 i32.const 64512 i32.and i32.const 55296 @@ -7039,8 +7022,8 @@ br_if $~lib/util/string/codePointBefore|inlined.0 end i32.const 65533 - local.get $2 - local.get $2 + local.get $7 + local.get $7 i32.const 63488 i32.and i32.const 55296 @@ -7049,11 +7032,10 @@ local.set $1 end local.get $1 - local.tee $2 i32.const 918000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 8 i32.shr_u i32.const 7212 @@ -7063,14 +7045,14 @@ i32.shl i32.const 7212 i32.add - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $2 + local.get $1 i32.const 7 i32.and i32.shr_u @@ -7081,11 +7063,12 @@ end i32.eqz if - local.get $2 + i32.const 0 + local.get $1 i32.const 127370 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 8 i32.shr_u i32.const 10220 @@ -7095,14 +7078,14 @@ i32.shl i32.const 10220 i32.add - local.get $2 + local.get $1 i32.const 255 i32.and i32.const 3 i32.shr_u i32.add i32.load8_u - local.get $2 + local.get $1 i32.const 7 i32.and i32.shr_u @@ -7111,48 +7094,47 @@ else i32.const 0 end - if (result i32) - i32.const 1 - else - i32.const 0 - br $~lib/util/string/isFinalSigma|inlined.0 - end - local.set $3 + i32.eqz + br_if $~lib/util/string/isFinalSigma|inlined.0 + drop + i32.const 1 + local.set $2 end - local.get $5 - local.get $2 + local.get $3 + local.get $1 i32.const 65536 i32.ge_s i32.const 1 i32.add i32.sub - local.set $2 + local.set $3 br $while-continue|1 end end i32.const 0 - local.get $3 + local.get $2 i32.eqz br_if $~lib/util/string/isFinalSigma|inlined.0 drop + local.get $4 i32.const 1 i32.add - local.tee $2 + local.tee $3 i32.const 30 i32.add local.tee $1 - local.get $9 + local.get $8 local.get $1 - local.get $9 + local.get $8 i32.lt_s select - local.set $6 + local.set $2 loop $while-continue|2 local.get $2 - local.get $6 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $2 + local.get $3 i32.const 1 i32.shl local.get $0 @@ -7163,26 +7145,26 @@ i32.and i32.const 55296 i32.eq - local.get $9 - local.get $2 + local.get $8 + local.get $3 i32.const 1 i32.add i32.ne i32.and if - local.get $2 + local.get $3 i32.const 1 i32.shl local.get $0 i32.add i32.load16_u offset=2 - local.tee $5 + local.tee $7 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $5 + local.get $7 local.get $1 i32.const 10 i32.shl @@ -7262,9 +7244,9 @@ i32.ge_u i32.const 1 i32.add - local.get $2 + local.get $3 i32.add - local.set $2 + local.set $3 br $while-continue|2 end end @@ -7276,53 +7258,53 @@ select i32.store16 else - local.get $2 + local.get $3 i32.const 9398 i32.sub i32.const 25 i32.le_u if - local.get $7 + local.get $5 i32.const 1 i32.shl - local.get $8 + local.get $6 i32.add - local.get $2 + local.get $3 i32.const 26 i32.add i32.store16 else - local.get $2 + local.get $3 i32.const 0 call $~lib/util/casemap/casemap i32.const 2097151 i32.and - local.tee $2 + local.tee $3 i32.const 65536 i32.lt_u if - local.get $7 + local.get $5 i32.const 1 i32.shl - local.get $8 + local.get $6 i32.add - local.get $2 + local.get $3 i32.store16 else - local.get $7 + local.get $5 i32.const 1 i32.shl - local.get $8 + local.get $6 i32.add - local.get $2 + local.get $3 i32.const 65536 i32.sub - local.tee $2 + local.tee $3 i32.const 10 i32.shr_u i32.const 55296 i32.or - local.get $2 + local.get $3 i32.const 1023 i32.and i32.const 56320 @@ -7331,22 +7313,22 @@ i32.shl i32.or i32.store - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 end end end end end else - local.get $7 + local.get $5 i32.const 1 i32.shl - local.get $8 + local.get $6 i32.add - local.get $2 + local.get $3 i32.const 7084 i32.add i32.load8_u @@ -7356,15 +7338,15 @@ i32.const 1 i32.add local.set $4 - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 br $for-loop|0 end end - local.get $8 - local.get $7 + local.get $6 + local.get $5 i32.const 1 i32.shl call $~lib/rt/itcms/__renew diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index 796f4c1fd2..dcb7a1ad25 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -158,7 +158,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -166,10 +165,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 38924 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -183,7 +182,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -208,9 +207,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -218,11 +216,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 22512 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1344 i32.const 1408 @@ -231,7 +228,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 22516 @@ -246,16 +243,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -263,11 +260,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1537,8 +1534,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2900,15 +2897,16 @@ (func $~start (local $0 i32) (local $1 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2920,7 +2918,7 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -2983,20 +2981,20 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 1056 i32.store - local.get $1 + local.get $0 i32.const 1056 call $~lib/string/String.UTF16.encode - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3010,7 +3008,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u i32.const 1 i32.ne @@ -3022,7 +3020,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=1 i32.const 216 i32.ne @@ -3034,7 +3032,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=2 i32.const 55 i32.ne @@ -3046,7 +3044,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=3 i32.const 220 i32.ne @@ -3058,7 +3056,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=4 i32.const 104 i32.ne @@ -3070,7 +3068,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=5 if i32.const 0 @@ -3080,7 +3078,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=6 i32.const 105 i32.ne @@ -3092,7 +3090,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=7 if i32.const 0 @@ -3102,7 +3100,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=8 i32.const 82 i32.ne @@ -3114,7 +3112,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=9 i32.const 216 i32.ne @@ -3126,7 +3124,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=10 i32.const 98 i32.ne @@ -3138,7 +3136,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=11 i32.const 223 i32.ne @@ -3161,7 +3159,7 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3185,9 +3183,10 @@ call $~lib/string/String.UTF16.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1056 i32.store offset=8 local.get $0 @@ -3206,165 +3205,365 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF16DecodeUnsafe global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 + i64.const 0 + i64.store + local.get $0 i32.const 0 - i32.store + i32.store offset=8 local.get $0 i32.const 1056 i32.store + local.get $0 + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 1056 + i32.store + i32.const 1052 + i32.load + local.set $2 + local.get $0 i32.const 0 - call $~lib/string/String.UTF8.byteLength - i32.const 10 - i32.ne + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1552 + i32.store offset=8 + local.get $1 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 55 + i32.const 42 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + local.get $2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 1056 + local.tee $2 + local.get $1 i32.store + local.get $2 i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 11 - i32.ne + i32.store offset=8 + local.get $1 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 56 + i32.const 43 i32.const 3 call $~lib/builtins/abort unreachable end - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22540 - i32.lt_s - br_if $folding-inner0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store + local.tee $2 local.get $1 - i32.const 1056 i32.store - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $1 - i32.store offset=4 + local.get $2 + i32.const 1584 + i32.store offset=8 local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 10 - i32.ne + i32.const 1584 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 63 + i32.const 44 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 4 + i32.add + i32.const 2 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $2 local.get $1 - i32.load8_u - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store + local.get $2 + i32.const 1616 + i32.store offset=8 local.get $1 - i32.load8_u offset=1 - i32.const 144 - i32.ne + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 65 + i32.const 45 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 4 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $2 local.get $1 - i32.load8_u offset=2 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.store + local.get $2 + i32.const 1648 + i32.store offset=8 local.get $1 - i32.load8_u offset=3 - i32.const 183 - i32.ne + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 67 + i32.const 46 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 8 + i32.add + i32.const 4 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $1 + global.get $~lib/memory/__stack_pointer + local.tee $2 local.get $1 - i32.load8_u offset=4 - i32.const 104 - i32.ne + i32.store + local.get $2 + i32.const 1680 + i32.store offset=8 + local.get $1 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 68 + i32.const 47 i32.const 3 call $~lib/builtins/abort unreachable end + local.get $0 + i32.const 12 + i32.add + i32.const 0 + call $~lib/string/String.UTF16.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store local.get $1 - i32.load8_u offset=5 - i32.const 105 - i32.ne + i32.const 1552 + i32.store offset=8 + local.get $0 + i32.const 1552 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 1088 - i32.const 69 + i32.const 48 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 1056 + i32.store + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 11 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22540 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i32.const 1056 + i32.store + i32.const 1 + global.set $~argumentsLength + local.get $0 + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 183 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.load8_u offset=6 i32.const 240 i32.ne @@ -3376,7 +3575,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=7 i32.const 164 i32.ne @@ -3388,7 +3587,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=8 i32.const 173 i32.ne @@ -3400,7 +3599,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=9 i32.const 162 i32.ne @@ -3423,23 +3622,23 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 1056 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $0 i32.const 1056 i32.const 1 call $~lib/string/String.UTF8.encode@varargs - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 20 i32.sub i32.load offset=16 @@ -3453,7 +3652,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u i32.const 240 i32.ne @@ -3465,7 +3664,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=1 i32.const 144 i32.ne @@ -3477,7 +3676,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=2 i32.const 144 i32.ne @@ -3489,7 +3688,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=3 i32.const 183 i32.ne @@ -3501,7 +3700,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=4 i32.const 104 i32.ne @@ -3513,7 +3712,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=5 i32.const 105 i32.ne @@ -3525,7 +3724,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=6 i32.const 240 i32.ne @@ -3537,7 +3736,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=7 i32.const 164 i32.ne @@ -3549,7 +3748,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=8 i32.const 173 i32.ne @@ -3561,7 +3760,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=9 i32.const 162 i32.ne @@ -3573,7 +3772,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load8_u offset=10 if i32.const 0 @@ -3594,7 +3793,7 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3603,20 +3802,19 @@ i32.const 0 i32.store offset=8 local.get $0 - local.tee $1 i32.const 1824 i32.store offset=4 i32.const 1824 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.encode - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store local.get $1 + i32.store local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -3761,7 +3959,7 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3789,9 +3987,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1056 i32.store offset=8 local.get $0 @@ -3817,7 +4016,7 @@ global.get $~lib/memory/__stack_pointer i32.const 22540 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -3851,9 +4050,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $0 i32.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 1056 i32.store offset=8 local.get $0 @@ -3935,320 +4135,107 @@ i32.store local.get $0 i32.const 1968 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1920 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=24 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - call $~lib/string/String.UTF8.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 1968 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF8DecodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 2032 - i32.store - i32.const 2032 - call $std/string-encoding/testLarge - global.get $~lib/memory/__stack_pointer - i32.const 15152 - i32.store - i32.const 15152 - call $std/string-encoding/testLarge - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 - end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end - end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 38944 - i32.const 38992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $std/string-encoding/testUTF16DecodeUnsafe - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22540 - i32.lt_s - if - i32.const 38944 - i32.const 38992 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1052 - i32.load - local.set $1 - local.get $2 - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1552 - i32.store offset=8 - local.get $0 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - local.get $1 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 1584 - i32.store offset=8 - local.get $0 - i32.const 1584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 4 - i32.add - i32.const 2 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 1616 - i32.store offset=8 - local.get $0 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 4 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 1648 - i32.store offset=8 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 8 - i32.add - i32.const 4 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store - local.get $1 - i32.const 1680 - i32.store offset=8 - local.get $0 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 12 - i32.add - i32.const 0 - call $~lib/string/String.UTF16.decodeUnsafe - local.set $2 - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.store - local.get $0 - i32.const 1552 - i32.store offset=8 - local.get $2 - i32.const 1552 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1920 i32.const 0 - i32.const 1088 - i32.const 48 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=24 + local.get $0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + call $~lib/string/String.UTF8.decodeUnsafe + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF8DecodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 2032 + i32.store + i32.const 2032 + call $std/string-encoding/testLarge + global.get $~lib/memory/__stack_pointer + i32.const 15152 + i32.store + i32.const 15152 + call $std/string-encoding/testLarge + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 38944 + i32.const 38992 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) (func $std/string-encoding/testUTF8DecodeUnsafe (local $0 i32) @@ -4270,22 +4257,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $0 + local.get $1 i32.const 0 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1056 i32.store i32.const 2 global.set $~argumentsLength - local.get $0 + local.get $1 i32.const 1056 i32.const 1 call $~lib/string/String.UTF8.encode@varargs - local.tee $2 + local.tee $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 1056 @@ -4293,8 +4280,8 @@ i32.const 1056 i32.const 0 call $~lib/string/String.UTF8.byteLength - local.set $1 - local.get $2 + local.set $2 + local.get $1 i32.const 0 i32.const 0 call $~lib/string/String.UTF8.decodeUnsafe @@ -4317,16 +4304,16 @@ call $~lib/builtins/abort unreachable end - local.get $2 local.get $1 + local.get $2 i32.const 0 call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 1056 i32.store offset=8 local.get $0 @@ -4341,16 +4328,16 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 4 i32.const 0 call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 1584 i32.store offset=8 local.get $0 @@ -4365,7 +4352,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 4 i32.add i32.const 2 @@ -4373,10 +4360,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 1648 i32.store offset=8 local.get $0 @@ -4391,7 +4378,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 6 i32.add i32.const 4 @@ -4399,10 +4386,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 1680 i32.store offset=8 local.get $0 @@ -4417,7 +4404,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 10 i32.add i32.const 0 @@ -4425,10 +4412,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 1552 i32.store offset=8 local.get $0 @@ -4443,7 +4430,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 4 i32.add i32.const 100 @@ -4451,10 +4438,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 2000 i32.store offset=8 local.get $0 @@ -4469,7 +4456,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 6 i32.add i32.const 100 @@ -4477,10 +4464,10 @@ call $~lib/string/String.UTF8.decodeUnsafe local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 local.get $0 i32.store - local.get $1 + local.get $2 i32.const 1680 i32.store offset=8 local.get $0 @@ -4495,21 +4482,21 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 10 i32.add i32.const 100 i32.const 1 call $~lib/string/String.UTF8.decodeUnsafe - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer local.tee $0 - local.get $2 + local.get $1 i32.store local.get $0 i32.const 1552 i32.store offset=8 - local.get $2 + local.get $1 i32.const 1552 call $~lib/string/String.__eq i32.eqz @@ -4722,10 +4709,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 0 i32.store - local.get $4 + local.get $3 local.get $0 local.get $1 call $~lib/string/String.UTF8.byteLength @@ -4733,9 +4720,11 @@ call $~lib/rt/itcms/__new local.tee $5 i32.store - local.get $5 - local.set $4 local.get $0 + local.set $4 + local.get $5 + local.set $0 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -4743,24 +4732,24 @@ i32.shr_u i32.const 1 i32.shl - local.get $0 + local.get $4 i32.add local.set $6 loop $while-continue|0 - local.get $0 + local.get $4 local.get $6 i32.lt_u if - local.get $0 + local.get $4 i32.load16_u local.tee $3 i32.const 128 i32.lt_u if (result i32) - local.get $4 + local.get $0 local.get $3 i32.store8 - local.get $4 + local.get $0 i32.const 1 i32.add else @@ -4768,7 +4757,7 @@ i32.const 2048 i32.lt_u if (result i32) - local.get $4 + local.get $0 local.get $3 i32.const 6 i32.shr_u @@ -4783,7 +4772,7 @@ i32.shl i32.or i32.store16 - local.get $4 + local.get $0 i32.const 2 i32.add else @@ -4794,7 +4783,7 @@ i32.eq if local.get $6 - local.get $0 + local.get $4 i32.const 2 i32.add i32.gt_u @@ -4804,7 +4793,7 @@ i32.lt_u select if - local.get $0 + local.get $4 i32.load16_u offset=2 local.tee $7 i32.const 64512 @@ -4812,7 +4801,7 @@ i32.const 56320 i32.eq if - local.get $4 + local.get $0 local.get $3 i32.const 1023 i32.and @@ -4858,14 +4847,14 @@ i32.or i32.or i32.store - local.get $4 - i32.const 4 - i32.add - local.set $4 local.get $0 i32.const 4 i32.add local.set $0 + local.get $4 + i32.const 4 + i32.add + local.set $4 br $while-continue|0 end end @@ -4888,7 +4877,7 @@ end local.set $3 end - local.get $4 + local.get $0 local.get $3 i32.const 12 i32.shr_u @@ -4905,29 +4894,29 @@ i32.shl i32.or i32.store16 - local.get $4 + local.get $0 local.get $3 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $4 + local.get $0 i32.const 3 i32.add end end - local.set $4 - local.get $0 + local.set $0 + local.get $4 i32.const 2 i32.add - local.set $0 + local.set $4 br $while-continue|0 end end local.get $1 if - local.get $4 + local.get $0 i32.const 0 i32.store8 end @@ -4961,12 +4950,13 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store + local.get $1 local.get $0 local.tee $3 - local.get $1 - local.get $3 i32.add - local.tee $5 + local.set $5 + local.get $3 + local.get $5 i32.gt_u if i32.const 0 @@ -5142,16 +5132,15 @@ end end end - block $__inlined_func$~lib/rt/itcms/__renew (result i32) + block $__inlined_func$~lib/rt/itcms/__renew local.get $1 local.get $0 - local.tee $2 i32.sub - local.tee $1 + local.tee $2 local.get $0 i32.const 20 i32.sub - local.tee $0 + local.tee $3 i32.load i32.const -4 i32.and @@ -5159,32 +5148,33 @@ i32.sub i32.le_u if - local.get $0 - local.get $1 - i32.store offset=16 + local.get $3 local.get $2 + i32.store offset=16 br $__inlined_func$~lib/rt/itcms/__renew end - local.get $1 - local.get $0 + local.get $2 + local.get $3 i32.load offset=12 call $~lib/rt/itcms/__new - local.tee $3 - local.get $2 - local.get $1 + local.tee $1 local.get $0 + local.get $2 + local.get $3 i32.load offset=16 local.tee $0 local.get $0 - local.get $1 + local.get $2 i32.gt_u select call $~lib/memory/memory.copy - local.get $3 + local.get $1 + local.set $0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) ) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index a988e65437..bc8051ae8a 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -1149,7 +1149,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -1157,10 +1156,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 42268 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -1174,7 +1173,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -1199,21 +1198,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 25840 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1264 i32.const 1568 @@ -1222,7 +1219,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 25844 @@ -1237,28 +1234,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -2521,7 +2518,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -2549,11 +2546,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -2572,9 +2569,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -2590,7 +2587,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -2605,18 +2602,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -2627,7 +2624,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -2641,16 +2638,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -2663,89 +2657,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -2753,7 +2747,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -4010,29 +4004,28 @@ return end local.get $0 - local.tee $2 i32.load16_u - local.set $0 + local.set $2 loop $while-continue|0 block $__inlined_func$~lib/util/string/isSpace (result i32) - local.get $0 + local.get $2 i32.const 128 i32.or i32.const 160 i32.eq - local.get $0 + local.get $2 i32.const 9 i32.sub i32.const 4 i32.le_u i32.or - local.get $0 + local.get $2 i32.const 5760 i32.lt_u br_if $__inlined_func$~lib/util/string/isSpace drop i32.const 1 - local.get $0 + local.get $2 i32.const -8192 i32.add i32.const 10 @@ -4041,31 +4034,31 @@ drop block $break|0 block $case6|0 - local.get $0 + local.get $2 i32.const 5760 i32.eq br_if $case6|0 - local.get $0 + local.get $2 i32.const 8232 i32.eq br_if $case6|0 - local.get $0 + local.get $2 i32.const 8233 i32.eq br_if $case6|0 - local.get $0 + local.get $2 i32.const 8239 i32.eq br_if $case6|0 - local.get $0 + local.get $2 i32.const 8287 i32.eq br_if $case6|0 - local.get $0 + local.get $2 i32.const 12288 i32.eq br_if $case6|0 - local.get $0 + local.get $2 i32.const 65279 i32.eq br_if $case6|0 @@ -4077,12 +4070,12 @@ i32.const 0 end if - local.get $2 + local.get $0 i32.const 2 i32.add - local.tee $2 + local.tee $0 i32.load16_u - local.set $0 + local.set $2 local.get $3 i32.const 1 i32.sub @@ -4093,10 +4086,10 @@ f64.const 1 local.set $4 i32.const 1 - local.get $0 + local.get $2 i32.const 43 i32.eq - local.get $0 + local.get $2 i32.const 45 i32.eq select @@ -4112,17 +4105,17 @@ end f64.const -1 f64.const 1 - local.get $0 + local.get $2 i32.const 45 i32.eq select local.set $4 - local.get $2 + local.get $0 i32.const 2 i32.add - local.tee $2 + local.tee $0 i32.load16_u - local.set $0 + local.set $2 end local.get $1 if @@ -4142,7 +4135,7 @@ i32.const 16 i32.eq if - local.get $0 + local.get $2 i32.const 48 i32.eq i32.const 0 @@ -4151,7 +4144,7 @@ i32.gt_s select if (result i32) - local.get $2 + local.get $0 i32.load16_u offset=2 i32.const 32 i32.or @@ -4165,10 +4158,10 @@ i32.const 2 i32.sub local.set $3 - local.get $2 + local.get $0 i32.const 4 i32.add - local.set $2 + local.set $0 end end else @@ -4176,7 +4169,7 @@ i32.const 2 i32.gt_s i32.const 0 - local.get $0 + local.get $2 i32.const 48 i32.eq select @@ -4184,28 +4177,28 @@ block $break|1 block $case2|1 block $case1|1 - local.get $2 + local.get $0 i32.load16_u offset=2 i32.const 32 i32.or - local.tee $0 + local.tee $2 i32.const 98 i32.ne if - local.get $0 + local.get $2 i32.const 111 i32.eq br_if $case1|1 - local.get $0 + local.get $2 i32.const 120 i32.eq br_if $case2|1 br $break|1 end - local.get $2 + local.get $0 i32.const 4 i32.add - local.set $2 + local.set $0 local.get $3 i32.const 2 i32.sub @@ -4214,10 +4207,10 @@ local.set $1 br $break|1 end - local.get $2 + local.get $0 i32.const 4 i32.add - local.set $2 + local.set $0 local.get $3 i32.const 2 i32.sub @@ -4226,10 +4219,10 @@ local.set $1 br $break|1 end - local.get $2 + local.get $0 i32.const 4 i32.add - local.set $2 + local.set $0 local.get $3 i32.const 2 i32.sub @@ -4247,40 +4240,40 @@ loop $while-continue|2 block $while-break|2 local.get $3 - local.tee $0 + local.tee $2 i32.const 1 i32.sub local.set $3 - local.get $0 + local.get $2 if local.get $1 - local.get $2 + local.get $0 i32.load16_u - local.tee $0 + local.tee $2 i32.const 48 i32.sub i32.const 10 i32.lt_u if (result i32) - local.get $0 + local.get $2 i32.const 48 i32.sub else - local.get $0 + local.get $2 i32.const 65 i32.sub i32.const 25 i32.le_u if (result i32) - local.get $0 + local.get $2 i32.const 55 i32.sub else - local.get $0 + local.get $2 i32.const 87 i32.sub - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.const 97 i32.sub i32.const 25 @@ -4288,7 +4281,7 @@ select end end - local.tee $0 + local.tee $2 i32.le_u if local.get $5 @@ -4309,14 +4302,14 @@ local.get $1 f64.convert_i32_s f64.mul - local.get $0 + local.get $2 f64.convert_i32_u f64.add local.set $5 - local.get $2 + local.get $0 i32.const 2 i32.add - local.set $2 + local.set $0 br $while-continue|2 end end @@ -4343,7 +4336,7 @@ return end i32.const 4240 - local.set $3 + local.set $5 i32.const 4240 i32.load16_u local.set $0 @@ -4411,10 +4404,10 @@ i32.const 0 end if - local.get $3 + local.get $5 i32.const 2 i32.add - local.tee $3 + local.tee $5 i32.load16_u local.set $0 local.get $1 @@ -4451,10 +4444,10 @@ i32.eq select local.set $2 - local.get $3 + local.get $5 i32.const 2 i32.add - local.tee $3 + local.tee $5 i32.load16_u local.set $0 end @@ -4470,7 +4463,7 @@ block $break|1 block $case2|1 block $case1|1 - local.get $3 + local.get $5 i32.load16_u offset=2 i32.const 32 i32.or @@ -4488,10 +4481,10 @@ br_if $case2|1 br $break|1 end - local.get $3 + local.get $5 i32.const 4 i32.add - local.set $3 + local.set $5 local.get $1 i32.const 2 i32.sub @@ -4500,10 +4493,10 @@ local.set $4 br $break|1 end - local.get $3 + local.get $5 i32.const 4 i32.add - local.set $3 + local.set $5 local.get $1 i32.const 2 i32.sub @@ -4512,10 +4505,10 @@ local.set $4 br $break|1 end - local.get $3 + local.get $5 i32.const 4 i32.add - local.set $3 + local.set $5 local.get $1 i32.const 2 i32.sub @@ -4538,7 +4531,7 @@ local.set $1 local.get $0 if - local.get $3 + local.get $5 i32.load16_u local.tee $0 i32.const 48 @@ -4576,7 +4569,7 @@ local.get $4 i32.ge_u if - local.get $5 + local.get $3 i32.eqz if i32.const 0 @@ -4585,30 +4578,30 @@ br $while-break|2 end local.get $0 + local.get $3 local.get $4 - local.get $5 i32.mul i32.add - local.set $5 - local.get $3 + local.set $3 + local.get $5 i32.const 2 i32.add - local.set $3 + local.set $5 br $while-continue|2 end end end local.get $2 - local.get $5 + local.get $3 i32.mul ) (func $~lib/util/string/strtol (result i64) (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i64) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) i32.const 4284 i32.load i32.const 1 @@ -4620,7 +4613,7 @@ return end i32.const 4288 - local.set $2 + local.set $5 i32.const 4288 i32.load16_u local.set $0 @@ -4688,10 +4681,10 @@ i32.const 0 end if - local.get $2 + local.get $5 i32.const 2 i32.add - local.tee $2 + local.tee $5 i32.load16_u local.set $0 local.get $1 @@ -4702,7 +4695,7 @@ end end i64.const 1 - local.set $5 + local.set $2 i32.const 1 local.get $0 i32.const 43 @@ -4727,11 +4720,11 @@ i32.const 45 i32.eq select - local.set $5 - local.get $2 + local.set $2 + local.get $5 i32.const 2 i32.add - local.tee $2 + local.tee $5 i32.load16_u local.set $0 end @@ -4747,7 +4740,7 @@ block $break|1 block $case2|1 block $case1|1 - local.get $2 + local.get $5 i32.load16_u offset=2 i32.const 32 i32.or @@ -4765,47 +4758,47 @@ br_if $case2|1 br $break|1 end - local.get $2 + local.get $5 i32.const 4 i32.add - local.set $2 + local.set $5 local.get $1 i32.const 2 i32.sub local.set $1 i32.const 2 - local.set $3 + local.set $4 br $break|1 end - local.get $2 + local.get $5 i32.const 4 i32.add - local.set $2 + local.set $5 local.get $1 i32.const 2 i32.sub local.set $1 i32.const 8 - local.set $3 + local.set $4 br $break|1 end - local.get $2 + local.get $5 i32.const 4 i32.add - local.set $2 + local.set $5 local.get $1 i32.const 2 i32.sub local.set $1 i32.const 16 - local.set $3 + local.set $4 end end - local.get $3 + local.get $4 i32.const 10 - local.get $3 + local.get $4 select - local.set $3 + local.set $4 loop $while-continue|2 block $while-break|2 local.get $1 @@ -4815,7 +4808,7 @@ local.set $1 local.get $0 if - local.get $2 + local.get $5 i32.load16_u local.tee $0 i32.const 48 @@ -4850,10 +4843,10 @@ end end local.tee $0 - local.get $3 + local.get $4 i32.ge_u if - local.get $4 + local.get $3 i64.eqz if i64.const 0 @@ -4863,22 +4856,22 @@ end local.get $0 i64.extend_i32_u - local.get $3 - i64.extend_i32_s local.get $4 + i64.extend_i32_s + local.get $3 i64.mul i64.add - local.set $4 - local.get $2 + local.set $3 + local.get $5 i32.const 2 i32.add - local.set $2 + local.set $5 br $while-continue|2 end end end - local.get $4 - local.get $5 + local.get $2 + local.get $3 i64.mul ) (func $~lib/math/ipow32 (param $0 i32) (result i32) @@ -5123,9 +5116,9 @@ (local $8 i64) (local $9 i64) (local $10 i64) - (local $11 i32) + (local $11 f64) (local $12 f64) - (local $13 f64) + (local $13 i32) (local $14 i64) block $folding-inner0 local.get $0 @@ -5141,7 +5134,7 @@ i32.load16_u local.set $5 f64.const 1 - local.set $13 + local.set $12 loop $while-continue|0 local.get $7 if (result i32) @@ -5238,7 +5231,7 @@ i32.eqz br_if $folding-inner0 f64.const -1 - local.set $13 + local.set $12 local.get $0 i32.const 2 i32.add @@ -5286,7 +5279,7 @@ i32.const 0 end if - local.get $13 + local.get $12 f64.const inf f64.mul return @@ -5305,7 +5298,7 @@ select br_if $folding-inner0 local.get $0 - local.set $3 + local.set $2 loop $while-continue|1 local.get $5 i32.const 48 @@ -5336,15 +5329,15 @@ i32.eq if local.get $0 - local.get $3 + local.get $2 i32.eq - local.set $3 + local.set $2 local.get $0 i32.const 2 i32.add local.set $0 i32.const 0 - local.get $3 + local.get $2 local.get $7 i32.const 1 i32.sub @@ -5352,7 +5345,7 @@ select br_if $folding-inner0 i32.const 1 - local.set $11 + local.set $13 loop $for-loop|2 local.get $0 i32.load16_u @@ -5364,10 +5357,10 @@ i32.const 1 i32.sub local.set $7 - local.get $1 + local.get $3 i32.const 1 i32.sub - local.set $1 + local.set $3 local.get $0 i32.const 2 i32.add @@ -5389,8 +5382,8 @@ i32.ge_u i32.const 0 i32.const 0 + local.get $2 local.get $3 - local.get $1 select select br_if $folding-inner0 @@ -5398,38 +5391,38 @@ local.get $5 i32.const 48 i32.sub - local.set $3 + local.set $2 loop $for-loop|3 i32.const 0 - local.get $11 + local.get $13 i32.const 1 local.get $5 i32.const 46 i32.eq select - local.get $3 + local.get $2 i32.const 10 i32.lt_u select i32.eqz if block $for-break3 - local.get $3 + local.get $2 i32.const 10 i32.lt_u if - local.get $2 + local.get $1 i32.const 19 i32.lt_s if (result i64) - local.get $3 + local.get $2 i64.extend_i32_u local.get $6 i64.const 10 i64.mul i64.add else - local.get $3 + local.get $2 i32.eqz i32.eqz i64.extend_i32_u @@ -5437,15 +5430,15 @@ i64.or end local.set $6 - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - else - local.get $2 local.set $1 + else + local.get $1 + local.set $3 i32.const 1 - local.set $11 + local.set $13 end local.get $7 i32.const 1 @@ -5461,32 +5454,30 @@ local.tee $5 i32.const 48 i32.sub - local.set $3 + local.set $2 br $for-loop|3 end end end block $~lib/util/string/scientific|inlined.0 (result f64) + f64.const 0 + i32.const 1 + local.get $3 local.get $1 - local.get $2 - local.get $11 + local.get $13 select i32.const 19 - local.get $2 - local.get $2 + local.get $1 + local.get $1 i32.const 19 i32.gt_s select i32.sub - local.set $11 - f64.const 0 - i32.const 1 block $~lib/util/string/parseExp|inlined.0 (result i32) i32.const 1 - local.set $2 + local.set $1 i32.const 0 local.get $0 - local.tee $1 i32.load16_u i32.const 32 i32.or @@ -5498,44 +5489,44 @@ local.get $7 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop - local.get $1 + local.get $0 i32.const 2 i32.add local.tee $0 i32.load16_u - local.tee $1 + local.tee $3 i32.const 45 i32.eq if (result i32) i32.const 0 - local.get $3 + local.get $2 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop i32.const -1 - local.set $2 + local.set $1 local.get $0 i32.const 2 i32.add local.tee $0 i32.load16_u else - local.get $1 + local.get $3 i32.const 43 i32.eq if (result i32) i32.const 0 - local.get $3 + local.get $2 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop @@ -5545,20 +5536,20 @@ local.tee $0 i32.load16_u else - local.get $1 + local.get $3 end end - local.set $1 + local.set $3 loop $while-continue|4 - local.get $1 + local.get $3 i32.const 48 i32.eq if i32.const 0 - local.get $3 + local.get $2 i32.const 1 i32.sub - local.tee $3 + local.tee $2 i32.eqz br_if $~lib/util/string/parseExp|inlined.0 drop @@ -5567,23 +5558,23 @@ i32.add local.tee $0 i32.load16_u - local.set $1 + local.set $3 br $while-continue|4 end end - local.get $1 + local.get $3 i32.const 48 i32.sub - local.set $1 + local.set $3 loop $for-loop|5 - local.get $1 + local.get $3 i32.const 10 i32.lt_u i32.const 0 - local.get $3 + local.get $2 select if - local.get $2 + local.get $1 i32.const 3200 i32.mul local.get $4 @@ -5591,16 +5582,16 @@ i32.ge_s br_if $~lib/util/string/parseExp|inlined.0 drop - local.get $1 + local.get $3 local.get $4 i32.const 10 i32.mul i32.add local.set $4 - local.get $3 + local.get $2 i32.const 1 i32.sub - local.set $3 + local.set $2 local.get $0 i32.const 2 i32.add @@ -5608,15 +5599,14 @@ i32.load16_u i32.const 48 i32.sub - local.set $1 + local.set $3 br $for-loop|5 end end - local.get $2 + local.get $1 local.get $4 i32.mul end - local.get $11 i32.add local.tee $0 i32.const -342 @@ -5634,7 +5624,7 @@ drop local.get $6 f64.convert_i64_u - local.tee $12 + local.tee $11 local.get $0 i32.eqz br_if $~lib/util/string/scientific|inlined.0 @@ -5648,7 +5638,7 @@ i32.gt_s select if - local.get $12 + local.get $11 local.get $0 i32.const 3 i32.shl @@ -5656,7 +5646,7 @@ i32.add f64.load f64.mul - local.set $12 + local.set $11 i32.const 22 local.set $0 end @@ -5664,13 +5654,13 @@ i64.const 9007199254740991 i64.le_u if (result i32) + local.get $0 local.get $0 i32.const 31 i32.shr_s - local.tee $2 - local.get $0 - local.get $2 + local.tee $5 i32.add + local.get $5 i32.xor i32.const 22 i32.le_s @@ -5682,7 +5672,7 @@ i32.const 0 i32.gt_s if - local.get $12 + local.get $11 local.get $0 i32.const 3 i32.shl @@ -5692,7 +5682,7 @@ f64.mul br $~lib/util/string/scientific|inlined.0 end - local.get $12 + local.get $11 i32.const 0 local.get $0 i32.sub @@ -5714,13 +5704,13 @@ i64.shl local.set $6 local.get $0 - local.tee $2 + local.tee $1 i64.extend_i32_s local.get $8 i64.sub local.set $8 loop $for-loop|6 - local.get $2 + local.get $1 i32.const -14 i32.le_s if @@ -5730,7 +5720,7 @@ local.get $6 i64.const 6103515625 i64.div_u - local.tee $10 + local.tee $6 i64.clz local.tee $9 i64.const 18 @@ -5741,7 +5731,7 @@ f64.mul f64.nearest i64.trunc_f64_u - local.get $10 + local.get $6 local.get $9 i64.shl i64.add @@ -5750,45 +5740,45 @@ local.get $9 i64.sub local.set $8 - local.get $2 + local.get $1 i32.const 14 i32.add - local.set $2 + local.set $1 br $for-loop|6 end end local.get $6 i32.const 0 - local.get $2 + local.get $1 i32.sub call $~lib/math/ipow32 i64.extend_i32_s - local.tee $9 + local.tee $10 i64.div_u local.tee $14 i64.clz - local.set $10 + local.set $9 local.get $6 - local.get $9 + local.get $10 i64.rem_u f64.convert_i64_u i64.reinterpret_f64 - local.get $10 + local.get $9 i64.const 52 i64.shl i64.add f64.reinterpret_i64 - local.get $9 + local.get $10 f64.convert_i64_u f64.div i64.trunc_f64_u local.get $14 - local.get $10 + local.get $9 i64.shl i64.add f64.convert_i64_u local.get $8 - local.get $10 + local.get $9 i64.sub i32.wrap_i64 call $~lib/math/NativeMath.scalbn @@ -5821,7 +5811,7 @@ i64.and i64.const 1220703125 i64.mul - local.tee $8 + local.tee $6 i64.const 32 i64.shr_u i64.add @@ -5831,23 +5821,23 @@ i32.wrap_i64 i32.clz i64.extend_i32_u - local.tee $6 + local.tee $8 i64.sub local.tee $10 global.get $~lib/util/string/__fixmulShift i64.add global.set $~lib/util/string/__fixmulShift - local.get $8 local.get $6 + local.get $8 i64.shl i64.const 31 i64.shr_u i64.const 1 i64.and local.get $9 - local.get $6 - i64.shl local.get $8 + i64.shl + local.get $6 i64.const 4294967295 i64.and local.get $10 @@ -5917,7 +5907,7 @@ end end end - local.get $13 + local.get $12 f64.copysign return end @@ -6475,7 +6465,8 @@ i64.shr_u i32.wrap_i64 local.tee $2 - local.tee $5 + local.set $5 + local.get $2 i32.const 100000 i32.lt_u if (result i32) @@ -6698,7 +6689,7 @@ i32.shl i32.const 22862 i32.add - local.tee $7 + local.tee $8 i32.load16_u local.set $5 loop $while-continue|3 @@ -6743,7 +6734,7 @@ br $while-continue|3 end end - local.get $7 + local.get $8 local.get $5 i32.store16 local.get $4 @@ -6823,7 +6814,7 @@ i32.shl i32.const 22862 i32.add - local.tee $7 + local.tee $8 i32.load16_u local.set $5 loop $while-continue|6 @@ -6868,7 +6859,7 @@ br $while-continue|6 end end - local.get $7 + local.get $8 local.get $5 i32.store16 local.get $4 @@ -6876,6 +6867,8 @@ (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $2 i32.eqz if @@ -6976,7 +6969,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $2 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -6990,28 +6983,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $4 + local.set $2 loop $for-loop|1 local.get $2 - local.get $4 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $4 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end local.get $1 - local.get $2 + local.get $5 i32.add else local.get $1 @@ -7039,7 +7032,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -7086,9 +7078,12 @@ i32.add end end + local.set $1 + local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -7096,7 +7091,7 @@ local.get $2 select i32.store16 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.add else @@ -7132,7 +7127,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -7140,7 +7135,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -7187,18 +7181,21 @@ i32.add end end + local.set $2 + local.get $0 + local.get $2 i32.const 1 i32.add - local.tee $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select i32.store16 offset=4 + local.get $0 local.get $1 - local.get $2 i32.add i32.const 2 i32.add @@ -7573,7 +7570,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) - block $folding-inner3 + block $folding-inner4 global.get $~lib/memory/__stack_pointer i32.const 24 i32.sub @@ -7590,16 +7587,16 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i64.const 0 i64.store - local.get $4 + local.get $3 i64.const 0 i64.store offset=8 - local.get $4 + local.get $3 i64.const 0 i64.store offset=16 - block $folding-inner2 + block $folding-inner3 block $folding-inner1 block $folding-inner0 local.get $2 @@ -7635,14 +7632,14 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $4 + local.set $3 i32.const 2147483647 local.get $2 local.get $2 i32.const 0 i32.lt_s select - local.set $2 + local.set $7 local.get $1 i32.const 20 i32.sub @@ -7651,7 +7648,7 @@ i32.shr_u local.tee $8 if - local.get $4 + local.get $3 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -7668,17 +7665,17 @@ br $folding-inner1 end else - local.get $4 + local.get $3 i32.eqz br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $2 - local.get $2 - local.get $4 - i32.gt_s + local.get $3 + local.get $7 + local.get $3 + local.get $7 + i32.lt_s select - local.tee $5 + local.tee $4 i32.const 4 i32.const 0 call $~lib/rt/__newArray @@ -7686,11 +7683,11 @@ i32.store local.get $1 i32.load offset=4 - local.set $4 + local.set $3 loop $for-loop|0 - local.get $3 + local.get $4 local.get $5 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer i32.const 2 @@ -7699,17 +7696,17 @@ local.tee $2 i32.store offset=8 local.get $2 - local.get $3 + local.get $5 i32.const 1 i32.shl local.get $0 i32.add i32.load16_u i32.store16 - local.get $3 + local.get $5 i32.const 2 i32.shl - local.get $4 + local.get $3 i32.add local.get $2 i32.store @@ -7717,10 +7714,10 @@ local.get $2 i32.const 1 call $~lib/rt/itcms/__link - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end @@ -7731,19 +7728,19 @@ i32.const 4 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $2 i32.store offset=12 loop $while-continue|1 local.get $0 local.get $1 - local.get $5 + local.get $4 call $~lib/string/String#indexOf - local.tee $7 + local.tee $5 i32.const -1 i32.xor if - local.get $7 local.get $5 + local.get $4 i32.sub local.tee $6 i32.const 0 @@ -7759,48 +7756,48 @@ local.tee $6 i32.store offset=16 local.get $6 - local.get $5 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add local.get $9 call $~lib/memory/memory.copy - local.get $3 + local.get $2 local.get $6 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=20 - local.get $3 + local.get $2 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end - local.get $2 local.get $10 i32.const 1 i32.add local.tee $10 - i32.eq - br_if $folding-inner2 local.get $7 + i32.eq + br_if $folding-inner4 + local.get $5 local.get $8 i32.add - local.set $5 + local.set $4 br $while-continue|1 end end - local.get $5 + local.get $4 i32.eqz if - local.get $3 + local.get $2 local.get $0 call $~lib/array/Array<~lib/string/String>#push - br $folding-inner2 + br $folding-inner4 end + local.get $3 local.get $4 - local.get $5 i32.sub local.tee $1 i32.const 0 @@ -7810,36 +7807,31 @@ local.get $1 i32.const 1 i32.shl - local.tee $1 + local.tee $3 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $2 - local.get $5 + local.get $1 + local.get $4 i32.const 1 i32.shl local.get $0 i32.add - local.get $1 - call $~lib/memory/memory.copy local.get $3 + call $~lib/memory/memory.copy local.get $2 + local.get $1 call $~lib/array/Array<~lib/string/String>#push else global.get $~lib/memory/__stack_pointer i32.const 1712 i32.store offset=20 - local.get $3 + local.get $2 i32.const 1712 call $~lib/array/Array<~lib/string/String>#push end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - return + br $folding-inner4 end i32.const 0 i32.const 4 @@ -7858,22 +7850,22 @@ i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 return end global.get $~lib/memory/__stack_pointer i32.const 24 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 ) (func $start:std/string (local $0 i32) (local $1 i32) - (local $2 i32) - (local $3 f64) - (local $4 f32) - (local $5 i32) + (local $2 f64) + (local $3 i32) + (local $4 i32) + (local $5 f32) global.get $~lib/memory/__stack_pointer i32.const 44 i32.sub @@ -8001,14 +7993,13 @@ local.tee $0 i32.store local.get $0 - local.tee $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u if (result i32) - local.get $1 + local.get $0 i32.load16_u else i32.const -1 @@ -8025,24 +8016,23 @@ end global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $1 i32.store - block $__inlined_func$~lib/string/String#codePointAt (result i32) - i32.const -1 - local.get $0 - local.tee $1 + i32.const -1 + local.set $0 + block $__inlined_func$~lib/string/String#codePointAt + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $0 + local.tee $3 i32.const 1 i32.le_u br_if $__inlined_func$~lib/string/String#codePointAt - drop i32.const 1 - local.get $0 + local.get $3 i32.const 2 i32.eq local.get $1 @@ -8053,11 +8043,7 @@ i32.const 55296 i32.ne select - if - local.get $0 - br $__inlined_func$~lib/string/String#codePointAt - end - local.get $0 + br_if $__inlined_func$~lib/string/String#codePointAt local.get $1 i32.load16_u offset=4 local.tee $1 @@ -8066,7 +8052,6 @@ i32.const 56320 i32.ne br_if $__inlined_func$~lib/string/String#codePointAt - drop local.get $1 local.get $0 i32.const 10 @@ -8074,7 +8059,9 @@ i32.add i32.const 56613888 i32.sub + local.set $0 end + local.get $0 i32.const 105 i32.ne if @@ -8128,19 +8115,19 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 15 call $~lib/string/String#charAt - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 local.get $0 + local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8162,17 +8149,16 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $3 i32.store offset=12 - local.get $0 + local.get $1 + local.get $3 i32.const 20 i32.sub i32.load offset=16 @@ -8181,11 +8167,12 @@ i32.const 1 i32.sub call $~lib/string/String#charAt - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 local.get $0 + local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8560,40 +8547,34 @@ local.get $1 i32.const 2176 i32.store offset=4 - block $__inlined_func$~lib/string/String#startsWith (result i32) - i32.const 0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 - i32.const 0 - i32.gt_s - select - local.set $2 - i32.const 0 - local.get $1 - local.get $2 - i32.const 2172 - i32.load + i32.const 0 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $3 + local.get $3 + select + local.tee $4 + i32.const 2172 + i32.load + i32.const 1 + i32.shr_u + local.tee $1 + i32.add + local.get $3 + i32.gt_s + if (result i32) i32.const 1 - i32.shr_u - local.tee $1 - i32.add - i32.lt_s - br_if $__inlined_func$~lib/string/String#startsWith - drop + else local.get $0 - local.get $2 + local.get $4 i32.const 2176 local.get $1 call $~lib/util/string/compareImpl - i32.eqz end - i32.eqz if i32.const 0 i32.const 1120 @@ -8620,7 +8601,7 @@ local.tee $1 local.get $1 i32.const 536870910 - i32.gt_s + i32.gt_u select i32.const 2204 i32.load @@ -8628,14 +8609,14 @@ i32.shr_u local.tee $1 i32.sub - local.tee $2 + local.tee $3 i32.const 0 i32.lt_s if (result i32) i32.const 1 else local.get $0 - local.get $2 + local.get $3 i32.const 2208 local.get $1 call $~lib/util/string/compareImpl @@ -8649,14 +8630,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2240 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2240 i32.const 0 call $~lib/string/String#indexOf @@ -8671,14 +8652,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store offset=8 - local.get $1 + local.get $0 i32.const 2272 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 2272 call $~lib/string/String#padStart @@ -8686,12 +8667,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $1 i32.store offset=4 local.get $0 + local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8703,14 +8684,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store offset=8 - local.get $1 + local.get $0 i32.const 2272 i32.store offset=16 - local.get $0 + local.get $1 i32.const 15 i32.const 2272 call $~lib/string/String#padStart @@ -8718,12 +8699,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $1 i32.store offset=4 local.get $0 + local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8915,14 +8896,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store offset=8 - local.get $1 + local.get $0 i32.const 2272 i32.store offset=16 - local.get $0 + local.get $1 i32.const 0 i32.const 2272 call $~lib/string/String#padEnd @@ -8930,12 +8911,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $1 i32.store offset=4 local.get $0 + local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -8947,14 +8928,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store offset=8 - local.get $1 + local.get $0 i32.const 2272 i32.store offset=16 - local.get $0 + local.get $1 i32.const 15 i32.const 2272 call $~lib/string/String#padEnd @@ -8962,12 +8943,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $1 i32.store offset=4 local.get $0 + local.get $1 call $~lib/string/String.__eq i32.eqz if @@ -9238,14 +9219,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1712 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1712 i32.const 0 call $~lib/string/String#indexOf @@ -9258,14 +9239,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2624 i32.const 0 call $~lib/string/String#indexOf @@ -9280,14 +9261,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2656 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2656 i32.const 0 call $~lib/string/String#indexOf @@ -9302,14 +9283,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2624 i32.const 2 call $~lib/string/String#indexOf @@ -9324,14 +9305,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2624 i32.const 3 call $~lib/string/String#indexOf @@ -9346,14 +9327,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2688 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2688 i32.const -1 call $~lib/string/String#indexOf @@ -9408,29 +9389,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1712 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1712 i32.const 2147483647 call $~lib/string/String#lastIndexOf - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.get $1 + local.get $0 i32.ne if i32.const 0 @@ -9441,14 +9422,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2624 i32.const 2147483647 call $~lib/string/String#lastIndexOf @@ -9463,14 +9444,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2656 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2656 i32.const 2147483647 call $~lib/string/String#lastIndexOf @@ -9485,14 +9466,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2720 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2720 i32.const 2147483647 call $~lib/string/String#lastIndexOf @@ -9507,14 +9488,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2624 i32.const 2 call $~lib/string/String#lastIndexOf @@ -9529,14 +9510,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2624 i32.const 3 call $~lib/string/String#lastIndexOf @@ -9551,14 +9532,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2688 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2688 i32.const -1 call $~lib/string/String#lastIndexOf @@ -9573,14 +9554,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2752 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2752 i32.const 0 call $~lib/string/String#lastIndexOf @@ -9595,14 +9576,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/string/str local.tee $0 + global.get $std/string/str + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 2176 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2176 i32.const 0 call $~lib/string/String#lastIndexOf @@ -10354,14 +10335,14 @@ i32.const 3664 i32.const 0 call $~lib/util/string/strtol - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 3712 i32.store i32.const 3712 i32.const 16 call $~lib/util/string/strtol - local.get $3 + local.get $2 f64.ne if i32.const 0 @@ -10505,8 +10486,8 @@ i32.const 1712 i32.const 0 call $~lib/util/string/strtol - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -10522,8 +10503,8 @@ i32.const 4112 i32.const 0 call $~lib/util/string/strtol - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -10539,8 +10520,8 @@ i32.const 4144 i32.const 0 call $~lib/util/string/strtol - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -10556,8 +10537,8 @@ i32.const 2400 i32.const 37 call $~lib/util/string/strtol - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -10573,8 +10554,8 @@ i32.const 4176 i32.const 0 call $~lib/util/string/strtol - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -10590,8 +10571,8 @@ i32.const 4208 i32.const 0 call $~lib/util/string/strtol - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -10608,8 +10589,8 @@ i32.const 0 call $~lib/util/string/strtol f32.demote_f64 - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 f32.eq if i32.const 0 @@ -10625,8 +10606,8 @@ i32.const 4208 i32.const 0 call $~lib/util/string/strtol - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -10954,8 +10935,8 @@ i32.store i32.const 1712 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11780,8 +11761,8 @@ i32.store i32.const 4144 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11796,8 +11777,8 @@ i32.store i32.const 4112 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11812,8 +11793,8 @@ i32.store i32.const 7056 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11828,8 +11809,8 @@ i32.store i32.const 7088 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11844,8 +11825,8 @@ i32.store i32.const 7120 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11860,8 +11841,8 @@ i32.store i32.const 7152 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11876,8 +11857,8 @@ i32.store i32.const 7184 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11892,8 +11873,8 @@ i32.store i32.const 7216 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11908,8 +11889,8 @@ i32.store i32.const 7248 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11924,8 +11905,8 @@ i32.store i32.const 7280 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11940,8 +11921,8 @@ i32.store i32.const 7312 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11956,8 +11937,8 @@ i32.store i32.const 7344 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11972,8 +11953,8 @@ i32.store i32.const 7376 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -11988,8 +11969,8 @@ i32.store i32.const 7408 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -12004,8 +11985,8 @@ i32.store i32.const 7440 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -12020,8 +12001,8 @@ i32.store i32.const 7472 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -12411,8 +12392,8 @@ i32.store i32.const 8688 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -12427,8 +12408,8 @@ i32.store i32.const 8720 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -12443,8 +12424,8 @@ i32.store i32.const 8768 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -12920,8 +12901,8 @@ i32.store i32.const 12880 call $~lib/util/string/strtod - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 f64.eq if i32.const 0 @@ -12947,13 +12928,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 1808 i32.store - local.get $1 + local.get $0 i32.const 12944 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1808 i32.const 12944 call $~lib/string/String#concat @@ -13852,7 +13833,7 @@ global.get $~lib/memory/__stack_pointer i32.const 65377 call $~lib/string/String.fromCodePoint - local.tee $1 + local.tee $3 i32.store offset=36 global.get $~lib/memory/__stack_pointer i32.const 55296 @@ -13861,18 +13842,18 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 i32.const 56322 call $~lib/string/String.fromCodePoint - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 local.get $0 + local.get $1 call $~lib/string/String#concat local.tee $0 i32.store offset=40 - local.get $1 + local.get $3 local.get $0 call $~lib/string/String.__gt i32.eqz @@ -16119,14 +16100,14 @@ i32.const 0 i32.const 2147483647 call $~lib/string/String#split - local.tee $1 + local.tee $0 i32.store offset=40 - local.get $1 + local.get $0 i32.load offset=12 i32.const 1 i32.eq if (result i32) - local.get $1 + local.get $0 i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.set $0 @@ -16164,9 +16145,9 @@ i32.const 1712 i32.const 2147483647 call $~lib/string/String#split - local.tee $1 + local.tee $0 i32.store offset=40 - local.get $1 + local.get $0 i32.load offset=12 if i32.const 0 @@ -16177,13 +16158,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 1712 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1712 i32.const 2624 i32.const 2147483647 @@ -16222,13 +16203,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 15424 i32.store - local.get $1 + local.get $0 i32.const 7184 i32.store offset=4 - local.get $1 + local.get $0 i32.const 15424 i32.const 7184 i32.const 2147483647 @@ -16267,13 +16248,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 15424 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 15424 i32.const 2624 i32.const 2147483647 @@ -16290,10 +16271,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1808 i32.store offset=4 local.get $1 @@ -16308,10 +16289,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 12944 i32.store offset=4 local.get $1 @@ -16348,13 +16329,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 15456 i32.store - local.get $1 + local.get $0 i32.const 15504 i32.store offset=4 - local.get $1 + local.get $0 i32.const 15456 i32.const 15504 i32.const 2147483647 @@ -16371,10 +16352,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1808 i32.store offset=4 local.get $1 @@ -16389,10 +16370,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 12944 i32.store offset=4 local.get $1 @@ -16429,13 +16410,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 15536 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 15536 i32.const 2624 i32.const 2147483647 @@ -16452,10 +16433,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1808 i32.store offset=4 local.get $1 @@ -16470,10 +16451,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 12944 i32.store offset=4 local.get $1 @@ -16488,10 +16469,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1712 i32.store offset=4 local.get $1 @@ -16528,13 +16509,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 15568 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 15568 i32.const 2624 i32.const 2147483647 @@ -16551,10 +16532,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1712 i32.store offset=4 local.get $1 @@ -16569,10 +16550,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1808 i32.store offset=4 local.get $1 @@ -16587,10 +16568,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 12944 i32.store offset=4 local.get $1 @@ -16627,13 +16608,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 15600 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 15600 i32.const 2624 i32.const 2147483647 @@ -16650,10 +16631,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1808 i32.store offset=4 local.get $1 @@ -16668,10 +16649,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 12944 i32.store offset=4 local.get $1 @@ -16686,10 +16667,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 14048 i32.store offset=4 local.get $1 @@ -16726,13 +16707,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2336 i32.store - local.get $1 + local.get $0 i32.const 1712 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2336 i32.const 1712 i32.const 2147483647 @@ -16749,10 +16730,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1808 i32.store offset=4 local.get $1 @@ -16767,10 +16748,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 12944 i32.store offset=4 local.get $1 @@ -16807,13 +16788,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2336 i32.store - local.get $1 + local.get $0 i32.const 1712 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2336 i32.const 1712 i32.const 0 @@ -16831,13 +16812,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2336 i32.store - local.get $1 + local.get $0 i32.const 1712 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2336 i32.const 1712 i32.const 1 @@ -16876,13 +16857,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 15424 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 15424 i32.const 2624 i32.const 1 @@ -16921,13 +16902,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2336 i32.store - local.get $1 + local.get $0 i32.const 1712 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2336 i32.const 1712 i32.const 4 @@ -16944,10 +16925,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1808 i32.store offset=4 local.get $1 @@ -16962,10 +16943,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 12944 i32.store offset=4 local.get $1 @@ -17002,13 +16983,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 2336 i32.store - local.get $1 + local.get $0 i32.const 1712 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2336 i32.const 1712 i32.const -1 @@ -17025,10 +17006,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1808 i32.store offset=4 local.get $1 @@ -17043,10 +17024,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 12944 i32.store offset=4 local.get $1 @@ -17083,13 +17064,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 15424 i32.store - local.get $1 + local.get $0 i32.const 2624 i32.store offset=4 - local.get $1 + local.get $0 i32.const 15424 i32.const 2624 i32.const -1 @@ -17106,10 +17087,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 1808 i32.store offset=4 local.get $1 @@ -17124,10 +17105,10 @@ call $~lib/array/Array<~lib/string/String>#__get local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 i32.store - local.get $2 + local.get $3 i32.const 12944 i32.store offset=4 local.get $1 @@ -21772,6 +21753,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21788,41 +21770,40 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $5 i32.const 0 i32.store - local.get $3 - local.get $2 - local.set $3 local.get $0 i32.const 2 i32.shl local.tee $4 - local.tee $5 + local.set $6 + local.get $4 i32.const 0 call $~lib/rt/itcms/__new - local.set $2 - local.get $3 + local.set $3 + local.get $2 if - local.get $2 local.get $3 - local.get $5 + local.get $2 + local.get $6 call $~lib/memory/memory.copy end - local.get $2 + local.get $5 + local.get $3 i32.store i32.const 16 local.get $1 call $~lib/rt/itcms/__new local.tee $1 - local.get $2 + local.get $3 i32.store local.get $1 - local.get $2 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link local.get $1 - local.get $2 + local.get $3 i32.store offset=4 local.get $1 local.get $4 @@ -22120,7 +22101,7 @@ i32.shr_u i32.const 1 i32.shl - local.tee $4 + local.tee $5 local.get $0 i32.const 20 i32.sub @@ -22133,7 +22114,7 @@ local.get $1 i32.const 1 i32.shl - local.tee $5 + local.tee $4 i32.gt_u select i32.eqz @@ -22146,7 +22127,7 @@ return end global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 1 call $~lib/rt/itcms/__new local.tee $1 @@ -22155,36 +22136,36 @@ local.get $0 local.get $3 call $~lib/memory/memory.copy - local.get $4 local.get $5 + local.get $4 local.get $3 i32.sub local.tee $0 i32.lt_u if - local.get $4 + local.get $5 local.get $0 i32.const 2 i32.sub - local.get $4 + local.get $5 i32.div_u - local.tee $5 + local.tee $6 i32.mul - local.set $6 + local.set $4 local.get $1 local.get $3 i32.add local.tee $3 local.get $2 - local.get $4 local.get $5 + local.get $6 call $~lib/memory/memory.repeat local.get $3 - local.get $6 + local.get $4 i32.add local.get $2 local.get $0 - local.get $6 + local.get $4 i32.sub call $~lib/memory/memory.copy else @@ -23073,43 +23054,43 @@ (local $9 i32) (local $10 i32) (local $11 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 25884 - i32.lt_s - if - i32.const 42288 - i32.const 42336 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 25884 + i32.lt_s + if + i32.const 42288 + i32.const 42336 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $folding-inner0 + local.get $1 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $4 - local.get $1 + local.tee $7 + local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.const 1 i32.shr_u - local.tee $10 - i32.le_u + local.tee $4 + i32.ge_u if local.get $4 - local.get $10 + local.get $7 i32.ge_u if local.get $2 @@ -23128,15 +23109,15 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $5 - local.get $10 + local.set $3 + local.get $7 i32.eqz if - local.get $5 + local.get $3 i32.eqz br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $3 local.get $4 i32.const 1 i32.add @@ -23147,27 +23128,27 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store - local.get $3 - local.get $2 local.get $5 + local.get $2 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $5 + local.get $3 local.set $1 loop $for-loop|0 local.get $4 - local.get $6 + local.get $9 i32.gt_u if local.get $1 i32.const 1 i32.shl - local.get $3 + local.get $5 i32.add - local.get $6 + local.get $9 i32.const 1 i32.shl local.get $0 @@ -23180,21 +23161,21 @@ local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $5 i32.add local.get $2 - local.get $5 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $5 + local.get $3 i32.add local.set $1 - local.get $6 + local.get $9 i32.const 1 i32.add - local.set $6 + local.set $9 br $for-loop|0 end end @@ -23202,49 +23183,49 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $5 return end - local.get $5 - local.get $10 + local.get $3 + local.get $7 i32.eq if global.get $~lib/memory/__stack_pointer local.get $4 i32.const 1 i32.shl - local.tee $3 + local.tee $5 i32.const 1 call $~lib/rt/itcms/__new local.tee $4 i32.store local.get $4 local.get $0 - local.get $3 + local.get $5 call $~lib/memory/memory.copy loop $while-continue|1 local.get $0 local.get $1 - local.get $8 + local.get $10 call $~lib/string/String#indexOf - local.tee $6 + local.tee $5 i32.const -1 i32.xor if - local.get $6 + local.get $5 i32.const 1 i32.shl local.get $4 i32.add local.get $2 - local.get $5 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $6 - local.get $10 + local.get $5 + local.get $7 i32.add - local.set $8 + local.set $10 br $while-continue|1 end end @@ -23256,19 +23237,19 @@ return end local.get $4 - local.set $3 + local.set $5 loop $while-continue|2 local.get $0 local.get $1 - local.get $8 + local.get $10 call $~lib/string/String#indexOf - local.tee $11 + local.tee $9 i32.const -1 i32.xor if - local.get $7 + local.get $11 if (result i32) - local.get $7 + local.get $11 i32.const 20 i32.sub i32.load offset=16 @@ -23285,14 +23266,14 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $7 + local.tee $11 i32.store offset=4 end - local.get $3 local.get $5 - local.get $9 - local.get $11 + local.get $3 local.get $8 + local.get $9 + local.get $10 i32.sub local.tee $6 i32.add @@ -23300,23 +23281,23 @@ i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $3 + local.get $11 + local.get $5 i32.const 1 i32.shl - local.tee $3 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $7 + local.tee $11 i32.store offset=4 end - local.get $9 + local.get $8 i32.const 1 i32.shl - local.get $7 + local.get $11 i32.add - local.get $8 + local.get $10 i32.const 1 i32.shl local.get $0 @@ -23326,90 +23307,90 @@ i32.shl call $~lib/memory/memory.copy local.get $6 - local.get $9 + local.get $8 i32.add - local.tee $6 + local.tee $10 i32.const 1 i32.shl - local.get $7 + local.get $11 i32.add local.get $2 - local.get $5 + local.get $3 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $5 - local.get $6 - i32.add - local.set $9 + local.get $3 local.get $10 - local.get $11 i32.add local.set $8 + local.get $7 + local.get $9 + i32.add + local.set $10 br $while-continue|2 end end - local.get $7 + local.get $11 if - local.get $3 - local.get $9 - local.get $4 + local.get $5 local.get $8 + local.get $4 + local.get $10 i32.sub - local.tee $2 + local.tee $1 i32.add i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $3 + local.get $11 + local.get $5 i32.const 1 i32.shl - local.tee $3 + local.tee $5 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $7 + local.tee $11 i32.store offset=4 end - local.get $2 + local.get $1 if - local.get $9 + local.get $8 i32.const 1 i32.shl - local.get $7 + local.get $11 i32.add - local.get $8 + local.get $10 i32.const 1 i32.shl local.get $0 i32.add - local.get $2 + local.get $1 i32.const 1 i32.shl call $~lib/memory/memory.copy end - local.get $3 - local.get $2 - local.get $9 + local.get $5 + local.get $1 + local.get $8 i32.add - local.tee $1 + local.tee $0 i32.gt_u if global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $11 + local.get $0 i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.tee $7 + local.tee $11 i32.store offset=4 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $11 return end global.get $~lib/memory/__stack_pointer @@ -23852,13 +23833,13 @@ i32.shr_u local.tee $5 select - local.set $0 + local.set $2 local.get $1 i32.const 10 i32.eq if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 local.tee $1 i32.const 100000 i32.lt_u @@ -23907,16 +23888,16 @@ end local.get $5 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 local.get $0 local.get $1 + local.get $2 call $~lib/util/number/utoa32_dec_lut else local.get $1 @@ -23926,7 +23907,7 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.const 31 - local.get $0 + local.get $2 i32.clz i32.sub i32.const 2 @@ -23939,25 +23920,23 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $0 + local.get $2 i64.extend_i32_u local.set $3 - local.get $1 - local.set $0 loop $while-continue|0 - local.get $0 + local.get $1 i32.const 2 i32.ge_u if - local.get $0 + local.get $1 i32.const 2 i32.sub - local.tee $0 + local.tee $1 i32.const 1 i32.shl - local.get $2 + local.get $0 i32.add local.get $3 i32.wrap_i64 @@ -23976,11 +23955,11 @@ br $while-continue|0 end end - local.get $0 + local.get $1 i32.const 1 i32.and if - local.get $2 + local.get $0 local.get $3 i32.wrap_i64 i32.const 6 @@ -23993,12 +23972,11 @@ else global.get $~lib/memory/__stack_pointer block $__inlined_func$~lib/util/number/ulog_base (result i32) - local.get $0 + local.get $2 i64.extend_i32_u local.tee $6 local.set $3 local.get $1 - local.tee $0 i32.popcnt i32.const 1 i32.eq @@ -24009,7 +23987,7 @@ i32.wrap_i64 i32.sub i32.const 31 - local.get $0 + local.get $1 i32.clz i32.sub i32.div_u @@ -24017,7 +23995,7 @@ i32.add br $__inlined_func$~lib/util/number/ulog_base end - local.get $0 + local.get $1 i64.extend_i32_s local.tee $7 local.set $4 @@ -24065,23 +24043,23 @@ end local.get $5 i32.add - local.tee $0 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $0 i32.store - local.get $2 - local.get $6 local.get $0 + local.get $6 + local.get $2 local.get $1 call $~lib/util/number/utoa64_any_core end end local.get $5 if - local.get $2 + local.get $0 i32.const 45 i32.store16 end @@ -24089,11 +24067,11 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $0 ) (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) + (local $2 i64) + (local $3 i32) (local $4 i64) (local $5 i64) (local $6 i64) @@ -24193,16 +24171,16 @@ i32.add end end - local.tee $1 + local.tee $0 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 - local.get $0 + local.get $3 local.get $1 + local.get $0 call $~lib/util/number/utoa32_dec_lut else local.get $1 @@ -24223,11 +24201,11 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store local.get $0 i64.extend_i32_u - local.set $3 + local.set $2 local.get $1 local.set $0 loop $while-continue|0 @@ -24241,9 +24219,9 @@ local.tee $0 i32.const 1 i32.shl - local.get $2 - i32.add local.get $3 + i32.add + local.get $2 i32.wrap_i64 i32.const 255 i32.and @@ -24253,10 +24231,10 @@ i32.add i32.load i32.store - local.get $3 + local.get $2 i64.const 8 i64.shr_u - local.set $3 + local.set $2 br $while-continue|0 end end @@ -24264,8 +24242,8 @@ i32.const 1 i32.and if - local.get $2 local.get $3 + local.get $2 i32.wrap_i64 i32.const 6 i32.shl @@ -24280,21 +24258,19 @@ local.get $0 i64.extend_i32_u local.tee $5 - local.set $3 - local.get $1 - local.set $0 + local.set $2 local.get $1 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $3 + local.get $2 i64.clz i32.wrap_i64 i32.sub i32.const 31 - local.get $0 + local.get $1 i32.clz i32.sub i32.div_u @@ -24302,21 +24278,21 @@ i32.add br $__inlined_func$~lib/util/number/ulog_base end - local.get $0 + local.get $1 i64.extend_i32_s local.tee $6 local.set $4 i32.const 1 local.set $0 loop $while-continue|00 - local.get $3 + local.get $2 local.get $4 i64.ge_u if - local.get $3 + local.get $2 local.get $4 i64.div_u - local.set $3 + local.set $2 local.get $4 local.get $4 i64.mul @@ -24329,14 +24305,14 @@ end end loop $while-continue|1 - local.get $3 + local.get $2 i64.const 1 i64.ge_u if - local.get $3 + local.get $2 local.get $6 i64.div_u - local.set $3 + local.set $2 local.get $0 i32.const 1 i32.add @@ -24353,9 +24329,9 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 local.get $5 local.get $0 local.get $1 @@ -24366,13 +24342,13 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 ) (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) (local $2 i64) (local $3 i32) - (local $4 i32) - (local $5 i64) + (local $4 i64) + (local $5 i32) (local $6 i64) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24429,7 +24405,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $4 + local.tee $5 local.tee $1 i32.const 100000 i32.lt_u @@ -24484,57 +24460,56 @@ local.tee $3 i32.store local.get $3 - local.get $4 + local.get $5 local.get $1 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $2 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $0 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $0 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $2 + local.get $0 i64.const 10000000000 i64.ge_u i32.add else - local.get $2 + local.get $0 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $2 + local.get $0 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $2 + local.get $0 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $0 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $2 + local.get $0 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $2 + local.get $0 i64.const 1000000000000000000 i64.ge_u i32.add @@ -24548,7 +24523,7 @@ local.tee $3 i32.store local.get $3 - local.get $2 + local.get $0 local.get $1 call $~lib/util/number/utoa64_dec_lut end @@ -24624,8 +24599,6 @@ local.get $0 local.set $2 local.get $1 - local.set $3 - local.get $1 i32.popcnt i32.const 1 i32.eq @@ -24636,7 +24609,7 @@ i32.wrap_i64 i32.sub i32.const 31 - local.get $3 + local.get $1 i32.clz i32.sub i32.div_u @@ -24644,25 +24617,25 @@ i32.add br $__inlined_func$~lib/util/number/ulog_base end - local.get $3 + local.get $1 i64.extend_i32_s local.tee $6 - local.set $5 + local.set $4 i32.const 1 local.set $3 loop $while-continue|00 local.get $2 - local.get $5 + local.get $4 i64.ge_u if local.get $2 - local.get $5 + local.get $4 i64.div_u local.set $2 - local.get $5 - local.get $5 + local.get $4 + local.get $4 i64.mul - local.set $5 + local.set $4 local.get $3 i32.const 1 i32.shl @@ -24690,7 +24663,7 @@ i32.const 1 i32.sub end - local.tee $4 + local.tee $5 i32.const 1 i32.shl i32.const 1 @@ -24699,7 +24672,7 @@ i32.store local.get $3 local.get $0 - local.get $4 + local.get $5 local.get $1 call $~lib/util/number/utoa64_any_core end @@ -24711,11 +24684,11 @@ local.get $3 ) (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i64) - (local $3 i32) + (local $2 i32) + (local $3 i64) (local $4 i32) - (local $5 i32) - (local $6 i64) + (local $5 i64) + (local $6 i32) (local $7 i64) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -24769,7 +24742,7 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.tee $5 + local.tee $4 select local.set $0 local.get $1 @@ -24783,7 +24756,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.wrap_i64 - local.tee $4 + local.tee $2 local.tee $1 i32.const 100000 i32.lt_u @@ -24830,84 +24803,83 @@ i32.add end end - local.get $5 + local.get $4 i32.add - local.tee $1 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store - local.get $3 - local.get $4 local.get $1 + local.get $2 + local.get $6 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer local.get $0 - local.tee $2 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $0 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $0 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $2 + local.get $0 i64.const 10000000000 i64.ge_u i32.add else - local.get $2 + local.get $0 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $2 + local.get $0 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $2 + local.get $0 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $2 + local.get $0 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $2 + local.get $0 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $2 + local.get $0 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.get $5 + local.get $4 i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store - local.get $3 - local.get $2 local.get $1 + local.get $0 + local.get $2 call $~lib/util/number/utoa64_dec_lut end else @@ -24916,7 +24888,7 @@ i32.eq if global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.const 63 local.get $0 i64.clz @@ -24927,25 +24899,25 @@ i32.const 1 i32.add i32.add - local.tee $1 + local.tee $2 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store loop $while-continue|0 - local.get $1 + local.get $2 i32.const 2 i32.ge_u if - local.get $1 + local.get $2 i32.const 2 i32.sub - local.tee $1 + local.tee $2 i32.const 1 i32.shl - local.get $3 + local.get $1 i32.add local.get $0 i32.wrap_i64 @@ -24964,11 +24936,11 @@ br $while-continue|0 end end - local.get $1 + local.get $2 i32.const 1 i32.and if - local.get $3 + local.get $1 local.get $0 i32.wrap_i64 i32.const 6 @@ -24982,21 +24954,20 @@ global.get $~lib/memory/__stack_pointer block $__inlined_func$~lib/util/number/ulog_base (result i32) local.get $0 - local.set $2 - local.get $1 local.set $3 local.get $1 + local.tee $2 i32.popcnt i32.const 1 i32.eq if i32.const 63 - local.get $2 + local.get $3 i64.clz i32.wrap_i64 i32.sub i32.const 31 - local.get $3 + local.get $2 i32.clz i32.sub i32.div_u @@ -25004,71 +24975,71 @@ i32.add br $__inlined_func$~lib/util/number/ulog_base end - local.get $3 + local.get $2 i64.extend_i32_s local.tee $7 - local.set $6 + local.set $5 i32.const 1 - local.set $3 + local.set $1 loop $while-continue|00 - local.get $2 - local.get $6 + local.get $3 + local.get $5 i64.ge_u if - local.get $2 - local.get $6 + local.get $3 + local.get $5 i64.div_u - local.set $2 - local.get $6 - local.get $6 + local.set $3 + local.get $5 + local.get $5 i64.mul - local.set $6 - local.get $3 + local.set $5 + local.get $1 i32.const 1 i32.shl - local.set $3 + local.set $1 br $while-continue|00 end end loop $while-continue|1 - local.get $2 + local.get $3 i64.const 1 i64.ge_u if - local.get $2 + local.get $3 local.get $7 i64.div_u - local.set $2 - local.get $3 + local.set $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $while-continue|1 end end - local.get $3 + local.get $1 i32.const 1 i32.sub end - local.get $5 + local.get $4 i32.add - local.tee $4 + local.tee $6 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $1 i32.store - local.get $3 - local.get $0 - local.get $4 local.get $1 + local.get $0 + local.get $6 + local.get $2 call $~lib/util/number/utoa64_any_core end end - local.get $5 + local.get $4 if - local.get $3 + local.get $1 i32.const 45 i32.store16 end @@ -25076,7 +25047,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 + local.get $1 ) (func $~lib/util/number/dtoa (param $0 f64) (result i32) (local $1 i32) diff --git a/tests/compiler/std/symbol.optimized.wat b/tests/compiler/std/symbol.optimized.wat index c681f66411..455b30883c 100644 --- a/tests/compiler/std/symbol.optimized.wat +++ b/tests/compiler/std/symbol.optimized.wat @@ -207,7 +207,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -215,10 +214,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 19084 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -232,7 +231,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -257,21 +256,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 2656 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1328 i32.const 1392 @@ -280,7 +277,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 2660 @@ -295,28 +292,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1579,7 +1576,7 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $6 + local.tee $5 local.get $2 i32.const 1073741820 i32.gt_u @@ -1607,11 +1604,11 @@ end local.tee $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if memory.size - local.tee $5 + local.tee $4 local.get $2 i32.const 536870910 i32.lt_u @@ -1630,9 +1627,9 @@ local.get $2 end i32.const 4 - local.get $6 - i32.load offset=1568 local.get $5 + i32.load offset=1568 + local.get $4 i32.const 16 i32.shl i32.const 4 @@ -1648,7 +1645,7 @@ i32.shr_u local.tee $3 local.get $3 - local.get $5 + local.get $4 i32.lt_s select memory.grow @@ -1663,18 +1660,18 @@ unreachable end end - local.get $6 local.get $5 + local.get $4 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $6 + local.get $5 local.get $2 call $~lib/rt/tlsf/searchBlock - local.tee $4 + local.tee $3 i32.eqz if i32.const 0 @@ -1685,7 +1682,7 @@ unreachable end end - local.get $4 + local.get $3 i32.load i32.const -4 i32.and @@ -1699,16 +1696,13 @@ call $~lib/builtins/abort unreachable end - local.get $6 - local.get $4 + local.get $5 + local.get $3 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.set $3 - local.get $4 - local.tee $2 - i32.load - local.set $5 local.get $3 + i32.load + local.set $4 + local.get $2 i32.const 4 i32.add i32.const 15 @@ -1721,89 +1715,89 @@ call $~lib/builtins/abort unreachable end - local.get $5 + local.get $4 i32.const -4 i32.and - local.get $3 + local.get $2 i32.sub - local.tee $4 + local.tee $6 i32.const 16 i32.ge_u if - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const 2 i32.and - local.get $3 + local.get $2 i32.or i32.store - local.get $3 local.get $2 + local.get $3 i32.const 4 i32.add i32.add - local.tee $3 - local.get $4 + local.tee $2 + local.get $6 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $6 - local.get $3 + local.get $5 + local.get $2 call $~lib/rt/tlsf/insertBlock else - local.get $2 - local.get $5 + local.get $3 + local.get $4 i32.const -2 i32.and i32.store - local.get $2 + local.get $3 i32.const 4 i32.add - local.get $2 + local.get $3 i32.load i32.const -4 i32.and i32.add - local.tee $3 - local.get $3 + local.tee $2 + local.get $2 i32.load i32.const -3 i32.and i32.store end - local.get $2 + local.get $3 local.get $1 i32.store offset=12 - local.get $2 + local.get $3 local.get $0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace local.tee $1 i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 + local.set $2 + local.get $3 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 - local.get $2 local.get $3 + local.get $2 i32.store offset=8 - local.get $3 - local.get $3 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 local.get $1 - local.get $2 + local.get $3 i32.store offset=8 global.get $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.load i32.const -4 i32.and @@ -1811,7 +1805,7 @@ i32.add i32.add global.set $~lib/rt/itcms/total - local.get $2 + local.get $3 i32.const 20 i32.add local.tee $1 @@ -2190,66 +2184,63 @@ ) (func $~lib/map/Map#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - block $__inlined_func$~lib/map/Map#find (result i32) - local.get $0 - i32.load - local.get $0 - i32.load offset=4 - local.get $1 - local.tee $2 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 + local.get $0 + i32.load + local.get $0 + i32.load offset=4 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + block $__inlined_func$~lib/map/Map#find loop $while-continue|0 local.get $0 if - local.get $0 local.get $0 i32.load offset=8 - local.tee $1 + local.tee $2 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $1 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - drop - local.get $1 + local.get $2 i32.const -2 i32.and local.set $0 @@ -2257,8 +2248,9 @@ end end i32.const 0 + local.set $0 end - local.tee $0 + local.get $0 i32.eqz if i32.const 1648 @@ -3176,25 +3168,25 @@ (local $2 i32) (local $3 i32) (local $4 i32) - block $__inlined_func$~lib/string/String#concat (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2700 - i32.lt_s - if - i32.const 19104 - i32.const 19152 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2700 + i32.lt_s + if + i32.const 19104 + i32.const 19152 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/string/String#concat local.get $0 i32.const 20 i32.sub @@ -3222,6 +3214,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1824 + local.set $2 br $__inlined_func$~lib/string/String#concat end global.get $~lib/memory/__stack_pointer @@ -3244,8 +3237,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $2 ) (func $~lib/rt/__visit_members (param $0 i32) (local $1 i32) @@ -3448,16 +3441,15 @@ (local $8 i32) (local $9 i32) (local $10 i32) - (local $11 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -3465,22 +3457,22 @@ if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $1 + local.tee $2 i32.eqz if i32.const 1648 @@ -3490,7 +3482,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3506,52 +3498,52 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $1 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 3 i32.store offset=4 - local.get $1 + local.get $2 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 4 i32.store offset=12 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 global.set $~lib/symbol/stringToId global.get $~lib/memory/__stack_pointer i32.const 4 @@ -3560,102 +3552,100 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 24 i32.const 4 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 16 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store - local.get $1 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 3 i32.store offset=4 - local.get $1 + local.get $2 i32.const 48 call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $0 i32.store offset=8 - local.get $1 + local.get $2 local.get $0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $2 i32.const 4 i32.store offset=12 - local.get $1 + local.get $2 i32.const 0 i32.store offset=16 - local.get $1 + local.get $2 i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $2 global.set $~lib/symbol/idToString end global.get $~lib/symbol/nextId - local.tee $5 + local.tee $6 i32.const 1 i32.add global.set $~lib/symbol/nextId - local.get $5 + local.get $6 i32.eqz if unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 global.get $~lib/symbol/stringToId - local.tee $6 + local.tee $2 i32.store - local.get $5 - local.set $0 - local.get $1 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $6 + local.get $2 i32.const 1056 call $~lib/util/hash/HASH<~lib/string/String> - local.tee $10 + local.tee $9 call $~lib/map/Map<~lib/string/String,usize>#find - local.tee $1 + local.tee $0 if - local.get $1 local.get $0 + local.get $6 i32.store offset=4 else - local.get $6 + local.get $2 i32.load offset=16 - local.get $6 + local.get $2 i32.load offset=12 i32.eq if - local.get $6 + local.get $2 i32.load offset=20 - local.get $6 + local.get $2 i32.load offset=12 i32.const 3 i32.mul @@ -3663,10 +3653,10 @@ i32.div_s i32.lt_s if (result i32) - local.get $6 + local.get $2 i32.load offset=4 else - local.get $6 + local.get $2 i32.load offset=4 i32.const 1 i32.shl @@ -3681,50 +3671,50 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 local.get $4 i32.const 1 i32.add - local.tee $1 + local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 3 i32.shl i32.const 3 i32.div_s - local.tee $11 + local.tee $10 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $2 + local.tee $1 i32.store offset=4 - local.get $6 + local.get $2 i32.load offset=8 local.tee $3 - local.get $6 + local.get $2 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $7 - local.get $2 - local.set $1 + local.set $5 + local.get $1 + local.set $0 loop $while-continue|0 local.get $3 - local.get $7 + local.get $5 i32.ne if local.get $3 @@ -3736,34 +3726,34 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.load - local.tee $9 + local.tee $8 i32.store offset=8 - local.get $1 - local.get $9 + local.get $0 + local.get $8 i32.store - local.get $1 + local.get $0 local.get $3 i32.load offset=4 i32.store offset=4 - local.get $1 - local.get $9 + local.get $0 + local.get $8 call $~lib/util/hash/HASH<~lib/string/String> local.get $4 i32.and i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add - local.tee $9 + local.tee $8 i32.load i32.store offset=8 - local.get $9 - local.get $1 + local.get $8 + local.get $0 i32.store - local.get $1 + local.get $0 i32.const 12 i32.add - local.set $1 + local.set $0 end local.get $3 i32.const 12 @@ -3772,28 +3762,28 @@ br $while-continue|0 end end - local.get $6 - local.get $8 + local.get $2 + local.get $7 i32.store - local.get $6 - local.get $8 + local.get $2 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link - local.get $6 + local.get $2 local.get $4 i32.store offset=4 - local.get $6 local.get $2 + local.get $1 i32.store offset=8 - local.get $6 local.get $2 + local.get $1 i32.const 0 call $~lib/rt/itcms/__link - local.get $6 - local.get $11 + local.get $2 + local.get $10 i32.store offset=12 - local.get $6 - local.get $6 + local.get $2 + local.get $2 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -3802,53 +3792,53 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.store - local.get $6 - local.get $6 + local.get $2 + local.get $2 i32.load offset=16 - local.tee $3 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $4 i32.const 12 i32.mul - local.get $1 + local.get $0 i32.add - local.tee $1 + local.tee $0 i32.const 1056 i32.store - local.get $6 + local.get $2 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 local.get $0 - i32.store offset=4 - local.get $6 local.get $6 + i32.store offset=4 + local.get $2 + local.get $2 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 - local.get $1 - local.get $6 + local.get $0 + local.get $2 i32.load - local.get $6 + local.get $2 i32.load offset=4 - local.get $10 + local.get $9 i32.and i32.const 2 i32.shl i32.add - local.tee $3 + local.tee $2 i32.load i32.store offset=8 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store end global.get $~lib/memory/__stack_pointer @@ -3856,25 +3846,24 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $0 global.get $~lib/symbol/idToString - local.tee $1 + local.tee $2 i32.store - local.get $3 + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $1 + local.get $2 i32.load - local.get $0 - local.tee $2 + local.get $6 i32.const -1028477379 i32.mul i32.const 374761397 @@ -3884,57 +3873,56 @@ i32.const 668265263 i32.mul local.tee $0 - local.get $0 i32.const 15 i32.shr_u + local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 - local.get $0 i32.const 13 i32.shr_u + local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 - local.get $0 i32.const 16 i32.shr_u + local.get $0 i32.xor - local.tee $9 - local.get $1 + local.tee $8 + local.get $2 i32.load offset=4 i32.and i32.const 2 i32.shl i32.add i32.load - local.set $3 + local.set $0 block $__inlined_func$~lib/map/Map#find - loop $while-continue|022 - local.get $3 + loop $while-continue|00 + local.get $0 if - local.get $3 - local.tee $0 + local.get $0 i32.load offset=8 - local.tee $4 + local.tee $1 i32.const 1 i32.and if (result i32) i32.const 0 else - local.get $2 + local.get $6 local.get $0 i32.load i32.eq end br_if $__inlined_func$~lib/map/Map#find - local.get $4 + local.get $1 i32.const -2 i32.and - local.set $3 - br $while-continue|022 + local.set $0 + br $while-continue|00 end end i32.const 0 @@ -3945,20 +3933,20 @@ local.get $0 i32.const 1056 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link else - local.get $1 + local.get $2 i32.load offset=16 - local.get $1 + local.get $2 i32.load offset=12 i32.eq if - local.get $1 + local.get $2 i32.load offset=20 - local.get $1 + local.get $2 i32.load offset=12 i32.const 3 i32.mul @@ -3966,17 +3954,17 @@ i32.div_s i32.lt_s if (result i32) - local.get $1 + local.get $2 i32.load offset=4 else - local.get $1 + local.get $2 i32.load offset=4 i32.const 1 i32.shl i32.const 1 i32.or end - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -3984,20 +3972,20 @@ global.get $~lib/memory/__stack_pointer i32.const 2700 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - local.get $3 + local.get $4 i32.const 1 i32.add local.tee $0 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $8 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer local.get $0 @@ -4005,45 +3993,45 @@ i32.shl i32.const 3 i32.div_s - local.tee $10 + local.tee $9 i32.const 12 i32.mul call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.tee $1 i32.store offset=4 - local.get $1 + local.get $2 i32.load offset=8 - local.tee $6 - local.get $1 + local.tee $3 + local.get $2 i32.load offset=16 i32.const 12 i32.mul i32.add - local.set $11 - local.get $4 + local.set $10 + local.get $1 local.set $0 - loop $while-continue|00 - local.get $6 - local.get $11 + loop $while-continue|01 + local.get $3 + local.get $10 i32.ne if - local.get $6 + local.get $3 i32.load offset=8 i32.const 1 i32.and i32.eqz if local.get $0 - local.get $6 + local.get $3 i32.load - local.tee $7 + local.tee $5 i32.store local.get $0 - local.get $6 + local.get $3 i32.load offset=4 i32.store offset=4 local.get $0 - local.get $7 + local.get $5 i32.const -1028477379 i32.mul i32.const 374761397 @@ -4052,35 +4040,35 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $7 - local.get $7 + local.tee $5 i32.const 15 i32.shr_u + local.get $5 i32.xor i32.const -2048144777 i32.mul - local.tee $7 - local.get $7 + local.tee $5 i32.const 13 i32.shr_u + local.get $5 i32.xor i32.const -1028477379 i32.mul - local.tee $7 - local.get $7 + local.tee $5 i32.const 16 i32.shr_u + local.get $5 i32.xor - local.get $3 + local.get $4 i32.and i32.const 2 i32.shl - local.get $8 + local.get $7 i32.add - local.tee $7 + local.tee $5 i32.load i32.store offset=8 - local.get $7 + local.get $5 local.get $0 i32.store local.get $0 @@ -4088,35 +4076,35 @@ i32.add local.set $0 end - local.get $6 + local.get $3 i32.const 12 i32.add - local.set $6 - br $while-continue|00 + local.set $3 + br $while-continue|01 end end - local.get $1 - local.get $8 + local.get $2 + local.get $7 i32.store - local.get $1 - local.get $8 + local.get $2 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.store offset=4 + local.get $2 local.get $1 - local.get $4 i32.store offset=8 + local.get $2 local.get $1 - local.get $4 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 - local.get $10 + local.get $2 + local.get $9 i32.store offset=12 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=20 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -4125,52 +4113,52 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load offset=8 local.tee $0 i32.store - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=16 - local.tee $3 + local.tee $4 i32.const 1 i32.add i32.store offset=16 - local.get $3 + local.get $4 i32.const 12 i32.mul local.get $0 i32.add local.tee $0 - local.get $2 + local.get $6 i32.store local.get $0 i32.const 1056 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1056 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=20 i32.const 1 i32.add i32.store offset=20 local.get $0 - local.get $1 + local.get $2 i32.load - local.get $1 + local.get $2 i32.load offset=4 - local.get $9 + local.get $8 i32.and i32.const 2 i32.shl i32.add - local.tee $1 + local.tee $2 i32.load i32.store offset=8 - local.get $1 + local.get $2 local.get $0 i32.store end @@ -4182,7 +4170,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $6 return end i32.const 19104 @@ -4233,23 +4221,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -4451,23 +4439,23 @@ i32.const 668265263 i32.mul local.tee $1 - local.get $1 i32.const 15 i32.shr_u + local.get $1 i32.xor i32.const -2048144777 i32.mul local.tee $1 - local.get $1 i32.const 13 i32.shr_u + local.get $1 i32.xor i32.const -1028477379 i32.mul local.tee $1 - local.get $1 i32.const 16 i32.shr_u + local.get $1 i32.xor i32.and i32.const 2 @@ -4509,12 +4497,12 @@ end if global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $~lib/symbol/idToString local.tee $2 + global.get $~lib/symbol/idToString + local.tee $1 i32.store offset=4 - local.get $1 local.get $2 + local.get $1 local.get $0 call $~lib/map/Map#get local.tee $2 @@ -4545,7 +4533,6 @@ (func $start:std/symbol (local $0 i32) (local $1 i32) - (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -4562,13 +4549,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 1056 i32.store global.get $~lib/symbol/nextId @@ -4721,14 +4708,14 @@ local.get $0 global.set $std/symbol/key4 global.get $~lib/memory/__stack_pointer - local.tee $1 - global.get $std/symbol/key3 local.tee $0 + global.get $std/symbol/key3 + local.tee $1 i32.store - local.get $1 + local.get $0 i32.const 1056 i32.store offset=8 - local.get $0 + local.get $1 i32.const 1056 call $~lib/string/String.__eq i32.eqz @@ -4741,15 +4728,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 - global.get $std/symbol/key3 local.tee $0 + global.get $std/symbol/key3 + local.tee $1 i32.store local.get $0 - local.get $2 global.get $std/symbol/key4 local.tee $0 i32.store offset=8 + local.get $1 local.get $0 call $~lib/string/String.__eq i32.eqz diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 44d4624318..a17d2b8ca1 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -767,7 +767,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -775,10 +774,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 33012 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -792,7 +791,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -817,21 +816,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 16000 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1360 i32.const 1424 @@ -840,7 +837,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 16004 @@ -855,28 +852,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1896,12 +1893,19 @@ end end ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.tee $3 local.get $0 - local.get $1 i32.const 1073741820 i32.gt_u if @@ -1912,13 +1916,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 12 i32.le_u if (result i32) i32.const 12 else - local.get $1 + local.get $0 i32.const 19 i32.add i32.const -16 @@ -1926,32 +1930,32 @@ i32.const 4 i32.sub end - local.tee $1 + local.tee $0 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if memory.size local.tee $2 - local.get $1 + local.get $0 i32.const 536870910 i32.lt_u if (result i32) i32.const 1 i32.const 27 - local.get $1 + local.get $0 i32.clz i32.sub i32.shl i32.const 1 i32.sub - local.get $1 + local.get $0 i32.add else - local.get $1 + local.get $0 end i32.const 4 - local.get $0 + local.get $3 i32.load offset=1568 local.get $2 i32.const 16 @@ -1967,16 +1971,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 + local.get $1 local.get $2 - local.get $3 - i32.gt_s + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1984,7 +1988,7 @@ unreachable end end - local.get $0 + local.get $3 local.get $2 i32.const 16 i32.shl @@ -1992,10 +1996,10 @@ i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/searchBlock - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -2006,11 +2010,11 @@ unreachable end end - local.get $2 + local.get $1 i32.load i32.const -4 i32.and - local.get $1 + local.get $0 i32.lt_u if i32.const 0 @@ -2020,14 +2024,13 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.get $2 + local.get $3 + local.get $1 call $~lib/rt/tlsf/removeBlock - local.get $2 - local.tee $3 + local.get $1 i32.load local.set $2 - local.get $1 + local.get $0 i32.const 4 i32.add i32.const 15 @@ -2043,44 +2046,44 @@ local.get $2 i32.const -4 i32.and - local.get $1 + local.get $0 i32.sub local.tee $4 i32.const 16 i32.ge_u if - local.get $3 + local.get $1 local.get $2 i32.const 2 i32.and - local.get $1 + local.get $0 i32.or i32.store + local.get $0 local.get $1 - local.get $3 i32.const 4 i32.add i32.add - local.tee $1 + local.tee $0 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store + local.get $3 local.get $0 - local.get $1 call $~lib/rt/tlsf/insertBlock else - local.get $3 + local.get $1 local.get $2 i32.const -2 i32.and i32.store - local.get $3 + local.get $1 i32.const 4 i32.add - local.get $3 + local.get $1 i32.load i32.const -4 i32.and @@ -2092,7 +2095,9 @@ i32.and i32.store end - local.get $3 + local.get $1 + i32.const 4 + i32.add ) (func $~lib/memory/memory.fill (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2333,13 +2338,13 @@ end global.get $~lib/rt/itcms/total local.tee $2 + local.get $2 global.get $~lib/rt/itcms/threshold i32.sub i32.const 1024 i32.lt_u i32.const 10 i32.shl - local.get $2 i32.add global.set $~lib/rt/itcms/threshold end @@ -2347,15 +2352,9 @@ local.get $0 i32.const 16 i32.add - local.set $2 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock + call $~lib/rt/tlsf/__alloc + i32.const 4 + i32.sub local.tee $2 local.get $1 i32.store offset=12 @@ -2367,8 +2366,8 @@ i32.load offset=8 local.set $1 local.get $2 - local.get $3 global.get $~lib/rt/itcms/white + local.get $3 i32.or i32.store offset=4 local.get $2 @@ -3624,22 +3623,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $12 - local.get $5 + local.get $7 i32.add local.set $11 i32.const 0 @@ -3666,17 +3655,7 @@ local.get $1 i32.const 3 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $10 local.get $0 i32.const 0 @@ -3686,7 +3665,7 @@ local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -3701,26 +3680,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $5 local.get $13 i32.lt_s if local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $13 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $5 + local.get $6 i32.sub i32.const 1 i32.add @@ -3729,9 +3708,9 @@ i32.lt_s if local.get $0 - local.get $5 + local.get $6 local.get $13 - local.get $5 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -3745,7 +3724,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $5 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -3756,7 +3735,7 @@ i64.extend_i32_u local.tee $9 i64.div_u - local.get $5 + local.get $6 local.get $7 i32.add i32.const 1 @@ -3798,7 +3777,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $5 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns @@ -3828,12 +3807,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $5 + i32.store + local.get $6 local.set $3 local.get $7 - local.set $6 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -6450,31 +6429,30 @@ ) (func $~lib/typedarray/Int8Array#reverse (param $0 i32) (result i32) (local $1 i32) - (local $2 i64) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) + (local $6 i64) + (local $7 i64) (local $8 i32) - (local $9 i64) local.get $0 i32.load offset=4 - local.set $4 + local.set $5 local.get $0 i32.load offset=8 - local.tee $3 + local.tee $2 i32.const 1 i32.gt_u if - local.get $3 + local.get $2 i32.const 1 i32.shr_u local.set $8 - local.get $3 + local.get $2 i32.const 8 i32.sub - local.set $5 + local.set $3 loop $while-continue|0 local.get $8 local.get $1 @@ -6483,60 +6461,47 @@ i32.gt_u if local.get $1 - local.get $4 + local.get $5 i32.add - local.tee $6 + local.tee $4 i64.load - local.tee $2 + local.tee $6 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $2 + local.get $6 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $2 - i64.const 16 - i64.shr_u - i64.const 281470681808895 - i64.and - local.get $2 - i64.const 281470681808895 - i64.and - i64.const 16 - i64.shl - i64.or - i64.const 32 - i64.rotr - local.set $9 - local.get $6 + local.set $6 local.get $4 + local.get $3 local.get $5 i32.add local.get $1 i32.sub - local.tee $7 + local.tee $4 i64.load - local.tee $2 + local.tee $7 i64.const 8 i64.shr_u i64.const 71777214294589695 i64.and - local.get $2 + local.get $7 i64.const 71777214294589695 i64.and i64.const 8 i64.shl i64.or - local.tee $2 + local.tee $7 i64.const 16 i64.shr_u i64.const 281470681808895 i64.and - local.get $2 + local.get $7 i64.const 281470681808895 i64.and i64.const 16 @@ -6545,8 +6510,20 @@ i64.const 32 i64.rotr i64.store - local.get $7 - local.get $9 + local.get $4 + local.get $6 + i64.const 16 + i64.shr_u + i64.const 281470681808895 + i64.and + local.get $6 + i64.const 281470681808895 + i64.and + i64.const 16 + i64.shl + i64.or + i64.const 32 + i64.rotr i64.store local.get $1 i32.const 8 @@ -6555,32 +6532,32 @@ br $while-continue|0 end end - local.get $3 + local.get $2 i32.const 1 i32.sub - local.set $7 + local.set $2 loop $while-continue|1 local.get $1 local.get $8 i32.lt_u if local.get $1 - local.get $4 + local.get $5 i32.add local.tee $3 i32.load8_u - local.set $5 + local.set $4 local.get $3 - local.get $7 + local.get $2 local.get $1 i32.sub - local.get $4 + local.get $5 i32.add - local.tee $6 + local.tee $3 i32.load8_u i32.store8 - local.get $6 - local.get $5 + local.get $3 + local.get $4 i32.store8 local.get $1 i32.const 1 @@ -6759,9 +6736,9 @@ end end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 local.get $2 i32.load offset=8 @@ -6776,28 +6753,28 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -6807,9 +6784,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 local.get $2 i32.load offset=8 @@ -6823,30 +6800,30 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|03 - local.get $1 + loop $while-continue|02 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -6858,10 +6835,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 local.get $2 i32.load offset=8 local.tee $3 @@ -6870,34 +6847,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|07 - local.get $1 + loop $while-continue|05 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 255 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.04 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -6909,10 +6886,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.09 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 local.get $2 i32.load offset=8 local.tee $3 @@ -6921,34 +6898,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $1 + loop $while-continue|08 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.09 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.07 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|011 + local.set $0 + br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -6960,10 +6937,10 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 local.get $2 i32.load offset=8 local.tee $3 @@ -6972,34 +6949,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|015 - local.get $1 + loop $while-continue|011 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.010 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -7011,10 +6988,10 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 local.get $2 i32.load offset=8 local.tee $3 @@ -7023,34 +7000,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|019 - local.get $1 + loop $while-continue|014 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.013 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -7062,10 +7039,10 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.021 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 local.get $2 i32.load offset=8 local.tee $3 @@ -7074,34 +7051,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|023 - local.get $1 + loop $while-continue|017 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.021 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.016 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|023 + local.set $0 + br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -7113,10 +7090,10 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.025 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 local.get $2 i32.load offset=8 local.tee $3 @@ -7125,34 +7102,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|027 - local.get $1 + loop $while-continue|020 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.025 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|027 + local.set $0 + br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -7165,17 +7142,17 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $0 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -7184,27 +7161,28 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|031 + local.set $4 + loop $while-continue|023 local.get $0 - local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.022 local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|031 + local.set $0 + br $while-continue|023 end end i32.const -1 @@ -7224,26 +7202,24 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $1 - i32.load offset=8 - local.tee $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -7251,22 +7227,22 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -7274,9 +7250,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -7287,25 +7263,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -7313,23 +7289,23 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -7337,9 +7313,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -7352,25 +7328,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -7378,23 +7354,23 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -7402,9 +7378,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -7417,25 +7393,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -7443,23 +7419,23 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -7467,9 +7443,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -7481,50 +7457,49 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $1 - local.tee $2 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $1 + local.set $4 + loop $while-continue|024 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|033 + local.set $0 + br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -7536,49 +7511,49 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $1 + local.set $4 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.026 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|037 + local.set $0 + br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -7590,49 +7565,49 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.039 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $1 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.029 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|041 + local.set $0 + br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -7644,49 +7619,49 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.043 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $1 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.032 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|045 + local.set $0 + br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -7699,36 +7674,37 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 local.get $0 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|049 - local.get $1 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $1 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.035 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|049 + local.set $0 + br $while-continue|036 end end i32.const -1 @@ -7747,36 +7723,37 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.051 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 local.get $0 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|053 - local.get $1 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $1 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.038 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|053 + local.set $0 + br $while-continue|039 end end i32.const -1 @@ -7801,10 +7778,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.055 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 local.get $2 i32.load offset=8 local.tee $3 @@ -7813,34 +7790,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $1 + loop $while-continue|042 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.055 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|057 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -7852,10 +7829,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 local.get $2 i32.load offset=8 local.tee $3 @@ -7864,34 +7841,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|061 - local.get $1 + loop $while-continue|045 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|061 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -7901,10 +7878,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.063 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 local.get $2 i32.load offset=8 local.tee $3 @@ -7913,34 +7890,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|065 - local.get $1 + loop $while-continue|048 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.063 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|065 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -7952,10 +7929,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.067 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 local.get $2 i32.load offset=8 local.tee $3 @@ -7964,34 +7941,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|069 - local.get $1 + loop $while-continue|051 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.067 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|069 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -8003,10 +7980,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.071 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 local.get $2 i32.load offset=8 local.tee $3 @@ -8015,34 +7992,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|073 - local.get $1 + loop $while-continue|054 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.071 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|073 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -8054,10 +8031,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.075 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 local.get $2 i32.load offset=8 local.tee $3 @@ -8066,34 +8043,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|077 - local.get $1 + loop $while-continue|057 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.075 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|077 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -8105,10 +8082,10 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.079 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 local.get $2 i32.load offset=8 local.tee $3 @@ -8117,34 +8094,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|081 - local.get $1 + loop $while-continue|060 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.079 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|081 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -8156,46 +8133,46 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.083 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|085 - local.get $1 - local.get $3 + loop $while-continue|063 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.083 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.062 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|085 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -8270,9 +8247,9 @@ end end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $2 i32.load offset=8 @@ -8287,28 +8264,28 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -8318,9 +8295,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 local.get $2 i32.load offset=8 @@ -8334,30 +8311,30 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|03 - local.get $1 + loop $while-continue|02 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -8369,10 +8346,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 local.get $2 i32.load offset=8 local.tee $3 @@ -8381,34 +8358,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|07 - local.get $1 + loop $while-continue|05 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 255 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -8420,10 +8397,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 local.get $2 i32.load offset=8 local.tee $3 @@ -8432,34 +8409,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $1 + loop $while-continue|08 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|011 + local.set $0 + br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -8471,10 +8448,10 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 local.get $2 i32.load offset=8 local.tee $3 @@ -8483,34 +8460,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|015 - local.get $1 + loop $while-continue|011 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -8522,10 +8499,10 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $2 i32.load offset=8 local.tee $3 @@ -8534,34 +8511,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|019 - local.get $1 + loop $while-continue|014 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -8573,10 +8550,10 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 local.get $2 i32.load offset=8 local.tee $3 @@ -8585,34 +8562,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|023 - local.get $1 + loop $while-continue|017 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|023 + local.set $0 + br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -8624,10 +8601,10 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 local.get $2 i32.load offset=8 local.tee $3 @@ -8636,34 +8613,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|027 - local.get $1 + loop $while-continue|020 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|027 + local.set $0 + br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -8676,17 +8653,17 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $0 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -8695,27 +8672,28 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|031 + local.set $4 + loop $while-continue|023 local.get $0 - local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|031 + local.set $0 + br $while-continue|023 end end i32.const -1 @@ -8735,26 +8713,24 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 - i32.load offset=8 - local.tee $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -8762,22 +8738,22 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -8785,9 +8761,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -8798,25 +8774,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -8824,23 +8800,23 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -8848,9 +8824,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -8863,25 +8839,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -8889,23 +8865,23 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -8913,9 +8889,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -8928,25 +8904,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -8954,23 +8930,23 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -8978,9 +8954,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -8992,50 +8968,49 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $1 - local.tee $2 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $1 + local.set $4 + loop $while-continue|024 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|033 + local.set $0 + br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -9047,49 +9022,49 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $1 + local.set $4 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|037 + local.set $0 + br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -9101,49 +9076,49 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $1 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|041 + local.set $0 + br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9155,49 +9130,49 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $1 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|045 + local.set $0 + br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -9210,36 +9185,37 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 local.get $0 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|049 - local.get $1 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $1 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|049 + local.set $0 + br $while-continue|036 end end i32.const -1 @@ -9258,36 +9234,37 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 local.get $0 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|053 - local.get $1 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $1 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|053 + local.set $0 + br $while-continue|039 end end i32.const -1 @@ -9311,10 +9288,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $2 i32.load offset=8 local.tee $3 @@ -9323,34 +9300,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $1 + loop $while-continue|042 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|057 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9362,10 +9339,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $2 i32.load offset=8 local.tee $3 @@ -9374,34 +9351,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|061 - local.get $1 + loop $while-continue|045 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|061 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -9411,10 +9388,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $2 i32.load offset=8 local.tee $3 @@ -9423,34 +9400,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|065 - local.get $1 + loop $while-continue|048 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|065 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -9462,10 +9439,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $2 i32.load offset=8 local.tee $3 @@ -9474,34 +9451,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|069 - local.get $1 + loop $while-continue|051 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|069 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9513,10 +9490,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $2 i32.load offset=8 local.tee $3 @@ -9525,34 +9502,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|073 - local.get $1 + loop $while-continue|054 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|073 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9564,10 +9541,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $2 i32.load offset=8 local.tee $3 @@ -9576,34 +9553,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|077 - local.get $1 + loop $while-continue|057 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|077 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9615,10 +9592,10 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $2 i32.load offset=8 local.tee $3 @@ -9627,34 +9604,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|081 - local.get $1 + loop $while-continue|060 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|081 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -9666,46 +9643,46 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|085 - local.get $1 - local.get $3 + loop $while-continue|063 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|085 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9780,9 +9757,9 @@ end end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $2 i32.load offset=8 @@ -9797,28 +9774,28 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -9828,9 +9805,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 local.get $2 i32.load offset=8 @@ -9844,30 +9821,30 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|03 - local.get $1 + loop $while-continue|02 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9879,10 +9856,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 local.get $2 i32.load offset=8 local.tee $3 @@ -9891,34 +9868,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|07 - local.get $1 + loop $while-continue|05 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 255 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.04 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -9930,10 +9907,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 local.get $2 i32.load offset=8 local.tee $3 @@ -9942,34 +9919,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $1 + loop $while-continue|08 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.09 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.07 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|011 + local.set $0 + br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -9981,10 +9958,10 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 local.get $2 i32.load offset=8 local.tee $3 @@ -9993,34 +9970,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|015 - local.get $1 + loop $while-continue|011 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.010 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -10032,10 +10009,10 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $2 i32.load offset=8 local.tee $3 @@ -10044,34 +10021,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|019 - local.get $1 + loop $while-continue|014 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.013 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -10083,10 +10060,10 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 local.get $2 i32.load offset=8 local.tee $3 @@ -10095,34 +10072,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|023 - local.get $1 + loop $while-continue|017 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.021 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.016 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|023 + local.set $0 + br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -10134,10 +10111,10 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 local.get $2 i32.load offset=8 local.tee $3 @@ -10146,34 +10123,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|027 - local.get $1 + loop $while-continue|020 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.025 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|027 + local.set $0 + br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -10186,17 +10163,17 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 local.get $2 i32.load offset=8 - local.tee $0 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $0 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -10205,27 +10182,28 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|031 + local.set $4 + loop $while-continue|023 local.get $0 - local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $1 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.022 local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|031 + local.set $0 + br $while-continue|023 end end i32.const -1 @@ -10245,26 +10223,24 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 i32.load offset=8 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $1 - i32.load offset=8 - local.tee $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -10272,22 +10248,22 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -10295,9 +10271,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -10308,25 +10284,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -10334,23 +10310,23 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 11 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -10358,9 +10334,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -10373,25 +10349,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -10399,23 +10375,23 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 255 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -10423,9 +10399,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -10438,25 +10414,25 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -10464,23 +10440,23 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if - local.get $3 local.get $0 - local.tee $2 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -10488,9 +10464,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -10502,50 +10478,49 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $1 - local.tee $2 + local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $1 + local.set $4 + loop $while-continue|024 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|033 + local.set $0 + br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -10557,49 +10532,49 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $1 + local.set $4 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.026 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|037 + local.set $0 + br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -10611,49 +10586,49 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $1 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.029 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|041 + local.set $0 + br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -10665,49 +10640,49 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 local.get $2 i32.load offset=8 - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $1 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 - local.get $3 + local.get $0 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.032 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|045 + local.set $0 + br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -10720,36 +10695,37 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 local.get $0 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|049 - local.get $1 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $1 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.035 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|049 + local.set $0 + br $while-continue|036 end end i32.const -1 @@ -10768,36 +10744,37 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 local.get $2 i32.load offset=8 local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 local.get $0 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|053 - local.get $1 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.get $1 + local.tee $1 + local.get $4 i32.add i32.load8_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.038 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|053 + local.set $0 + br $while-continue|039 end end i32.const -1 @@ -10821,10 +10798,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $2 i32.load offset=8 local.tee $3 @@ -10833,34 +10810,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $1 + loop $while-continue|042 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.055 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|057 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -10872,10 +10849,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $2 i32.load offset=8 local.tee $3 @@ -10884,34 +10861,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|061 - local.get $1 + loop $while-continue|045 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|061 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -10921,10 +10898,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $2 i32.load offset=8 local.tee $3 @@ -10933,34 +10910,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|065 - local.get $1 + loop $while-continue|048 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.063 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|065 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -10972,10 +10949,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $2 i32.load offset=8 local.tee $3 @@ -10984,34 +10961,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|069 - local.get $1 + loop $while-continue|051 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.067 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|069 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -11023,10 +11000,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $2 i32.load offset=8 local.tee $3 @@ -11035,34 +11012,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|073 - local.get $1 + loop $while-continue|054 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.071 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|073 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -11074,10 +11051,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $2 i32.load offset=8 local.tee $3 @@ -11086,34 +11063,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|077 - local.get $1 + loop $while-continue|057 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.075 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|077 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -11125,10 +11102,10 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $2 i32.load offset=8 local.tee $3 @@ -11137,34 +11114,34 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|081 - local.get $1 + loop $while-continue|060 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $4 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.079 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|081 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -11176,46 +11153,46 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $2 i32.load offset=8 - local.tee $3 + local.tee $4 i32.const 2 i32.le_s i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|085 - local.get $1 - local.get $3 + loop $while-continue|063 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 local.get $2 i32.add i32.load8_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.083 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.062 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|085 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -11231,88 +11208,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $2 - end - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $2 - local.set $1 - i32.const -1 - local.get $0 - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $0 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - drop - local.get $0 - local.get $1 - i32.add - local.get $0 - i32.const 1 - i32.sub - local.get $1 - local.get $0 - local.get $1 - i32.le_s - select - local.get $1 - i32.const 0 - i32.lt_s - select - local.set $1 - local.get $2 - i32.load offset=4 - local.set $2 - loop $while-continue|0 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $1 - local.tee $0 - local.get $1 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.load16_u - local.get $3 - i32.const 65535 - i32.and - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - drop - local.get $0 - i32.const 1 - i32.sub - local.set $1 - br $while-continue|0 - end - end - i32.const -1 - end - ) (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16> (local $0 i32) (local $1 i32) @@ -11335,84 +11230,84 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $3 + local.tee $1 call $~lib/typedarray/Int16Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|0 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -11422,49 +11317,49 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|02 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -11476,49 +11371,49 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|05 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 65535 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -11530,49 +11425,49 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|08 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -11584,50 +11479,50 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|011 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -11639,50 +11534,50 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|014 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -11694,50 +11589,50 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|017 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -11749,50 +11644,50 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|020 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -11804,20 +11699,20 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -11826,36 +11721,36 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|023 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.022 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -11869,8 +11764,61 @@ i32.const 1 global.set $~argumentsLength local.get $2 - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|00 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_u + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|00 + end + end + i32.const -1 + local.set $1 + end + local.get $1 if i32.const 0 i32.const 1568 @@ -11882,8 +11830,62 @@ i32.const 1 global.set $~argumentsLength local.get $2 - i32.const 11 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|06 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 i32.const -1 i32.ne if @@ -11897,8 +11899,62 @@ i32.const 1 global.set $~argumentsLength local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + local.set $0 i32.const -1 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|012 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_u + i32.const 65535 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 i32.const -1 i32.ne if @@ -11912,8 +11968,62 @@ i32.const 1 global.set $~argumentsLength local.get $2 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|018 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 i32.const 3 i32.ne if @@ -11926,44 +12036,45 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $3 + local.get $0 i32.const 4 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|024 - local.get $1 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.019 local.get $1 i32.const 1 i32.sub - local.set $1 + local.set $0 br $while-continue|024 end end @@ -11983,45 +12094,46 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $3 + local.get $0 i32.const 3 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|03 - local.get $1 + local.set $4 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.01 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.026 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|027 end end i32.const -1 @@ -12040,45 +12152,46 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $3 + local.get $0 i32.const 2 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|07 - local.get $1 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.05 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.029 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|030 end end i32.const -1 @@ -12097,45 +12210,46 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.09 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.09 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $3 + local.get $0 i32.const 100 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|01125 - local.get $1 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.09 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.032 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|01125 + local.set $0 + br $while-continue|033 end end i32.const -1 @@ -12154,40 +12268,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 + local.get $0 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|015 - local.get $1 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.013 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.035 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|036 end end i32.const -1 @@ -12206,40 +12321,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 + local.get $0 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|019 - local.get $1 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.017 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.038 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|039 end end i32.const -1 @@ -12260,52 +12376,52 @@ local.get $2 i32.const 9 call $~lib/typedarray/Int16Array#subarray - local.tee $1 + local.tee $2 i32.store offset=8 i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.027 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.027 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|028 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|042 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.027 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|028 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12317,49 +12433,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.030 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.030 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|031 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|045 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.030 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|031 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -12369,49 +12485,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.033 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.033 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|034 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|048 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.033 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|034 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -12423,49 +12539,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.036 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.036 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|051 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.036 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|037 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12477,49 +12593,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.039 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.039 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|040 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|054 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.039 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|040 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12531,49 +12647,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.042 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.042 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|043 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|057 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.042 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|043 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12585,50 +12701,50 @@ unreachable end i32.const 1 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.045 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.045 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|046 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|060 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.045 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|046 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -12640,11 +12756,11 @@ unreachable end i32.const 2 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.048 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -12654,37 +12770,36 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.048 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|049 - local.get $2 + local.set $2 + loop $while-continue|063 + local.get $0 local.get $4 i32.lt_s if - local.get $2 + local.get $0 local.tee $1 - local.tee $0 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.048 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.062 local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|049 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12722,85 +12837,85 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $1 i64.const 0 i64.store - local.get $2 + local.get $1 i32.const 0 i32.store offset=8 - local.get $2 + local.get $1 i32.const 7728 i32.store - local.get $2 + local.get $1 i32.const 7740 i32.load - local.tee $3 + local.tee $1 call $~lib/typedarray/Uint16Array#constructor local.tee $2 i32.store offset=4 loop $for-loop|0 + local.get $0 local.get $1 - local.get $3 i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 7728 - local.get $1 + local.get $0 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|0 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -12810,49 +12925,49 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|02 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12864,49 +12979,49 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|05 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 65535 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.04 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -12918,49 +13033,49 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|08 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.07 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -12972,50 +13087,50 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|011 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.010 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -13027,50 +13142,50 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|014 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -13082,50 +13197,50 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|017 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.016 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -13137,50 +13252,50 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|020 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -13192,20 +13307,20 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $4 + local.get $3 select br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $4 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -13214,36 +13329,36 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|023 - local.get $1 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 1 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.022 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|023 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -13257,159 +13372,376 @@ i32.const 1 global.set $~argumentsLength local.get $2 - i32.const 0 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 11 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 614 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const -1 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 615 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.load offset=8 i32.const 1 - global.set $~argumentsLength - local.get $2 - i32.const 3 - call $~lib/typedarray/Int16Array#lastIndexOf@varargs - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 616 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.shr_u + local.tee $4 + local.set $0 i32.const -1 local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $3 + local.get $0 + local.get $4 + i32.add + local.get $4 i32.const 1 i32.sub - i32.const 4 - local.get $3 - i32.const 4 - i32.le_u + local.get $0 + local.get $0 + local.get $4 + i32.ge_s select - local.set $1 + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|024 - local.get $1 + local.set $4 + loop $while-continue|00 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u - i32.const 3 - i32.eq + i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|024 + local.set $0 + br $while-continue|00 end end i32.const -1 local.set $1 end local.get $1 - i32.const 3 - i32.ne if i32.const 0 i32.const 1568 - i32.const 617 + i32.const 613 i32.const 3 call $~lib/builtins/abort unreachable end + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + local.set $0 i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $3 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 + local.get $4 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 + local.get $0 + local.get $4 + i32.add + local.get $4 i32.const 1 i32.sub - i32.const 3 - local.get $3 - i32.const 3 - i32.le_u + local.get $0 + local.get $0 + local.get $4 + i32.ge_s select - local.set $1 + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|03 - local.get $1 - i32.const 0 + local.set $4 + loop $while-continue|06 + local.get $0 + i32.const 0 i32.ge_s if + local.get $0 + local.tee $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_u + i32.const 11 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 local.get $1 i32.const 1 + i32.sub + local.set $0 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 614 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|012 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 1 i32.shl - local.get $3 + local.get $4 + i32.add + i32.load16_u + i32.const 65535 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 615 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + global.set $~argumentsLength + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|018 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 1 + i32.shl + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.01 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 616 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 + local.get $0 + i32.const 1 + i32.sub + i32.const 4 + local.get $0 + i32.const 4 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.019 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|024 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 617 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.tee $0 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 + local.get $0 + i32.const 1 + i32.sub + i32.const 3 + local.get $0 + i32.const 3 + i32.le_u + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|027 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 1 + i32.shl + local.get $4 + i32.add + i32.load16_u + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.026 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|027 end end i32.const -1 @@ -13428,45 +13760,46 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $3 + local.get $0 i32.const 2 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|07 - local.get $1 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.05 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.029 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|030 end end i32.const -1 @@ -13485,45 +13818,46 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.09 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.09 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $3 + local.get $0 i32.const 100 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|01125 - local.get $1 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.09 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.032 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|01125 + local.set $0 + br $while-continue|033 end end i32.const -1 @@ -13542,40 +13876,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 + local.get $0 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|015 - local.get $1 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.013 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.035 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|036 end end i32.const -1 @@ -13594,40 +13929,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 + local.get $0 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|019 - local.get $1 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.017 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.038 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|039 end end i32.const -1 @@ -13648,52 +13984,52 @@ local.get $2 i32.const 9 call $~lib/typedarray/Uint16Array#subarray - local.tee $1 + local.tee $2 i32.store offset=8 i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.027 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.027 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|028 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|042 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.027 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|028 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -13705,49 +14041,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.030 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.030 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|031 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|045 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.030 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|031 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -13757,49 +14093,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.033 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.033 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|034 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|048 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.033 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|034 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -13811,49 +14147,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.036 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.036 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|051 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.036 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|037 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -13865,49 +14201,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.039 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.039 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|040 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|054 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.039 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|040 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -13919,49 +14255,49 @@ unreachable end i32.const 0 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.042 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.042 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|043 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|057 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.042 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|043 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -13973,50 +14309,50 @@ unreachable end i32.const 1 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.045 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.045 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|046 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|060 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 1 i32.shl - local.get $3 + local.get $4 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.045 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|046 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -14028,11 +14364,11 @@ unreachable end i32.const 2 - local.set $2 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.048 - local.get $1 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u @@ -14042,37 +14378,36 @@ i32.const 1 local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.048 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 + local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|049 - local.get $2 + local.set $2 + loop $while-continue|063 + local.get $0 local.get $4 i32.lt_s if - local.get $2 + local.get $0 local.tee $1 - local.tee $0 i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add i32.load16_u i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.048 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.062 local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|049 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -14088,86 +14423,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $2 - end - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $2 - local.set $1 - i32.const -1 - local.get $0 - local.tee $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $0 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - drop - local.get $0 - local.get $1 - i32.add - local.get $0 - i32.const 1 - i32.sub - local.get $1 - local.get $0 - local.get $1 - i32.le_s - select - local.get $1 - i32.const 0 - i32.lt_s - select - local.set $1 - local.get $2 - i32.load offset=4 - local.set $2 - loop $while-continue|0 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $1 - local.tee $0 - local.get $3 - local.get $1 - i32.const 2 - i32.shl - local.get $2 - i32.add - i32.load - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - drop - local.get $0 - i32.const 1 - i32.sub - local.set $1 - br $while-continue|0 - end - end - i32.const -1 - end - ) (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32> (local $0 i32) (local $1 i32) @@ -14202,73 +14457,71 @@ local.get $1 i32.const 7740 i32.load - local.tee $2 + local.tee $1 call $~lib/typedarray/Int32Array#constructor - local.tee $0 + local.tee $2 i32.store offset=4 loop $for-loop|0 - local.get $2 - local.get $3 - i32.gt_s + local.get $0 + local.get $1 + i32.lt_s if + local.get $2 local.get $0 - local.get $3 i32.const 7728 - local.get $3 + local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|0 end end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $1 + local.set $4 loop $while-continue|0 - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -14278,51 +14531,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $1 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|03 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|02 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|03 + local.set $0 + br $while-continue|02 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -14334,51 +14585,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|07 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|05 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const -1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.04 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|07 + local.set $0 + br $while-continue|05 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -14390,51 +14639,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.09 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.09 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|011 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|08 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.09 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.07 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|011 + local.set $0 + br $while-continue|08 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 3 i32.ne if @@ -14446,52 +14693,50 @@ unreachable end i32.const 2 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|015 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|011 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.010 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|015 + local.set $0 + br $while-continue|011 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 3 i32.ne if @@ -14503,52 +14748,50 @@ unreachable end i32.const 3 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|019 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|014 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.013 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|019 + local.set $0 + br $while-continue|014 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 3 i32.ne if @@ -14560,52 +14803,50 @@ unreachable end i32.const 4 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.021 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.021 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|023 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|017 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.021 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.016 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|023 + local.set $0 + br $while-continue|017 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -14617,52 +14858,50 @@ unreachable end i32.const 10 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.025 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.025 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|027 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|020 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.025 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|027 + local.set $0 + br $while-continue|020 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -14673,12 +14912,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $2 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -14688,45 +14925,46 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 local.get $3 i32.const 100 i32.sub - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|031 - local.get $2 + local.set $4 + loop $while-continue|023 + local.get $0 local.get $3 i32.lt_s if - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.022 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|031 + local.set $0 + br $while-continue|023 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 1 i32.ne if @@ -14739,22 +14977,129 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs - if - i32.const 0 - i32.const 1568 - i32.const 613 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|00 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|00 + end + end + i32.const -1 + local.set $1 + end + local.get $1 + if + i32.const 0 + i32.const 1568 + i32.const 613 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 1 global.set $~argumentsLength - local.get $0 - i32.const 11 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|06 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + i32.const 11 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.05 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 i32.const -1 i32.ne if @@ -14767,9 +15112,63 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + local.set $0 i32.const -1 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|012 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + i32.const -1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 i32.const -1 i32.ne if @@ -14782,9 +15181,63 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 - i32.const 3 - call $~lib/typedarray/Int32Array#lastIndexOf@varargs + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|018 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.017 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 i32.const 3 i32.ne if @@ -14795,56 +15248,54 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $4 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $4 + local.get $0 i32.const 4 i32.le_u select - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|033 - local.get $2 + local.set $4 + loop $while-continue|024 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.019 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|033 + local.set $0 + br $while-continue|024 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 3 i32.ne if @@ -14855,56 +15306,54 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $4 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $4 + local.get $0 i32.const 3 i32.le_u select - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|037 - local.get $2 + local.set $4 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.026 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|037 + local.set $0 + br $while-continue|027 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 3 i32.ne if @@ -14915,56 +15364,54 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.039 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.039 - local.get $4 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $4 + local.get $0 i32.const 2 i32.le_u select - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|041 - local.get $2 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.039 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.029 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|041 + local.set $0 + br $while-continue|030 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -14975,56 +15422,54 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.043 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.043 - local.get $4 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $4 + local.get $0 i32.const 100 i32.le_u select - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|045 - local.get $2 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.043 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.032 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|045 + local.set $0 + br $while-continue|033 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 1 i32.ne if @@ -15035,50 +15480,49 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $2 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 + local.get $0 i32.const 10 i32.sub - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|049 - local.get $2 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 - local.get $2 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.035 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|049 + local.set $0 + br $while-continue|036 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 1 i32.ne if @@ -15089,50 +15533,49 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $2 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.051 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.051 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 + local.get $0 i32.const 11 i32.sub - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|053 - local.get $2 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.051 - local.get $2 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.038 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|053 + local.set $0 + br $while-continue|039 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -15144,58 +15587,56 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 4 i32.const 9 call $~lib/typedarray/Int32Array#subarray - local.tee $0 + local.tee $2 i32.store offset=8 i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.055 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.055 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|057 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|042 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.055 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|057 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -15207,51 +15648,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|061 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|045 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|061 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -15261,51 +15700,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.063 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.063 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|065 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|048 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.063 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|065 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 1 i32.ne if @@ -15317,51 +15754,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.067 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.067 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|069 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|051 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.067 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|069 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -15373,51 +15808,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.071 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.071 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|073 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|054 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.071 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|073 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -15429,51 +15862,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.075 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.075 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|077 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|057 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.075 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|077 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -15485,52 +15916,50 @@ unreachable end i32.const 1 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.079 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.079 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|081 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|060 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.079 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|081 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 1 i32.ne if @@ -15542,52 +15971,50 @@ unreachable end i32.const 2 - local.set $2 - local.get $0 - local.tee $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.083 - local.get $3 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 + local.get $2 + i32.load offset=8 i32.const 2 - i32.le_s + i32.shr_u + local.tee $4 + i32.const 2 + i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.083 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|085 - local.get $2 - local.get $3 + local.set $2 + loop $while-continue|063 + local.get $0 + local.get $4 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.083 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.062 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|085 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -15603,86 +16030,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $2 - end - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $1 - local.set $3 - local.get $2 - local.set $1 - i32.const -1 - local.get $0 - local.tee $2 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $0 - i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - drop - local.get $0 - local.get $1 - i32.add - local.get $0 - i32.const 1 - i32.sub - local.get $1 - local.get $0 - local.get $1 - i32.le_s - select - local.get $1 - i32.const 0 - i32.lt_s - select - local.set $1 - local.get $2 - i32.load offset=4 - local.set $2 - loop $while-continue|0 - local.get $1 - i32.const 0 - i32.ge_s - if - local.get $1 - local.tee $0 - local.get $3 - local.get $1 - i32.const 2 - i32.shl - local.get $2 - i32.add - i32.load - i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - drop - local.get $0 - i32.const 1 - i32.sub - local.set $1 - br $while-continue|0 - end - end - i32.const -1 - end - ) (func $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32> (local $0 i32) (local $1 i32) @@ -15717,73 +16064,71 @@ local.get $1 i32.const 7740 i32.load - local.tee $2 + local.tee $1 call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + local.tee $2 i32.store offset=4 loop $for-loop|0 - local.get $2 - local.get $3 - i32.gt_s + local.get $0 + local.get $1 + i32.lt_s if + local.get $2 local.get $0 - local.get $3 i32.const 7728 - local.get $3 + local.get $0 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|0 end end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $1 + local.set $4 loop $while-continue|0 - local.get $2 - local.get $4 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -15793,51 +16138,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $1 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|03 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|02 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 11 i32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|03 + local.set $0 + br $while-continue|02 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -15849,51 +16192,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|07 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|05 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const -1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.04 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|07 + local.set $0 + br $while-continue|05 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -15905,51 +16246,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.09 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.09 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|011 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|08 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.09 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.07 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|011 + local.set $0 + br $while-continue|08 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 3 i32.ne if @@ -15961,52 +16300,50 @@ unreachable end i32.const 2 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 2 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|015 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|011 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.010 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|015 + local.set $0 + br $while-continue|011 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 3 i32.ne if @@ -16018,52 +16355,50 @@ unreachable end i32.const 3 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 3 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|019 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|014 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.013 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|019 + local.set $0 + br $while-continue|014 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 3 i32.ne if @@ -16075,52 +16410,50 @@ unreachable end i32.const 4 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.021 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 4 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.021 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|023 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|017 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.021 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.016 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|023 + local.set $0 + br $while-continue|017 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -16132,52 +16465,50 @@ unreachable end i32.const 10 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.025 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 10 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.025 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|027 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|020 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.025 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|027 + local.set $0 + br $while-continue|020 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -16188,12 +16519,10 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $2 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -16203,45 +16532,46 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 local.get $3 i32.const 100 i32.sub - local.tee $2 + local.tee $1 i32.const 0 - local.get $2 + local.get $1 i32.const 0 i32.gt_s select - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|031 - local.get $2 + local.set $4 + loop $while-continue|023 + local.get $0 local.get $3 i32.lt_s if - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 - local.get $2 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.022 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|031 + local.set $0 + br $while-continue|023 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 1 i32.ne if @@ -16254,9 +16584,62 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|00 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|00 + end + end + i32.const -1 + local.set $1 + end + local.get $1 if i32.const 0 i32.const 1568 @@ -16267,9 +16650,63 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 - i32.const 11 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|06 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + i32.const 11 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.05 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|06 + end + end + i32.const -1 + local.set $1 + end + local.get $1 i32.const -1 i32.ne if @@ -16282,9 +16719,63 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + local.set $0 i32.const -1 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|012 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + i32.const -1 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.011 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|012 + end + end + i32.const -1 + local.set $1 + end + local.get $1 i32.const -1 i32.ne if @@ -16297,9 +16788,63 @@ end i32.const 1 global.set $~argumentsLength - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint32Array#lastIndexOf@varargs + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + local.set $0 + i32.const -1 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 + local.get $4 + i32.eqz + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 + local.get $0 + local.get $4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.get $0 + local.get $0 + local.get $4 + i32.ge_s + select + local.get $0 + i32.const 0 + i32.lt_s + select + local.set $0 + local.get $2 + i32.load offset=4 + local.set $4 + loop $while-continue|018 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.tee $1 + i32.const 2 + i32.shl + local.get $4 + i32.add + i32.load + i32.const 3 + i32.eq + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.017 + local.get $1 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|018 + end + end + i32.const -1 + local.set $1 + end + local.get $1 i32.const 3 i32.ne if @@ -16310,56 +16855,54 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $4 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $4 + local.get $0 i32.const 4 i32.le_u select - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|033 - local.get $2 + local.set $4 + loop $while-continue|024 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.019 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|033 + local.set $0 + br $while-continue|024 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 3 i32.ne if @@ -16370,56 +16913,54 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $4 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $4 + local.get $0 i32.const 3 i32.le_u select - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|037 - local.get $2 + local.set $4 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.026 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|037 + local.set $0 + br $while-continue|027 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 3 i32.ne if @@ -16430,56 +16971,54 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.039 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.039 - local.get $4 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $4 + local.get $0 i32.const 2 i32.le_u select - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|041 - local.get $2 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.039 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.029 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|041 + local.set $0 + br $while-continue|030 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -16490,56 +17029,54 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $3 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.043 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.043 - local.get $4 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $4 + local.get $0 i32.const 100 i32.le_u select - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|045 - local.get $2 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.043 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.032 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|045 + local.set $0 + br $while-continue|033 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 1 i32.ne if @@ -16550,50 +17087,49 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $2 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 + local.get $0 i32.const 10 i32.sub - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|049 - local.get $2 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 - local.get $2 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.035 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|049 + local.set $0 + br $while-continue|036 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 1 i32.ne if @@ -16604,50 +17140,49 @@ call $~lib/builtins/abort unreachable end - local.get $0 - local.set $1 i32.const -1 - local.set $2 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.051 - local.get $0 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.051 - local.get $3 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 + local.get $0 i32.const 11 i32.sub - local.set $2 - local.get $1 + local.set $0 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|053 - local.get $2 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 1 i32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.051 - local.get $2 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.038 + local.get $1 i32.const 1 i32.sub - local.set $2 - br $while-continue|053 + local.set $0 + br $while-continue|039 end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -16659,57 +17194,55 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 9 call $~lib/typedarray/Uint32Array#subarray - local.tee $0 + local.tee $2 i32.store offset=8 i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.055 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.055 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|057 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|042 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 3 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.055 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|057 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -16721,51 +17254,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|061 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|045 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 4 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|061 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 if i32.const 0 i32.const 1568 @@ -16775,51 +17306,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.063 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.063 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|065 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|048 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.063 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|065 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 1 i32.ne if @@ -16831,51 +17360,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.067 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.067 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|069 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|051 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 9 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.067 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|069 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -16887,51 +17414,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.071 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.071 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|073 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|054 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 10 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.071 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|073 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -16943,51 +17468,49 @@ unreachable end i32.const 0 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.075 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 0 - local.get $4 + local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.075 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|077 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|057 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 11 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.075 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|077 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const -1 i32.ne if @@ -16999,52 +17522,50 @@ unreachable end i32.const 1 - local.set $2 - local.get $0 - local.set $1 + local.set $0 i32.const -1 - local.set $3 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.079 - local.get $0 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $4 + local.tee $3 i32.const 1 i32.le_u i32.const 1 - local.get $4 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.079 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|081 - local.get $2 - local.get $4 + local.set $4 + loop $while-continue|060 + local.get $0 + local.get $3 i32.lt_s if - local.get $2 - local.tee $3 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $4 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.079 - local.get $3 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|081 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $3 + local.set $1 end - local.get $3 + local.get $1 i32.const 1 i32.ne if @@ -17056,52 +17577,50 @@ unreachable end i32.const 2 - local.set $2 - local.get $0 - local.tee $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.083 - local.get $3 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 + local.get $2 + i32.load offset=8 i32.const 2 - i32.le_s + i32.shr_u + local.tee $4 + i32.const 2 + i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.083 - local.get $1 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 + local.get $2 i32.load offset=4 - local.set $1 - loop $while-continue|085 - local.get $2 - local.get $3 + local.set $2 + loop $while-continue|063 + local.get $0 + local.get $4 i32.lt_s if - local.get $2 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load i32.const 5 i32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.083 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.062 + local.get $1 i32.const 1 i32.add - local.set $2 - br $while-continue|085 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17175,9 +17694,9 @@ end end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 local.get $2 i32.load offset=8 @@ -17193,12 +17712,12 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -17206,17 +17725,17 @@ i64.load i64.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -17226,9 +17745,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 local.get $2 i32.load offset=8 @@ -17243,13 +17762,13 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|03 - local.get $1 + loop $while-continue|02 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -17258,17 +17777,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17280,10 +17799,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 local.get $2 i32.load offset=8 i32.const 3 @@ -17293,17 +17812,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|07 - local.get $1 + loop $while-continue|05 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -17311,18 +17830,18 @@ i64.load i64.const -1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.04 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17334,10 +17853,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.09 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 local.get $2 i32.load offset=8 i32.const 3 @@ -17347,17 +17866,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $1 + loop $while-continue|08 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -17365,18 +17884,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.09 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.07 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|011 + local.set $0 + br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17388,10 +17907,10 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 local.get $2 i32.load offset=8 i32.const 3 @@ -17402,17 +17921,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|015 - local.get $1 + loop $while-continue|011 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -17420,18 +17939,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.010 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17443,10 +17962,10 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 local.get $2 i32.load offset=8 i32.const 3 @@ -17457,17 +17976,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|019 - local.get $1 + loop $while-continue|014 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -17475,18 +17994,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.013 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -17498,10 +18017,10 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.021 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 local.get $2 i32.load offset=8 i32.const 3 @@ -17512,17 +18031,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|023 - local.get $1 + loop $while-continue|017 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -17530,18 +18049,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.021 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.016 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|023 - end + local.set $0 + br $while-continue|017 + end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17553,10 +18072,10 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.025 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 local.get $2 i32.load offset=8 i32.const 3 @@ -17567,17 +18086,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|027 - local.get $1 + loop $while-continue|020 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -17585,18 +18104,18 @@ i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.025 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|027 + local.set $0 + br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -17609,19 +18128,19 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $0 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -17630,29 +18149,30 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|031 + local.set $4 + loop $while-continue|023 local.get $0 - local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.022 local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|031 + local.set $0 + br $while-continue|023 end end i32.const -1 @@ -17672,30 +18192,26 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -17703,24 +18219,24 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -17728,9 +18244,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -17741,27 +18257,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -17769,25 +18285,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -17795,9 +18311,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -17810,27 +18326,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -17838,25 +18354,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -17864,9 +18380,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -17879,27 +18395,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -17907,25 +18423,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -17933,9 +18449,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -17947,54 +18463,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $1 - local.tee $2 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $1 + local.set $4 + loop $while-continue|024 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|033 + local.set $0 + br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18006,53 +18521,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $1 + local.set $4 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.026 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|037 + local.set $0 + br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18064,53 +18579,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.039 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $1 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.029 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|041 + local.set $0 + br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18122,53 +18637,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.043 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $1 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.032 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|045 + local.set $0 + br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -18181,40 +18696,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 local.get $0 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|049 - local.get $1 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $0 + local.get $4 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.035 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|049 + local.set $0 + br $while-continue|036 end end i32.const -1 @@ -18233,40 +18749,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.051 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 local.get $0 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|053 - local.get $1 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $0 + local.get $4 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.038 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|053 + local.set $0 + br $while-continue|039 end end i32.const -1 @@ -18290,10 +18807,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.055 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 local.get $2 i32.load offset=8 i32.const 3 @@ -18303,17 +18820,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $1 + loop $while-continue|042 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18321,18 +18838,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.055 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|057 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18344,10 +18861,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 local.get $2 i32.load offset=8 i32.const 3 @@ -18357,17 +18874,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|061 - local.get $1 + loop $while-continue|045 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18375,18 +18892,18 @@ i64.load i64.const 4 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|061 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -18396,10 +18913,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.063 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 local.get $2 i32.load offset=8 i32.const 3 @@ -18409,17 +18926,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|065 - local.get $1 + loop $while-continue|048 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18427,18 +18944,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.063 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|065 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -18450,10 +18967,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.067 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 local.get $2 i32.load offset=8 i32.const 3 @@ -18463,17 +18980,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|069 - local.get $1 + loop $while-continue|051 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18481,18 +18998,18 @@ i64.load i64.const 9 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.067 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|069 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18504,10 +19021,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.071 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 local.get $2 i32.load offset=8 i32.const 3 @@ -18517,17 +19034,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|073 - local.get $1 + loop $while-continue|054 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18535,18 +19052,18 @@ i64.load i64.const 10 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.071 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|073 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18558,10 +19075,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.075 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 local.get $2 i32.load offset=8 i32.const 3 @@ -18571,17 +19088,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|077 - local.get $1 + loop $while-continue|057 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18589,18 +19106,18 @@ i64.load i64.const 11 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.075 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|077 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18612,10 +19129,10 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.079 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 local.get $2 i32.load offset=8 i32.const 3 @@ -18626,17 +19143,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|081 - local.get $1 + loop $while-continue|060 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18644,18 +19161,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.079 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|081 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -18667,31 +19184,31 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.083 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|085 - local.get $1 - local.get $3 + loop $while-continue|063 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -18699,18 +19216,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.083 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.062 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|085 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18784,9 +19301,9 @@ end end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 local.get $2 i32.load offset=8 @@ -18802,12 +19319,12 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18815,17 +19332,17 @@ i64.load i64.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -18835,9 +19352,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 local.get $2 i32.load offset=8 @@ -18852,13 +19369,13 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|03 - local.get $1 + loop $while-continue|02 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18867,17 +19384,17 @@ i64.const 11 i64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18889,10 +19406,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 local.get $2 i32.load offset=8 i32.const 3 @@ -18902,17 +19419,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|07 - local.get $1 + loop $while-continue|05 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18920,18 +19437,18 @@ i64.load i64.const -1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.04 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -18943,10 +19460,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.09 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 local.get $2 i32.load offset=8 i32.const 3 @@ -18956,17 +19473,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $1 + loop $while-continue|08 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -18974,18 +19491,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.09 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.07 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|011 + local.set $0 + br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -18997,10 +19514,10 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 local.get $2 i32.load offset=8 i32.const 3 @@ -19011,17 +19528,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|015 - local.get $1 + loop $while-continue|011 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -19029,18 +19546,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.010 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19052,10 +19569,10 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 local.get $2 i32.load offset=8 i32.const 3 @@ -19066,17 +19583,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|019 - local.get $1 + loop $while-continue|014 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -19084,18 +19601,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.013 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19107,10 +19624,10 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.021 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 local.get $2 i32.load offset=8 i32.const 3 @@ -19121,17 +19638,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|023 - local.get $1 + loop $while-continue|017 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -19139,18 +19656,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.021 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.016 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|023 + local.set $0 + br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19162,10 +19679,10 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.025 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 local.get $2 i32.load offset=8 i32.const 3 @@ -19176,17 +19693,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|027 - local.get $1 + loop $while-continue|020 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -19194,18 +19711,18 @@ i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.025 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|027 + local.set $0 + br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19218,19 +19735,19 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $0 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -19239,29 +19756,30 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|031 + local.set $4 + loop $while-continue|023 local.get $0 - local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.022 local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|031 + local.set $0 + br $while-continue|023 end end i32.const -1 @@ -19281,30 +19799,26 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -19312,24 +19826,24 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -19337,9 +19851,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -19350,27 +19864,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -19378,25 +19892,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 11 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -19404,9 +19918,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -19419,27 +19933,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -19447,25 +19961,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const -1 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -19473,9 +19987,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -19488,27 +20002,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -19516,25 +20030,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -19542,9 +20056,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -19556,54 +20070,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $1 - local.tee $2 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $1 + local.set $4 + loop $while-continue|024 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 3 i64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|033 - end + local.set $0 + br $while-continue|024 + end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19615,53 +20128,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $1 + local.set $4 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.026 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|037 + local.set $0 + br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -19673,53 +20186,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.039 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $1 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.029 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|041 + local.set $0 + br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19731,53 +20244,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.043 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $1 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.032 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|045 + local.set $0 + br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -19790,40 +20303,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 local.get $0 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|049 - local.get $1 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $0 + local.get $4 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.035 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|049 + local.set $0 + br $while-continue|036 end end i32.const -1 @@ -19842,40 +20356,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.051 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 local.get $0 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|053 - local.get $1 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $0 + local.get $4 i32.add i64.load i64.const 1 i64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.038 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|053 + local.set $0 + br $while-continue|039 end end i32.const -1 @@ -19899,10 +20414,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.055 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 local.get $2 i32.load offset=8 i32.const 3 @@ -19912,17 +20427,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $1 + loop $while-continue|042 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -19930,18 +20445,18 @@ i64.load i64.const 3 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.055 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|057 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -19953,10 +20468,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 local.get $2 i32.load offset=8 i32.const 3 @@ -19966,17 +20481,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|061 - local.get $1 + loop $while-continue|045 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -19984,18 +20499,18 @@ i64.load i64.const 4 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|061 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -20005,10 +20520,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.063 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 local.get $2 i32.load offset=8 i32.const 3 @@ -20018,17 +20533,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|065 - local.get $1 + loop $while-continue|048 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -20036,18 +20551,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.063 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|065 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -20059,10 +20574,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.067 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 local.get $2 i32.load offset=8 i32.const 3 @@ -20072,17 +20587,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|069 - local.get $1 + loop $while-continue|051 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -20090,18 +20605,18 @@ i64.load i64.const 9 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.067 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|069 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20113,10 +20628,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.071 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 local.get $2 i32.load offset=8 i32.const 3 @@ -20126,17 +20641,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|073 - local.get $1 + loop $while-continue|054 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -20144,18 +20659,18 @@ i64.load i64.const 10 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.071 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|073 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20167,10 +20682,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.075 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 local.get $2 i32.load offset=8 i32.const 3 @@ -20180,17 +20695,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|077 - local.get $1 + loop $while-continue|057 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -20198,18 +20713,18 @@ i64.load i64.const 11 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.075 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|077 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20221,10 +20736,10 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.079 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 local.get $2 i32.load offset=8 i32.const 3 @@ -20235,17 +20750,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|081 - local.get $1 + loop $while-continue|060 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -20253,18 +20768,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.079 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|081 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -20276,31 +20791,31 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.083 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|085 - local.get $1 - local.get $3 + loop $while-continue|063 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -20308,18 +20823,18 @@ i64.load i64.const 5 i64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.083 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.062 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|085 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20393,9 +20908,9 @@ end end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $2 i32.load offset=8 @@ -20411,12 +20926,12 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -20425,17 +20940,17 @@ f32.const 0 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -20445,9 +20960,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 local.get $2 i32.load offset=8 @@ -20462,13 +20977,13 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|03 - local.get $1 + loop $while-continue|02 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -20477,17 +20992,17 @@ f32.const 11 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20499,10 +21014,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 local.get $2 i32.load offset=8 i32.const 2 @@ -20512,17 +21027,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|07 - local.get $1 + loop $while-continue|05 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -20530,18 +21045,18 @@ f32.load f32.const -1 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.04 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20553,10 +21068,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.09 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 local.get $2 i32.load offset=8 i32.const 2 @@ -20566,17 +21081,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $1 + loop $while-continue|08 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -20584,18 +21099,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.09 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.07 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|011 + local.set $0 + br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -20607,10 +21122,10 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 local.get $2 i32.load offset=8 i32.const 2 @@ -20621,17 +21136,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|015 - local.get $1 + loop $while-continue|011 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -20639,18 +21154,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.010 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -20662,10 +21177,10 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 local.get $2 i32.load offset=8 i32.const 2 @@ -20676,17 +21191,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|019 - local.get $1 + loop $while-continue|014 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -20694,18 +21209,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.013 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -20717,10 +21232,10 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.021 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 local.get $2 i32.load offset=8 i32.const 2 @@ -20731,17 +21246,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|023 - local.get $1 + loop $while-continue|017 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -20749,18 +21264,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.021 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.016 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|023 + local.set $0 + br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20772,10 +21287,10 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.025 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 local.get $2 i32.load offset=8 i32.const 2 @@ -20786,17 +21301,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|027 - local.get $1 + loop $while-continue|020 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -20804,18 +21319,18 @@ f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.025 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|027 + local.set $0 + br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -20828,19 +21343,19 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $0 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -20849,29 +21364,30 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|031 + local.set $4 + loop $while-continue|023 local.get $0 - local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.022 local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|031 + local.set $0 + br $while-continue|023 end end i32.const -1 @@ -20891,30 +21407,26 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -20922,25 +21434,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add f32.load f32.const 0 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -20948,9 +21460,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -20961,27 +21473,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -20989,25 +21501,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add f32.load f32.const 11 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -21015,9 +21527,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -21030,27 +21542,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -21058,25 +21570,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add f32.load f32.const -1 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -21084,9 +21596,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -21099,27 +21611,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -21127,25 +21639,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -21153,9 +21665,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -21167,54 +21679,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $1 - local.tee $2 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $1 + local.set $4 + loop $while-continue|024 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add f32.load f32.const 3 f32.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|033 + local.set $0 + br $while-continue|024 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -21226,53 +21737,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $1 + local.set $4 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.026 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|037 + local.set $0 + br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -21284,53 +21795,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.039 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $1 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.029 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|041 + local.set $0 + br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21342,53 +21853,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.043 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $1 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $3 + local.get $4 i32.add f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.032 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|045 + local.set $0 + br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -21401,40 +21912,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 local.get $0 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|049 - local.get $1 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $0 + local.get $4 i32.add f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.035 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|049 + local.set $0 + br $while-continue|036 end end i32.const -1 @@ -21453,40 +21965,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.051 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 local.get $0 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|053 - local.get $1 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $0 + local.get $4 i32.add f32.load f32.const 1 f32.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.038 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|053 + local.set $0 + br $while-continue|039 end end i32.const -1 @@ -21510,10 +22023,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.055 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 local.get $2 i32.load offset=8 i32.const 2 @@ -21523,17 +22036,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $1 + loop $while-continue|042 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -21541,18 +22054,18 @@ f32.load f32.const 3 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.055 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|057 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21564,10 +22077,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 local.get $2 i32.load offset=8 i32.const 2 @@ -21577,17 +22090,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|061 - local.get $1 + loop $while-continue|045 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -21595,18 +22108,18 @@ f32.load f32.const 4 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|061 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -21616,10 +22129,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.063 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 local.get $2 i32.load offset=8 i32.const 2 @@ -21629,17 +22142,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|065 - local.get $1 + loop $while-continue|048 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -21647,18 +22160,18 @@ f32.load f32.const 5 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.063 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|065 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -21670,10 +22183,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.067 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 local.get $2 i32.load offset=8 i32.const 2 @@ -21683,17 +22196,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|069 - local.get $1 + loop $while-continue|051 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -21701,18 +22214,18 @@ f32.load f32.const 9 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.067 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|069 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21724,10 +22237,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.071 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 local.get $2 i32.load offset=8 i32.const 2 @@ -21737,17 +22250,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|073 - local.get $1 + loop $while-continue|054 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -21755,18 +22268,18 @@ f32.load f32.const 10 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.071 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|073 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21778,10 +22291,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.075 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 local.get $2 i32.load offset=8 i32.const 2 @@ -21791,17 +22304,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|077 - local.get $1 + loop $while-continue|057 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -21809,18 +22322,18 @@ f32.load f32.const 11 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.075 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|077 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -21832,10 +22345,10 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.079 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 local.get $2 i32.load offset=8 i32.const 2 @@ -21846,17 +22359,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|081 - local.get $1 + loop $while-continue|060 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $4 @@ -21864,18 +22377,18 @@ f32.load f32.const 5 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.079 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|081 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -21887,31 +22400,31 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.083 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|085 - local.get $1 - local.get $3 + loop $while-continue|063 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl local.get $2 @@ -21919,18 +22432,18 @@ f32.load f32.const 5 f32.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.083 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.062 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|085 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22004,9 +22517,9 @@ end end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $2 i32.load offset=8 @@ -22022,12 +22535,12 @@ i32.load offset=4 local.set $4 loop $while-continue|0 - local.get $1 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -22036,17 +22549,17 @@ f64.const 0 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -22056,9 +22569,9 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 local.get $2 i32.load offset=8 @@ -22073,13 +22586,13 @@ local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|03 - local.get $1 + loop $while-continue|02 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -22088,17 +22601,17 @@ f64.const 11 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|02 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22110,10 +22623,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 local.get $2 i32.load offset=8 i32.const 3 @@ -22123,17 +22636,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|07 - local.get $1 + loop $while-continue|05 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -22141,18 +22654,18 @@ f64.load f64.const -1 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.04 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|07 + local.set $0 + br $while-continue|05 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22164,10 +22677,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.09 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 local.get $2 i32.load offset=8 i32.const 3 @@ -22177,17 +22690,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.09 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|011 - local.get $1 + loop $while-continue|08 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -22195,18 +22708,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.09 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.07 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|011 + local.set $0 + br $while-continue|08 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22218,10 +22731,10 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 local.get $2 i32.load offset=8 i32.const 3 @@ -22232,17 +22745,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|015 - local.get $1 + loop $while-continue|011 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -22250,18 +22763,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.010 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|015 + local.set $0 + br $while-continue|011 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22273,10 +22786,10 @@ unreachable end i32.const 3 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 local.get $2 i32.load offset=8 i32.const 3 @@ -22287,17 +22800,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|019 - local.get $1 + loop $while-continue|014 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -22305,18 +22818,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.013 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|019 + local.set $0 + br $while-continue|014 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22328,10 +22841,10 @@ unreachable end i32.const 4 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.021 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 local.get $2 i32.load offset=8 i32.const 3 @@ -22342,17 +22855,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.021 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|023 - local.get $1 + loop $while-continue|017 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -22360,18 +22873,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.021 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.016 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|023 + local.set $0 + br $while-continue|017 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22383,10 +22896,10 @@ unreachable end i32.const 10 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.025 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 local.get $2 i32.load offset=8 i32.const 3 @@ -22397,17 +22910,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.025 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|027 - local.get $1 + loop $while-continue|020 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -22415,18 +22928,18 @@ f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.025 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|027 + local.set $0 + br $while-continue|020 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22439,19 +22952,19 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $0 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $0 + local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -22460,29 +22973,30 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|031 + local.set $4 + loop $while-continue|023 local.get $0 - local.get $1 - i32.gt_s + local.get $3 + i32.lt_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.022 local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|031 + local.set $0 + br $while-continue|023 end end i32.const -1 @@ -22502,30 +23016,26 @@ i32.const 1 global.set $~argumentsLength local.get $2 - local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -22533,25 +23043,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|00 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add f64.load f64.const 0 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -22559,9 +23069,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 if i32.const 0 i32.const 1568 @@ -22572,27 +23082,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -22600,25 +23110,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|06 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add f64.load f64.const 11 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.05 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -22626,9 +23136,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -22641,27 +23151,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -22669,25 +23179,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|012 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add f64.load f64.const -1 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.011 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -22695,9 +23205,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const -1 i32.ne if @@ -22710,27 +23220,27 @@ end i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 local.set $0 i32.const -1 - local.set $2 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $3 + local.get $4 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 local.get $0 - local.get $3 + local.get $4 i32.add - local.get $3 + local.get $4 i32.const 1 i32.sub local.get $0 local.get $0 - local.get $3 + local.get $4 i32.ge_s select local.get $0 @@ -22738,25 +23248,25 @@ i32.lt_s select local.set $0 - local.get $1 + local.get $2 i32.load offset=4 - local.set $3 + local.set $4 loop $while-continue|018 local.get $0 i32.const 0 i32.ge_s if local.get $0 - local.tee $2 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.017 - local.get $2 + local.get $1 i32.const 1 i32.sub local.set $0 @@ -22764,9 +23274,9 @@ end end i32.const -1 - local.set $2 + local.set $1 end - local.get $2 + local.get $1 i32.const 3 i32.ne if @@ -22778,54 +23288,53 @@ unreachable end i32.const -1 - local.set $0 + local.set $1 block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $1 - local.tee $2 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $1 + local.get $0 i32.const 1 i32.sub i32.const 4 - local.get $1 + local.get $0 i32.const 4 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|033 - local.get $1 + local.set $4 + loop $while-continue|024 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add f64.load f64.const 3 f64.eq br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.019 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|033 - end + local.set $0 + br $while-continue|024 + end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22837,53 +23346,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 + local.get $0 i32.const 1 i32.sub i32.const 3 - local.get $1 + local.get $0 i32.const 3 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|037 - local.get $1 + local.set $4 + loop $while-continue|027 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.026 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|037 + local.set $0 + br $while-continue|027 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 3 i32.ne if @@ -22895,53 +23404,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.039 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.039 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + local.get $0 i32.const 1 i32.sub i32.const 2 - local.get $1 + local.get $0 i32.const 2 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|041 - local.get $1 + local.set $4 + loop $while-continue|030 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.039 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.029 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|041 + local.set $0 + br $while-continue|030 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -22953,53 +23462,53 @@ unreachable end i32.const -1 - local.set $0 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.043 + local.set $1 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $1 + local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.043 - local.get $1 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 + local.get $0 i32.const 1 i32.sub i32.const 100 - local.get $1 + local.get $0 i32.const 100 i32.le_u select - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $3 - loop $while-continue|045 - local.get $1 + local.set $4 + loop $while-continue|033 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $3 + local.get $4 i32.add f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.043 - local.get $0 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.032 + local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|045 + local.set $0 + br $while-continue|033 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -23012,40 +23521,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 local.get $0 i32.const 10 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|049 - local.get $1 + local.set $4 + loop $while-continue|036 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $0 + local.get $4 i32.add f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.035 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|049 + local.set $0 + br $while-continue|036 end end i32.const -1 @@ -23064,40 +23574,41 @@ end i32.const -1 local.set $1 - block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.051 + block $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u local.tee $0 i32.eqz - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 local.get $0 i32.const 11 i32.sub - local.set $1 + local.set $0 local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|053 - local.get $1 + local.set $4 + loop $while-continue|039 + local.get $0 i32.const 0 i32.ge_s if - local.get $1 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $0 + local.get $4 i32.add f64.load f64.const 1 f64.eq - br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.051 + br_if $~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.038 local.get $1 i32.const 1 i32.sub - local.set $1 - br $while-continue|053 + local.set $0 + br $while-continue|039 end end i32.const -1 @@ -23122,10 +23633,10 @@ local.tee $2 i32.store offset=8 i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.055 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 local.get $2 i32.load offset=8 i32.const 3 @@ -23135,17 +23646,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.055 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|057 - local.get $1 + loop $while-continue|042 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -23153,18 +23664,18 @@ f64.load f64.const 3 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.055 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.041 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|057 + local.set $0 + br $while-continue|042 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23176,10 +23687,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 local.get $2 i32.load offset=8 i32.const 3 @@ -23189,17 +23700,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|061 - local.get $1 + loop $while-continue|045 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -23207,18 +23718,18 @@ f64.load f64.const 4 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.044 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|061 + local.set $0 + br $while-continue|045 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 if i32.const 0 i32.const 1568 @@ -23228,10 +23739,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.063 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 local.get $2 i32.load offset=8 i32.const 3 @@ -23241,17 +23752,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.063 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|065 - local.get $1 + loop $while-continue|048 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -23259,18 +23770,18 @@ f64.load f64.const 5 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.063 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.047 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|065 + local.set $0 + br $while-continue|048 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -23282,10 +23793,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.067 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 local.get $2 i32.load offset=8 i32.const 3 @@ -23295,17 +23806,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.067 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|069 - local.get $1 + loop $while-continue|051 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -23313,18 +23824,18 @@ f64.load f64.const 9 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.067 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.050 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|069 + local.set $0 + br $while-continue|051 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23336,10 +23847,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.071 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 local.get $2 i32.load offset=8 i32.const 3 @@ -23349,17 +23860,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.071 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|073 - local.get $1 + loop $while-continue|054 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -23367,18 +23878,18 @@ f64.load f64.const 10 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.071 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.053 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|073 + local.set $0 + br $while-continue|054 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23390,10 +23901,10 @@ unreachable end i32.const 0 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.075 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 local.get $2 i32.load offset=8 i32.const 3 @@ -23403,17 +23914,17 @@ local.get $3 select i32.eqz - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.075 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|077 - local.get $1 + loop $while-continue|057 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -23421,18 +23932,18 @@ f64.load f64.const 11 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.075 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.056 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|077 + local.set $0 + br $while-continue|057 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23444,10 +23955,10 @@ unreachable end i32.const 1 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.079 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 local.get $2 i32.load offset=8 i32.const 3 @@ -23458,17 +23969,17 @@ i32.const 1 local.get $3 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.079 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 local.get $2 i32.load offset=4 local.set $4 - loop $while-continue|081 - local.get $1 + loop $while-continue|060 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $4 @@ -23476,18 +23987,18 @@ f64.load f64.const 5 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.079 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.059 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|081 + local.set $0 + br $while-continue|060 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne if @@ -23499,31 +24010,31 @@ unreachable end i32.const 2 - local.set $1 - i32.const -1 local.set $0 - block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.083 + i32.const -1 + local.set $1 + block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $4 i32.const 2 i32.le_u i32.const 1 - local.get $3 + local.get $4 select - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.083 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 local.get $2 i32.load offset=4 local.set $2 - loop $while-continue|085 - local.get $1 - local.get $3 + loop $while-continue|063 + local.get $0 + local.get $4 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl local.get $2 @@ -23531,18 +24042,18 @@ f64.load f64.const 5 f64.eq - br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.083 - local.get $0 + br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.062 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|085 + local.set $0 + br $while-continue|063 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -23748,14 +24259,15 @@ i32.add end end - local.get $2 - i32.add local.set $1 local.get $0 local.get $3 local.get $1 + local.get $2 + i32.add + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/typedarray/Int8Array#join (param $0 i32) (result i32) (local $1 i32) @@ -23764,35 +24276,37 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 i32.const 1 i32.sub - local.tee $4 + local.tee $2 i32.const 0 i32.lt_s if @@ -23801,25 +24315,26 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $4 + local.get $2 i32.eqz if - local.get $1 + local.get $3 i32.load8_s call $~lib/util/number/itoa32 - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 11 i32.add i32.mul @@ -23830,47 +24345,47 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 - i32.add local.get $1 + i32.add local.get $3 + local.get $5 i32.add i32.load8_s call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $4 if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9584 - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $4 i32.add local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end @@ -23878,37 +24393,38 @@ local.get $0 i32.const 1 i32.shl - local.get $2 - i32.add local.get $1 - local.get $4 + i32.add + local.get $2 + local.get $3 i32.add i32.load8_s call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $2 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -24108,35 +24624,37 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 i32.const 1 i32.sub - local.tee $4 + local.tee $2 i32.const 0 i32.lt_s if @@ -24145,25 +24663,26 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $4 + local.get $2 i32.eqz if - local.get $1 + local.get $3 i32.load8_u call $~lib/util/number/utoa32 - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 10 i32.add i32.mul @@ -24174,47 +24693,47 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 - i32.add local.get $1 + i32.add local.get $3 + local.get $5 i32.add i32.load8_u call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $4 if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9584 - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $4 i32.add local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end @@ -24222,37 +24741,38 @@ local.get $0 i32.const 1 i32.shl - local.get $2 - i32.add local.get $1 - local.get $4 + i32.add + local.get $2 + local.get $3 i32.add i32.load8_u call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $2 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -24340,14 +24860,15 @@ i32.add end end - local.get $2 - i32.add local.set $1 local.get $0 local.get $3 local.get $1 + local.get $2 + i32.add + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) (local $1 i32) @@ -24356,37 +24877,39 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.shr_u - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 i32.const 1 i32.sub - local.tee $4 + local.tee $2 i32.const 0 i32.lt_s if @@ -24395,25 +24918,26 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $4 + local.get $2 i32.eqz if - local.get $1 + local.get $3 i32.load16_s call $~lib/util/number/itoa32 - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 11 i32.add i32.mul @@ -24424,49 +24948,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 1 i32.shl - local.get $1 + local.get $3 i32.add i32.load16_s call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $4 if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9584 - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $4 i32.add local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end @@ -24474,39 +24998,40 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $4 + local.get $2 i32.const 1 i32.shl - local.get $1 + local.get $3 i32.add i32.load16_s call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $2 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -24590,37 +25115,39 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.shr_u - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 i32.const 1 i32.sub - local.tee $4 + local.tee $2 i32.const 0 i32.lt_s if @@ -24629,25 +25156,26 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $4 + local.get $2 i32.eqz if - local.get $1 + local.get $3 i32.load16_u call $~lib/util/number/utoa32 - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 10 i32.add i32.mul @@ -24658,49 +25186,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 1 i32.shl - local.get $1 + local.get $3 i32.add i32.load16_u call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $4 if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9584 - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $4 i32.add local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end @@ -24708,39 +25236,40 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $4 + local.get $2 i32.const 1 i32.shl - local.get $1 + local.get $3 i32.add i32.load16_u call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $2 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -24778,46 +25307,47 @@ local.get $0 local.get $1 local.get $1 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add @@ -24825,9 +25355,9 @@ end local.get $2 i32.add - local.tee $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/typedarray/Int32Array#join (param $0 i32) (result i32) (local $1 i32) @@ -24836,37 +25366,39 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 i32.const 1 i32.sub - local.tee $4 + local.tee $2 i32.const 0 i32.lt_s if @@ -24875,25 +25407,26 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $4 + local.get $2 i32.eqz if - local.get $1 + local.get $3 i32.load call $~lib/util/number/itoa32 - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 11 i32.add i32.mul @@ -24904,49 +25437,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $4 if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9584 - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $4 i32.add local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end @@ -24954,39 +25487,40 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $4 + local.get $2 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $2 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) local.get $1 @@ -25004,54 +25538,55 @@ local.get $0 local.get $1 local.get $1 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.tee $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $0 ) (func $~lib/typedarray/Uint32Array#join (param $0 i32) (result i32) (local $1 i32) @@ -25060,37 +25595,39 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 i32.const 1 i32.sub - local.tee $4 + local.tee $2 i32.const 0 i32.lt_s if @@ -25099,25 +25636,26 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $4 + local.get $2 i32.eqz if - local.get $1 + local.get $3 i32.load call $~lib/util/number/utoa32 - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 10 i32.add i32.mul @@ -25128,49 +25666,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $4 if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9584 - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $4 i32.add local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end @@ -25178,39 +25716,40 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $4 + local.get $2 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add i32.load call $~lib/util/number/itoa_buffered local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $2 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) @@ -25307,7 +25846,7 @@ local.get $1 i64.const 0 i64.lt_s - local.tee $2 + local.tee $3 if local.get $0 i32.const 45 @@ -25321,7 +25860,7 @@ i64.const 10 i64.lt_u if - local.get $2 + local.get $3 i32.const 1 i32.shl local.get $0 @@ -25330,7 +25869,7 @@ i64.const 48 i64.or i64.store16 - local.get $2 + local.get $3 i32.const 1 i32.add return @@ -25342,58 +25881,59 @@ local.get $1 i32.wrap_i64 local.tee $4 - local.tee $3 + local.tee $2 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $2 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $2 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $2 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $2 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $2 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $2 i32.const 100000000 i32.ge_u i32.add end end - local.get $2 - i32.add local.set $2 local.get $0 local.get $4 local.get $2 + local.get $3 + i32.add + local.tee $0 call $~lib/util/number/utoa32_dec_lut else local.get $0 @@ -25448,12 +25988,12 @@ i32.add end end - local.get $2 + local.get $3 i32.add - local.tee $2 + local.tee $0 call $~lib/util/number/utoa64_dec_lut end - local.get $2 + local.get $0 ) (func $~lib/typedarray/Int64Array#join (param $0 i32) (result i32) (local $1 i32) @@ -25870,6 +26410,7 @@ local.get $0 local.get $3 local.get $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut else local.get $0 @@ -25924,10 +26465,10 @@ i32.add end end - local.tee $2 + local.tee $0 call $~lib/util/number/utoa64_dec_lut end - local.get $2 + local.get $0 ) (func $~lib/typedarray/Uint64Array#join (param $0 i32) (result i32) (local $1 i32) @@ -25937,29 +26478,33 @@ (local $5 i32) (local $6 i32) (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $__inlined_func$~lib/util/string/joinIntegerArray (result i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $1 i32.const 1 i32.sub - local.tee $7 + local.tee $3 i32.const 0 i32.lt_s if @@ -25968,27 +26513,28 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end block $folding-inner0 - local.get $7 + local.get $3 i32.eqz if - block $__inlined_func$~lib/util/number/utoa64 (result i32) - local.get $4 - i64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $4 + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64 local.get $2 i64.eqz if @@ -25997,6 +26543,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 8000 + local.set $0 br $__inlined_func$~lib/util/number/utoa64 end local.get $2 @@ -26006,63 +26553,63 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.wrap_i64 - local.tee $0 local.tee $3 + local.tee $0 i32.const 100000 i32.lt_u if (result i32) - local.get $3 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $3 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $3 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $3 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $3 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $3 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $3 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $3 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.tee $6 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store - local.get $3 local.get $0 - local.get $6 + local.get $3 + local.get $1 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer @@ -26116,127 +26663,126 @@ i32.add end end - local.tee $6 + local.tee $1 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 local.get $2 - local.get $6 + local.get $1 call $~lib/util/number/utoa64_dec_lut end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 end - local.set $4 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $6 + local.tee $5 i32.const 20 i32.add i32.mul i32.const 20 i32.add - local.tee $0 + local.tee $7 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 + local.tee $1 i32.store loop $for-loop|0 local.get $3 - local.get $7 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $5 + local.get $1 i32.add - local.get $3 + local.get $6 i32.const 3 i32.shl local.get $4 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.set $1 - local.get $6 + local.set $0 + local.get $5 if - local.get $1 + local.get $0 i32.const 1 i32.shl - local.get $5 + local.get $1 i32.add i32.const 9584 - local.get $6 + local.get $5 i32.const 1 i32.shl call $~lib/memory/memory.copy - local.get $1 - local.get $6 + local.get $0 + local.get $5 i32.add - local.set $1 + local.set $0 end - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end + local.get $7 local.get $0 - local.get $1 i32.const 1 i32.shl - local.get $5 + local.get $1 i32.add - local.get $7 + local.get $3 i32.const 3 i32.shl local.get $4 i32.add i64.load call $~lib/util/number/itoa_buffered - local.get $1 + local.get $0 i32.add - local.tee $4 + local.tee $0 i32.gt_s if - local.get $5 - local.get $4 + local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $4 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinIntegerArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end + local.get $0 return end i32.const 33040 @@ -26248,38 +26794,39 @@ ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i32) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i32) + (local $12 i64) (local $13 i64) local.get $2 local.get $1 i64.sub - local.set $9 + local.set $10 local.get $2 i64.const 1 i32.const 0 local.get $3 i32.sub - local.tee $12 + local.tee $11 i64.extend_i32_s local.tee $1 i64.shl - local.tee $11 + local.tee $12 i64.const 1 i64.sub local.tee $13 i64.and - local.set $8 + local.set $7 local.get $2 local.get $1 i64.shr_u i32.wrap_i64 local.tee $6 - local.tee $3 + local.set $3 + local.get $6 i32.const 100000 i32.lt_u if (result i32) @@ -26325,9 +26872,9 @@ i32.add end end - local.set $10 + local.set $9 loop $while-continue|0 - local.get $10 + local.get $9 i32.const 0 i32.gt_s if @@ -26343,7 +26890,7 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $10 + local.get $9 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 @@ -26351,7 +26898,7 @@ local.get $6 i32.const 1000000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 1000000000 i32.rem_u @@ -26361,7 +26908,7 @@ local.get $6 i32.const 100000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 100000000 i32.rem_u @@ -26371,7 +26918,7 @@ local.get $6 i32.const 10000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 10000000 i32.rem_u @@ -26381,7 +26928,7 @@ local.get $6 i32.const 1000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 1000000 i32.rem_u @@ -26391,7 +26938,7 @@ local.get $6 i32.const 100000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 100000 i32.rem_u @@ -26401,7 +26948,7 @@ local.get $6 i32.const 10000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 10000 i32.rem_u @@ -26411,7 +26958,7 @@ local.get $6 i32.const 1000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 1000 i32.rem_u @@ -26421,7 +26968,7 @@ local.get $6 i32.const 100 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 100 i32.rem_u @@ -26431,7 +26978,7 @@ local.get $6 i32.const 10 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 10 i32.rem_u @@ -26439,64 +26986,64 @@ br $break|1 end local.get $6 - local.set $7 + local.set $3 i32.const 0 local.set $6 br $break|1 end i32.const 0 - local.set $7 + local.set $3 end + local.get $3 local.get $5 - local.get $7 i32.or if local.get $5 - local.tee $3 + local.tee $8 i32.const 1 i32.add local.set $5 - local.get $3 + local.get $8 i32.const 1 i32.shl local.get $0 i32.add - local.get $7 + local.get $3 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $10 + local.get $9 i32.const 1 i32.sub - local.set $10 - local.get $4 - local.get $8 + local.set $9 + local.get $7 local.get $6 i64.extend_i32_u - local.get $12 + local.get $11 i64.extend_i32_s i64.shl i64.add local.tee $1 - i64.ge_u + local.get $4 + i64.le_u if - local.get $10 + local.get $9 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $10 + local.get $9 i32.const 2 i32.shl i32.const 10736 i32.add i64.load32_u - local.get $12 + local.get $11 i64.extend_i32_s i64.shl - local.set $11 + local.set $2 local.get $5 i32.const 1 i32.sub @@ -26504,53 +27051,53 @@ i32.shl local.get $0 i32.add - local.tee $0 + local.tee $6 i32.load16_u - local.set $7 + local.set $3 loop $while-continue|3 - local.get $11 + local.get $2 local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $9 + local.get $10 i64.lt_u select if (result i32) i32.const 1 - local.get $9 + local.get $10 local.get $1 i64.sub local.get $1 - local.get $11 + local.get $2 i64.add - local.tee $2 - local.get $9 + local.tee $7 + local.get $10 i64.sub i64.gt_u - local.get $2 - local.get $9 + local.get $7 + local.get $10 i64.lt_u select else i32.const 0 end if - local.get $7 + local.get $3 i32.const 1 i32.sub - local.set $7 + local.set $3 local.get $1 - local.get $11 + local.get $2 i64.add local.set $1 br $while-continue|3 end end - local.get $0 - local.get $7 + local.get $6 + local.get $3 i32.store16 local.get $5 return @@ -26558,19 +27105,19 @@ br $while-continue|0 end end - loop $while-continue|4 (result i32) + loop $while-continue|4 local.get $4 i64.const 10 i64.mul local.set $4 - local.get $8 + local.get $7 i64.const 10 i64.mul - local.tee $2 - local.get $12 + local.tee $1 + local.get $11 i64.extend_i32_s i64.shr_u - local.tee $1 + local.tee $2 local.get $5 i64.extend_i32_s i64.or @@ -26587,7 +27134,7 @@ i32.shl local.get $0 i32.add - local.get $1 + local.get $2 i32.wrap_i64 i32.const 65535 i32.and @@ -26595,95 +27142,97 @@ i32.add i32.store16 end - local.get $10 + local.get $9 i32.const 1 i32.sub - local.set $10 - local.get $2 + local.set $9 + local.get $4 + local.get $1 local.get $13 i64.and - local.tee $8 - local.get $4 - i64.ge_u + local.tee $7 + i64.le_u br_if $while-continue|4 - local.get $10 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $8 - local.set $1 + end + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $7 + local.set $1 + i32.const 0 + local.get $9 + i32.sub + i32.const 2 + i32.shl + i32.const 10736 + i32.add + i64.load32_u + local.get $10 + i64.mul + local.set $2 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $6 + i32.load16_u + local.set $3 + loop $while-continue|6 + local.get $12 + local.get $4 + local.get $1 + i64.sub + i64.le_u i32.const 0 - local.get $10 - i32.sub - i32.const 2 - i32.shl - i32.const 10736 - i32.add - i64.load32_u - local.get $9 - i64.mul - local.set $9 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - local.get $0 - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|6 - local.get $11 - local.get $4 + local.get $1 + local.get $2 + i64.lt_u + select + if (result i32) + i32.const 1 + local.get $2 local.get $1 i64.sub - i64.le_u - i32.const 0 local.get $1 - local.get $9 - i64.lt_u + local.get $12 + i64.add + local.tee $7 + local.get $2 + i64.sub + i64.gt_u + local.get $2 + local.get $7 + i64.gt_u select - if (result i32) - i32.const 1 - local.get $9 - local.get $1 - i64.sub - local.get $1 - local.get $11 - i64.add - local.tee $2 - local.get $9 - i64.sub - i64.gt_u - local.get $2 - local.get $9 - i64.lt_u - select - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $11 - i64.add - local.set $1 - br $while-continue|6 - end + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $1 + local.get $12 + i64.add + local.set $1 + br $while-continue|6 end - local.get $0 - local.get $7 - i32.store16 - local.get $5 end + local.get $6 + local.get $3 + i32.store16 + local.get $5 ) (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $2 i32.eqz if @@ -26784,7 +27333,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $2 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -26798,28 +27347,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $4 + local.set $2 loop $for-loop|1 local.get $2 - local.get $4 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $4 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end local.get $1 - local.get $2 + local.get $5 i32.add else local.get $1 @@ -26847,7 +27396,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -26894,9 +27442,12 @@ i32.add end end + local.set $1 + local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -26904,7 +27455,7 @@ local.get $2 select i32.store16 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.add else @@ -26940,7 +27491,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -26948,7 +27499,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -26995,18 +27545,21 @@ i32.add end end + local.set $2 + local.get $0 + local.get $2 i32.const 1 i32.add - local.tee $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select i32.store16 offset=4 + local.get $0 local.get $1 - local.get $2 i32.add i32.const 2 i32.add @@ -27376,37 +27929,39 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinFloatArray (result i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinFloatArray + local.get $1 i32.const 1 i32.sub - local.tee $4 + local.tee $2 i32.const 0 i32.lt_s if @@ -27415,26 +27970,27 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end block $folding-inner0 - local.get $4 + local.get $2 i32.eqz if - local.get $1 + local.get $3 f32.load f64.promote_f32 call $~lib/util/number/dtoa - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 28 i32.add i32.mul @@ -27445,22 +28001,22 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add f32.load f64.promote_f32 @@ -27468,27 +28024,27 @@ local.get $0 i32.add local.set $0 - local.get $5 + local.get $4 if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9584 - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $4 i32.add local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end @@ -27496,40 +28052,41 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $4 + local.get $2 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add f32.load f64.promote_f32 call $~lib/util/number/dtoa_buffered local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $2 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/typedarray/Float64Array#join (param $0 i32) (result i32) (local $1 i32) @@ -27538,37 +28095,39 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinFloatArray (result i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + local.get $0 + i32.load offset=4 + local.set $3 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $1 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinFloatArray + local.get $1 i32.const 1 i32.sub - local.tee $4 + local.tee $2 i32.const 0 i32.lt_s if @@ -27577,25 +28136,26 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end block $folding-inner0 - local.get $4 + local.get $2 i32.eqz if - local.get $1 + local.get $3 f64.load call $~lib/util/number/dtoa - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $2 i32.const 9580 i32.load i32.const 1 i32.shr_u - local.tee $5 + local.tee $4 i32.const 28 i32.add i32.mul @@ -27606,49 +28166,49 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store loop $for-loop|0 - local.get $3 - local.get $4 - i32.lt_s + local.get $2 + local.get $5 + i32.gt_s if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $3 + local.get $5 i32.const 3 i32.shl - local.get $1 + local.get $3 i32.add f64.load call $~lib/util/number/dtoa_buffered local.get $0 i32.add local.set $0 - local.get $5 + local.get $4 if local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add i32.const 9584 - local.get $5 + local.get $4 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $5 + local.get $4 i32.add local.set $0 end - local.get $3 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|0 end end @@ -27656,39 +28216,40 @@ local.get $0 i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - local.get $4 + local.get $2 i32.const 3 i32.shl - local.get $1 + local.get $3 i32.add f64.load call $~lib/util/number/dtoa_buffered local.get $0 i32.add - local.tee $1 + local.tee $0 i32.gt_s if - local.get $2 local.get $1 + local.get $0 call $~lib/string/String#substring - local.set $1 + local.set $0 br $folding-inner0 end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 + local.set $0 br $__inlined_func$~lib/util/string/joinFloatArray end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -27710,8 +28271,6 @@ i32.const -1 local.set $3 end - local.get $0 - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -27731,11 +28290,11 @@ i32.const 0 i32.store local.get $1 - local.get $2 + local.get $0 i32.const 20 i32.sub i32.load offset=16 - local.tee $0 + local.tee $2 i32.gt_u if i32.const 1360 @@ -27753,7 +28312,7 @@ i32.const -1 i32.eq if (result i32) - local.get $0 + local.get $2 local.get $1 i32.sub else @@ -27766,7 +28325,7 @@ end local.set $3 else - local.get $0 + local.get $2 local.get $1 local.get $3 i32.add @@ -27784,27 +28343,27 @@ i32.const 12 i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store - local.get $0 local.get $2 - i32.store local.get $0 + i32.store local.get $2 - call $~lib/rt/itcms/__link local.get $0 + call $~lib/rt/itcms/__link + local.get $2 local.get $3 i32.store offset=8 + local.get $2 local.get $0 local.get $1 - local.get $2 i32.add i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 ) (func $~lib/typedarray/Int8Array#set<~lib/array/Array> (param $0 i32) (local $1 i32) @@ -29456,22 +30015,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $7 + local.get $5 i32.add local.set $11 i32.const 0 @@ -29496,27 +30045,17 @@ end end local.get $1 - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 - local.get $5 + local.get $1 i32.const 1 i32.sub local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -29531,26 +30070,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $7 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $7 + local.get $6 i32.sub i32.const 1 i32.add @@ -29559,9 +30098,9 @@ i32.lt_s if local.get $0 - local.get $7 + local.get $6 local.get $9 - local.get $7 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -29575,7 +30114,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -29587,7 +30126,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add @@ -29628,7 +30167,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -29658,12 +30197,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $7 + i32.store + local.get $6 local.set $3 local.get $5 - local.set $6 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -30243,22 +30782,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $7 + local.get $5 i32.add local.set $11 i32.const 0 @@ -30283,27 +30812,17 @@ end end local.get $1 - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 - local.get $5 + local.get $1 i32.const 1 i32.sub local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -30318,26 +30837,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $7 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $7 + local.get $6 i32.sub i32.const 1 i32.add @@ -30346,9 +30865,9 @@ i32.lt_s if local.get $0 - local.get $7 + local.get $6 local.get $9 - local.get $7 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -30362,7 +30881,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -30374,7 +30893,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add @@ -30415,7 +30934,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -30445,12 +30964,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $7 + i32.store + local.get $6 local.set $3 local.get $5 - local.set $6 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -31081,22 +31600,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $7 + local.get $5 i32.add local.set $11 i32.const 0 @@ -31123,17 +31632,7 @@ local.get $1 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -31143,7 +31642,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -31158,26 +31657,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $7 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $7 + local.get $6 i32.sub i32.const 1 i32.add @@ -31186,9 +31685,9 @@ i32.lt_s if local.get $0 - local.get $7 + local.get $6 local.get $9 - local.get $7 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -31202,7 +31701,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -31214,7 +31713,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add @@ -31255,7 +31754,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -31285,12 +31784,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $7 + i32.store + local.get $6 local.set $3 local.get $5 - local.set $6 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -31911,22 +32410,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $7 + local.get $5 i32.add local.set $11 i32.const 0 @@ -31953,17 +32442,7 @@ local.get $1 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -31973,7 +32452,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -31988,26 +32467,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $7 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $7 + local.get $6 i32.sub i32.const 1 i32.add @@ -32016,9 +32495,9 @@ i32.lt_s if local.get $0 - local.get $7 + local.get $6 local.get $9 - local.get $7 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -32032,7 +32511,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -32044,7 +32523,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add @@ -32085,7 +32564,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -32115,12 +32594,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $7 + i32.store + local.get $6 local.set $3 local.get $5 - local.set $6 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -32751,22 +33230,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $7 + local.get $5 i32.add local.set $11 i32.const 0 @@ -32793,17 +33262,7 @@ local.get $1 i32.const 2 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -32813,7 +33272,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -32828,26 +33287,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $7 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $7 + local.get $6 i32.sub i32.const 1 i32.add @@ -32856,9 +33315,9 @@ i32.lt_s if local.get $0 - local.get $7 + local.get $6 local.get $9 - local.get $7 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -32872,7 +33331,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -32884,7 +33343,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add @@ -32925,7 +33384,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -32955,12 +33414,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $7 + i32.store + local.get $6 local.set $3 local.get $5 - local.set $6 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -33575,22 +34034,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $7 + local.tee $5 i32.const 1 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $10 - local.get $7 + local.get $5 i32.add local.set $11 i32.const 0 @@ -33617,17 +34066,7 @@ local.get $1 i32.const 2 i32.shl - local.set $5 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $5 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $12 local.get $0 i32.const 0 @@ -33637,7 +34076,7 @@ local.tee $9 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $7 i32.const 1 i32.add local.tee $1 @@ -33652,26 +34091,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $7 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $7 local.get $9 i32.lt_s if local.get $0 - local.get $6 + local.get $7 i32.const 1 i32.add - local.tee $7 + local.tee $6 local.get $9 local.get $2 call $~lib/util/sort/extendRunRight local.tee $5 - local.get $7 + local.get $6 i32.sub i32.const 1 i32.add @@ -33680,9 +34119,9 @@ i32.lt_s if local.get $0 - local.get $7 + local.get $6 local.get $9 - local.get $7 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -33696,7 +34135,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $7 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -33708,7 +34147,7 @@ local.tee $13 i64.div_u local.get $5 - local.get $7 + local.get $6 i32.add i32.const 1 i32.add @@ -33749,7 +34188,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $7 local.get $12 local.get $2 call $~lib/util/sort/mergeRuns @@ -33779,12 +34218,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $7 + i32.store + local.get $6 local.set $3 local.get $5 - local.set $6 + local.set $7 local.get $1 local.set $4 br $while-continue|2 @@ -34407,22 +34846,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $11 - local.get $5 + local.get $7 i32.add local.set $10 i32.const 0 @@ -34449,17 +34878,7 @@ local.get $1 i32.const 3 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $9 local.get $0 i32.const 0 @@ -34469,7 +34888,7 @@ local.tee $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -34484,26 +34903,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $5 local.get $12 i32.lt_s if local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $12 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $5 + local.get $6 i32.sub i32.const 1 i32.add @@ -34512,9 +34931,9 @@ i32.lt_s if local.get $0 - local.get $5 + local.get $6 local.get $12 - local.get $5 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -34528,7 +34947,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $5 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -34539,7 +34958,7 @@ i64.extend_i32_u local.tee $14 i64.div_u - local.get $5 + local.get $6 local.get $7 i32.add i32.const 1 @@ -34581,7 +35000,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $5 local.get $9 local.get $2 call $~lib/util/sort/mergeRuns @@ -34611,12 +35030,12 @@ local.get $4 local.get $10 i32.add - local.get $6 - i32.store local.get $5 + i32.store + local.get $6 local.set $3 local.get $7 - local.set $6 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -35239,22 +35658,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $11 - local.get $5 + local.get $7 i32.add local.set $10 i32.const 0 @@ -35281,17 +35690,7 @@ local.get $1 i32.const 3 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $9 local.get $0 i32.const 0 @@ -35301,7 +35700,7 @@ local.tee $12 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -35316,26 +35715,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $5 local.get $12 i32.lt_s if local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $12 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $5 + local.get $6 i32.sub i32.const 1 i32.add @@ -35344,9 +35743,9 @@ i32.lt_s if local.get $0 - local.get $5 + local.get $6 local.get $12 - local.get $5 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -35360,7 +35759,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $5 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -35371,7 +35770,7 @@ i64.extend_i32_u local.tee $14 i64.div_u - local.get $5 + local.get $6 local.get $7 i32.add i32.const 1 @@ -35413,7 +35812,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $5 local.get $9 local.get $2 call $~lib/util/sort/mergeRuns @@ -35443,12 +35842,12 @@ local.get $4 local.get $10 i32.add - local.get $6 - i32.store local.get $5 + i32.store + local.get $6 local.set $3 local.get $7 - local.set $6 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -36072,22 +36471,12 @@ local.tee $6 i32.const 2 i32.shl - local.tee $5 + local.tee $7 i32.const 1 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.tee $12 - local.get $5 + local.get $7 i32.add local.set $11 i32.const 0 @@ -36114,17 +36503,7 @@ local.get $1 i32.const 2 i32.shl - local.set $7 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $7 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add + call $~lib/rt/tlsf/__alloc local.set $10 local.get $0 i32.const 0 @@ -36134,7 +36513,7 @@ local.tee $13 local.get $2 call $~lib/util/sort/extendRunRight - local.tee $6 + local.tee $5 i32.const 1 i32.add local.tee $1 @@ -36149,26 +36528,26 @@ i32.const 31 i32.lt_s select - local.tee $6 + local.tee $5 local.get $1 local.get $2 call $~lib/util/sort/insertionSort end loop $while-continue|2 - local.get $6 + local.get $5 local.get $13 i32.lt_s if local.get $0 - local.get $6 + local.get $5 i32.const 1 i32.add - local.tee $5 + local.tee $6 local.get $13 local.get $2 call $~lib/util/sort/extendRunRight local.tee $7 - local.get $5 + local.get $6 i32.sub i32.const 1 i32.add @@ -36177,9 +36556,9 @@ i32.lt_s if local.get $0 - local.get $5 + local.get $6 local.get $13 - local.get $5 + local.get $6 i32.const 31 i32.add local.tee $1 @@ -36193,7 +36572,7 @@ call $~lib/util/sort/insertionSort end local.get $3 - local.get $5 + local.get $6 i32.add i64.extend_i32_u i64.const 30 @@ -36204,7 +36583,7 @@ i64.extend_i32_u local.tee $9 i64.div_u - local.get $5 + local.get $6 local.get $7 i32.add i32.const 1 @@ -36246,7 +36625,7 @@ i32.load i32.const 1 i32.add - local.get $6 + local.get $5 local.get $10 local.get $2 call $~lib/util/sort/mergeRuns @@ -36276,12 +36655,12 @@ local.get $4 local.get $11 i32.add - local.get $6 - i32.store local.get $5 + i32.store + local.get $6 local.set $3 local.get $7 - local.set $6 + local.set $5 local.get $1 local.set $4 br $while-continue|2 @@ -36424,11 +36803,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -36443,25 +36823,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $3 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Int8Array#__set @@ -36478,13 +36858,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -36496,16 +36876,16 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 i32.lt_s if local.get $4 - local.get $8 + local.get $9 i32.add i32.load8_s local.set $7 @@ -36513,17 +36893,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 3952 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.tee $0 + local.tee $3 i32.const 1 i32.add local.set $2 - local.get $0 + local.get $3 local.get $6 i32.add local.get $7 @@ -36540,16 +36920,16 @@ local.get $6 local.get $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store local.get $1 - local.get $3 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -36645,11 +37025,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -36664,25 +37045,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $3 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8Array#__set @@ -36699,13 +37080,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -36717,16 +37098,16 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 i32.lt_s if local.get $4 - local.get $8 + local.get $9 i32.add i32.load8_u local.set $7 @@ -36734,17 +37115,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 3984 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.tee $0 + local.tee $3 i32.const 1 i32.add local.set $2 - local.get $0 + local.get $3 local.get $6 i32.add local.get $7 @@ -36761,16 +37142,16 @@ local.get $6 local.get $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store local.get $1 - local.get $3 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -36866,11 +37247,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -36885,25 +37267,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set @@ -36920,13 +37302,13 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new @@ -36938,16 +37320,16 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 i32.lt_s if local.get $4 - local.get $8 + local.get $9 i32.add i32.load8_u local.set $7 @@ -36955,17 +37337,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 4016 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if local.get $2 - local.tee $0 + local.tee $3 i32.const 1 i32.add local.set $2 - local.get $0 + local.get $3 local.get $6 i32.add local.get $7 @@ -36982,16 +37364,16 @@ local.get $6 local.get $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store local.get $1 - local.get $3 + local.get $0 call $~lib/rt/itcms/__link local.get $1 local.get $2 i32.store offset=8 local.get $1 - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -37087,11 +37469,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -37106,25 +37489,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Int16Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $3 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Int16Array#__set @@ -37141,19 +37524,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -37163,9 +37546,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 @@ -37174,7 +37557,7 @@ local.get $4 i32.const 1 i32.shl - local.get $8 + local.get $9 i32.add i32.load16_s local.set $7 @@ -37182,17 +37565,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 4048 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $1 - local.tee $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.const 1 i32.shl local.get $6 @@ -37207,29 +37590,29 @@ br $for-loop|0 end end - local.get $2 - local.get $6 local.get $1 + local.get $6 + local.get $2 i32.const 1 i32.shl - local.tee $1 + local.tee $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store - local.get $2 - local.get $3 + local.get $1 + local.get $0 call $~lib/rt/itcms/__link - local.get $2 local.get $1 - i32.store offset=8 local.get $2 - local.get $3 + i32.store offset=8 + local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.tee $0 i32.store offset=8 local.get $0 @@ -37321,11 +37704,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -37340,25 +37724,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Uint16Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $3 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Uint16Array#__set @@ -37375,19 +37759,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 i32.const 1 i32.shr_u local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -37397,9 +37781,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 @@ -37408,7 +37792,7 @@ local.get $4 i32.const 1 i32.shl - local.get $8 + local.get $9 i32.add i32.load16_u local.set $7 @@ -37416,17 +37800,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 4080 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $1 - local.tee $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.const 1 i32.shl local.get $6 @@ -37441,29 +37825,29 @@ br $for-loop|0 end end - local.get $2 - local.get $6 local.get $1 + local.get $6 + local.get $2 i32.const 1 i32.shl - local.tee $1 + local.tee $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store - local.get $2 - local.get $3 + local.get $1 + local.get $0 call $~lib/rt/itcms/__link - local.get $2 local.get $1 - i32.store offset=8 local.get $2 - local.get $3 + i32.store offset=8 + local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.tee $0 i32.store offset=8 local.get $0 @@ -37555,11 +37939,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -37574,25 +37959,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Int32Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $3 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Int32Array#__set @@ -37609,19 +37994,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -37631,9 +38016,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 @@ -37642,7 +38027,7 @@ local.get $4 i32.const 2 i32.shl - local.get $8 + local.get $9 i32.add i32.load local.set $7 @@ -37650,17 +38035,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 4112 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $1 - local.tee $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.const 2 i32.shl local.get $6 @@ -37675,29 +38060,29 @@ br $for-loop|0 end end - local.get $2 - local.get $6 local.get $1 + local.get $6 + local.get $2 i32.const 2 i32.shl - local.tee $1 + local.tee $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store - local.get $2 - local.get $3 + local.get $1 + local.get $0 call $~lib/rt/itcms/__link - local.get $2 local.get $1 - i32.store offset=8 local.get $2 - local.get $3 + i32.store offset=8 + local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.tee $0 i32.store offset=8 local.get $0 @@ -37789,11 +38174,12 @@ (local $6 i32) (local $7 i32) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -37808,25 +38194,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $3 + local.get $0 i32.const 5 i32.const 5 call $~lib/typedarray/Uint32Array#__set @@ -37843,19 +38229,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -37865,9 +38251,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 @@ -37876,7 +38262,7 @@ local.get $4 i32.const 2 i32.shl - local.get $8 + local.get $9 i32.add i32.load local.set $7 @@ -37884,17 +38270,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 4144 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) if - local.get $1 - local.tee $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.const 2 i32.shl local.get $6 @@ -37909,29 +38295,29 @@ br $for-loop|0 end end - local.get $2 - local.get $6 local.get $1 + local.get $6 + local.get $2 i32.const 2 i32.shl - local.tee $1 + local.tee $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store - local.get $2 - local.get $3 + local.get $1 + local.get $0 call $~lib/rt/itcms/__link - local.get $2 local.get $1 - i32.store offset=8 local.get $2 - local.get $3 + i32.store offset=8 + local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.tee $0 i32.store offset=8 local.get $0 @@ -38023,11 +38409,12 @@ (local $6 i32) (local $7 i64) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -38042,25 +38429,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Int64Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $0 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $3 + local.get $0 i32.const 5 i64.const 5 call $~lib/typedarray/Int64Array#__set @@ -38077,19 +38464,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -38099,9 +38486,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 @@ -38110,7 +38497,7 @@ local.get $4 i32.const 3 i32.shl - local.get $8 + local.get $9 i32.add i64.load local.set $7 @@ -38118,17 +38505,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 4176 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if - local.get $1 - local.tee $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.const 3 i32.shl local.get $6 @@ -38143,29 +38530,29 @@ br $for-loop|0 end end - local.get $2 - local.get $6 local.get $1 + local.get $6 + local.get $2 i32.const 3 i32.shl - local.tee $1 + local.tee $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store - local.get $2 - local.get $3 + local.get $1 + local.get $0 call $~lib/rt/itcms/__link - local.get $2 local.get $1 - i32.store offset=8 local.get $2 - local.get $3 + i32.store offset=8 + local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.tee $0 i32.store offset=8 local.get $0 @@ -38257,11 +38644,12 @@ (local $6 i32) (local $7 i64) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -38276,25 +38664,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $0 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $3 + local.get $0 i32.const 5 i64.const 5 call $~lib/typedarray/Uint64Array#__set @@ -38311,19 +38699,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -38333,9 +38721,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 @@ -38344,7 +38732,7 @@ local.get $4 i32.const 3 i32.shl - local.get $8 + local.get $9 i32.add i64.load local.set $7 @@ -38352,17 +38740,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 4208 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) if - local.get $1 - local.tee $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.const 3 i32.shl local.get $6 @@ -38377,29 +38765,29 @@ br $for-loop|0 end end - local.get $2 - local.get $6 local.get $1 + local.get $6 + local.get $2 i32.const 3 i32.shl - local.tee $1 + local.tee $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store - local.get $2 - local.get $3 + local.get $1 + local.get $0 call $~lib/rt/itcms/__link - local.get $2 local.get $1 - i32.store offset=8 local.get $2 - local.get $3 + i32.store offset=8 + local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.tee $0 i32.store offset=8 local.get $0 @@ -38491,11 +38879,12 @@ (local $6 i32) (local $7 f32) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -38510,25 +38899,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Float32Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $0 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $0 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $0 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $3 + local.get $0 i32.const 5 f32.const 5 call $~lib/typedarray/Float32Array#__set @@ -38545,19 +38934,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -38567,9 +38956,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 @@ -38578,7 +38967,7 @@ local.get $4 i32.const 2 i32.shl - local.get $8 + local.get $9 i32.add f32.load local.set $7 @@ -38586,17 +38975,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 4240 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) if - local.get $1 - local.tee $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.const 2 i32.shl local.get $6 @@ -38611,29 +39000,29 @@ br $for-loop|0 end end - local.get $2 - local.get $6 local.get $1 + local.get $6 + local.get $2 i32.const 2 i32.shl - local.tee $1 + local.tee $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store - local.get $2 - local.get $3 + local.get $1 + local.get $0 call $~lib/rt/itcms/__link - local.get $2 local.get $1 - i32.store offset=8 local.get $2 - local.get $3 + i32.store offset=8 + local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.tee $0 i32.store offset=8 local.get $0 @@ -38725,11 +39114,12 @@ (local $6 i32) (local $7 f64) (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s @@ -38744,25 +39134,25 @@ local.get $0 i32.const 6 call $~lib/typedarray/Float64Array#constructor - local.tee $3 + local.tee $0 i32.store - local.get $3 + local.get $0 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $0 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $0 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $0 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $3 + local.get $0 i32.const 5 f64.const 5 call $~lib/typedarray/Float64Array#__set @@ -38779,19 +39169,19 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $3 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u local.set $5 - local.get $0 + local.get $1 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer local.get $5 @@ -38801,9 +39191,9 @@ call $~lib/rt/itcms/__new local.tee $6 i32.store offset=4 - local.get $3 + local.get $0 i32.load offset=4 - local.set $8 + local.set $9 loop $for-loop|0 local.get $4 local.get $5 @@ -38812,7 +39202,7 @@ local.get $4 i32.const 3 i32.shl - local.get $8 + local.get $9 i32.add f64.load local.set $7 @@ -38820,17 +39210,17 @@ global.set $~argumentsLength local.get $7 local.get $4 - local.get $3 + local.get $0 i32.const 4272 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) if - local.get $1 - local.tee $0 + local.get $2 + local.tee $3 i32.const 1 i32.add - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.const 3 i32.shl local.get $6 @@ -38845,29 +39235,29 @@ br $for-loop|0 end end - local.get $2 - local.get $6 local.get $1 + local.get $6 + local.get $2 i32.const 3 i32.shl - local.tee $1 + local.tee $2 call $~lib/rt/itcms/__renew - local.tee $3 + local.tee $0 i32.store - local.get $2 - local.get $3 + local.get $1 + local.get $0 call $~lib/rt/itcms/__link - local.get $2 local.get $1 - i32.store offset=8 local.get $2 - local.get $3 + i32.store offset=8 + local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $1 local.tee $0 i32.store offset=8 local.get $0 @@ -39368,6 +39758,1736 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 7616 + i32.store + local.get $1 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Int32Array#constructor + local.tee $5 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $6 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + i32.load + local.set $8 + local.get $7 + local.get $4 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Int32Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Int32Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 0 + local.set $2 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.const 1 + i32.gt_u + if + local.get $3 + i32.const 1 + i32.shr_u + local.set $4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|01 + local.get $2 + local.get $4 + i32.lt_u + if + local.get $2 + i32.const 2 + i32.shl + local.get $5 + i32.add + local.tee $6 + i32.load + local.set $7 + local.get $6 + local.get $3 + local.get $2 + i32.sub + i32.const 2 + i32.shl + local.get $5 + i32.add + local.tee $6 + i32.load + i32.store + local.get $6 + local.get $7 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|01 + end + end + end + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/typedarray/Int32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 7616 + i32.store + local.get $1 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Uint32Array#constructor + local.tee $5 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $6 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + i32.load + local.set $8 + local.get $7 + local.get $4 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + i32.load + i32.store + local.get $7 + local.get $8 + i32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Uint32Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 8 + call $~lib/typedarray/Uint32Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 0 + local.set $2 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.const 1 + i32.gt_u + if + local.get $3 + i32.const 1 + i32.shr_u + local.set $4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|01 + local.get $2 + local.get $4 + i32.lt_u + if + local.get $2 + i32.const 2 + i32.shl + local.get $5 + i32.add + local.tee $6 + i32.load + local.set $7 + local.get $6 + local.get $3 + local.get $2 + i32.sub + i32.const 2 + i32.shl + local.get $5 + i32.add + local.tee $6 + i32.load + i32.store + local.get $6 + local.get $7 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|01 + end + end + end + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint32Array#__get + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 7616 + i32.store + local.get $1 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Int64Array#constructor + local.tee $5 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $6 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + i64.load + local.set $8 + local.get $7 + local.get $4 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + i64.load + i64.store + local.get $7 + local.get $8 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Int64Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 8 + call $~lib/typedarray/Int64Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 0 + local.set $2 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 1 + i32.gt_u + if + local.get $3 + i32.const 1 + i32.shr_u + local.set $4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|01 + local.get $2 + local.get $4 + i32.lt_u + if + local.get $2 + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $6 + i64.load + local.set $8 + local.get $6 + local.get $3 + local.get $2 + i32.sub + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $6 + i64.load + i64.store + local.get $6 + local.get $8 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|01 + end + end + end + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 8 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 6 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 7616 + i32.store + local.get $1 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $5 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $6 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + i64.load + local.set $8 + local.get $7 + local.get $4 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + i64.load + i64.store + local.get $7 + local.get $8 + i64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Uint64Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + i64.extend_i32_s + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 8 + call $~lib/typedarray/Uint64Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 0 + local.set $2 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 1 + i32.gt_u + if + local.get $3 + i32.const 1 + i32.shr_u + local.set $4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|01 + local.get $2 + local.get $4 + i32.lt_u + if + local.get $2 + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $6 + i64.load + local.set $8 + local.get $6 + local.get $3 + local.get $2 + i32.sub + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $6 + i64.load + i64.store + local.get $6 + local.get $8 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|01 + end + end + end + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 8 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 7 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 6 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint64Array#__get + i64.const 5 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 7616 + i32.store + local.get $1 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Float32Array#constructor + local.tee $5 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $6 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + f32.load + local.set $8 + local.get $7 + local.get $4 + local.get $0 + i32.sub + i32.const 2 + i32.shl + local.get $3 + i32.add + local.tee $7 + f32.load + f32.store + local.get $7 + local.get $8 + f32.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Float32Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f32.convert_i32_s + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 8 + call $~lib/typedarray/Float32Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 0 + local.set $2 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.tee $3 + i32.const 1 + i32.gt_u + if + local.get $3 + i32.const 1 + i32.shr_u + local.set $4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|01 + local.get $2 + local.get $4 + i32.lt_u + if + local.get $2 + i32.const 2 + i32.shl + local.get $5 + i32.add + local.tee $6 + f32.load + local.set $8 + local.get $6 + local.get $3 + local.get $2 + i32.sub + i32.const 2 + i32.shl + local.get $5 + i32.add + local.tee $6 + f32.load + f32.store + local.get $6 + local.get $8 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|01 + end + end + end + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 8 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 7 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 6 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/typedarray/Float32Array#__get + f32.const 5 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f64) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 7616 + i32.store + local.get $1 + i32.const 7628 + i32.load + local.tee $2 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $~lib/typedarray/Float64Array#constructor + local.tee $5 + i32.store offset=8 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $5 + local.get $0 + i32.const 7616 + local.get $0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + i32.const 0 + local.set $0 + local.get $1 + i32.load offset=4 + local.set $3 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $4 + i32.const 1 + i32.gt_u + if + local.get $4 + i32.const 1 + i32.shr_u + local.set $6 + local.get $4 + i32.const 1 + i32.sub + local.set $4 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_u + if + local.get $0 + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + f64.load + local.set $8 + local.get $7 + local.get $4 + local.get $0 + i32.sub + i32.const 3 + i32.shl + local.get $3 + i32.add + local.tee $7 + f64.load + f64.store + local.get $7 + local.get $8 + f64.store + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.lt_s + if + local.get $1 + local.get $0 + call $~lib/typedarray/Float64Array#__get + i32.const 7616 + local.get $2 + i32.const 1 + i32.sub + local.get $0 + i32.sub + call $~lib/array/Array#__get + f64.convert_i32_s + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 570 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 4 + i32.const 8 + call $~lib/typedarray/Float64Array#subarray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 0 + local.set $2 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.tee $3 + i32.const 1 + i32.gt_u + if + local.get $3 + i32.const 1 + i32.shr_u + local.set $4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|01 + local.get $2 + local.get $4 + i32.lt_u + if + local.get $2 + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $6 + f64.load + local.set $8 + local.get $6 + local.get $3 + local.get $2 + i32.sub + i32.const 3 + i32.shl + local.get $5 + i32.add + local.tee $6 + f64.load + f64.store + local.get $6 + local.get $8 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|01 + end + end + end + local.get $1 + i32.store offset=16 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 8 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 575 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 576 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 577 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 578 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer @@ -39496,117 +41616,116 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) - (local $8 f64) - (local $9 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + (local $7 i32) + (local $8 f32) + (local $9 f64) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - i32.const 10 - i32.const 0 - i32.const 15 - i32.const 11312 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 15 + i32.const 11312 + call $~lib/rt/__newArray + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $0 + local.get $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner0 local.get $0 - local.tee $1 i32.load offset=8 i32.const 11100 i32.load @@ -39614,38 +41733,38 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.add - local.set $1 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load - local.set $9 + local.set $4 loop $for-loop|0 local.get $3 - local.get $9 + local.get $4 i32.lt_s if - local.get $1 local.get $3 + local.get $6 i32.add local.get $3 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add f32.load - local.tee $7 - local.get $7 + local.tee $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) - local.get $7 + local.get $8 i32.trunc_f32_s else i32.const 0 @@ -39663,35 +41782,34 @@ i32.const 15 i32.const 11392 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=16 local.get $0 - local.get $1 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $0 - local.get $2 + local.get $1 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 i32.const 15 i32.const 11424 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $2 + local.set $1 local.get $0 - local.tee $1 i32.load offset=8 i32.const 11196 i32.load @@ -39699,47 +41817,47 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 2 i32.add - local.set $1 + local.set $4 i32.const 11188 i32.load - local.set $3 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $7 loop $for-loop|04 - local.get $2 - local.get $6 + local.get $1 + local.get $7 i32.lt_s if local.get $1 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $1 i32.const 3 i32.shl - local.get $3 + local.get $6 i32.add f64.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) - local.get $8 + local.get $9 i32.trunc_f64_s else i32.const 0 end i32.store8 - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|04 end end @@ -39748,15 +41866,15 @@ i32.const 15 i32.const 11456 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -39766,17 +41884,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $0 i32.const 10 i32.const 0 i32.const 15 i32.const 11488 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int8Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -39888,117 +42006,116 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) - (local $8 f64) - (local $9 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + (local $7 i32) + (local $8 f32) + (local $9 f64) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int8Array#set<~lib/array/Array> - i32.const 10 - i32.const 0 - i32.const 63 - i32.const 11520 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int8Array#set<~lib/array/Array> + i32.const 10 + i32.const 0 + i32.const 63 + i32.const 11520 + call $~lib/rt/__newArray + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $0 + local.get $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner0 local.get $0 - local.tee $1 i32.load offset=8 i32.const 11100 i32.load @@ -40006,38 +42123,38 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 3 i32.add - local.set $1 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load - local.set $9 + local.set $4 loop $for-loop|0 local.get $3 - local.get $9 + local.get $4 i32.lt_s if - local.get $1 local.get $3 + local.get $6 i32.add local.get $3 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add f32.load - local.tee $7 - local.get $7 + local.tee $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) - local.get $7 + local.get $8 i32.trunc_f32_u else i32.const 0 @@ -40055,35 +42172,34 @@ i32.const 63 i32.const 11600 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=16 local.get $0 - local.get $1 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $0 - local.get $2 + local.get $1 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 0 i32.const 63 i32.const 11632 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $2 + local.set $1 local.get $0 - local.tee $1 i32.load offset=8 i32.const 11196 i32.load @@ -40091,47 +42207,47 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 2 i32.add - local.set $1 + local.set $4 i32.const 11188 i32.load - local.set $3 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $7 loop $for-loop|04 - local.get $2 - local.get $6 + local.get $1 + local.get $7 i32.lt_s if local.get $1 - local.get $2 + local.get $4 i32.add - local.get $2 + local.get $1 i32.const 3 i32.shl - local.get $3 + local.get $6 i32.add f64.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) - local.get $8 + local.get $9 i32.trunc_f64_u else i32.const 0 end i32.store8 - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|04 end end @@ -40140,15 +42256,15 @@ i32.const 63 i32.const 11664 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -40158,17 +42274,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int8Array#set<~lib/array/Array> - local.get $0 i32.const 10 i32.const 0 i32.const 63 i32.const 11696 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -40281,106 +42397,105 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 f32) - (local $9 f64) - (local $10 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + (local $8 i32) + (local $9 f32) + (local $10 f64) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 0 + i32.store offset=16 + local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + block $folding-inner0 i32.const 11020 i32.load local.get $1 - local.tee $0 i32.load offset=8 i32.gt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 local.set $6 i32.const 11012 @@ -40388,39 +42503,39 @@ local.set $7 i32.const 11020 i32.load - local.set $10 + local.set $8 loop $for-loop|0 - local.get $3 - local.get $10 + local.get $0 + local.get $8 i32.lt_s if - local.get $3 + local.get $0 local.get $6 i32.add - local.get $3 + i32.const 255 + local.get $0 i32.const 2 i32.shl local.get $7 i32.add i32.load - local.tee $0 - i32.const 255 - local.get $0 + local.tee $5 i32.sub i32.const 31 i32.shr_s + local.get $5 i32.or - local.get $0 + local.get $5 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.and i32.store8 - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|0 end end @@ -40440,9 +42555,8 @@ i32.const 11088 i32.store offset=16 i32.const 0 - local.set $3 + local.set $0 local.get $1 - local.tee $0 i32.load offset=8 i32.const 11100 i32.load @@ -40450,40 +42564,40 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 3 i32.add - local.set $0 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load - local.set $7 + local.set $8 loop $for-loop|04 - local.get $3 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if local.get $0 - local.get $3 + local.get $6 i32.add - local.get $3 + local.get $0 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add f32.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f32.sub f32.const 0 f32.eq if (result i32) f32.const 0 f32.const 255 - local.get $8 + local.get $9 f32.min f32.max i32.trunc_f32_u @@ -40491,10 +42605,10 @@ i32.const 0 end i32.store8 - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|04 end end @@ -40511,7 +42625,7 @@ local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $1 - local.get $2 + local.get $3 i32.const 6 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 10 @@ -40519,20 +42633,19 @@ i32.const 63 i32.const 11856 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $2 + local.set $0 local.get $1 - local.tee $0 i32.load offset=8 i32.const 11196 i32.load @@ -40540,40 +42653,40 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 2 i32.add - local.set $0 + local.set $5 i32.const 11188 i32.load - local.set $3 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $7 loop $for-loop|08 - local.get $2 - local.get $6 + local.get $0 + local.get $7 i32.lt_s if local.get $0 - local.get $2 + local.get $5 i32.add - local.get $2 + local.get $0 i32.const 3 i32.shl - local.get $3 + local.get $6 i32.add f64.load - local.tee $9 - local.get $9 + local.tee $10 + local.get $10 f64.sub f64.const 0 f64.eq if (result i32) f64.const 0 f64.const 255 - local.get $9 + local.get $10 f64.min f64.max i32.trunc_f64_u @@ -40581,10 +42694,10 @@ i32.const 0 end i32.store8 - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|08 end end @@ -40593,27 +42706,26 @@ i32.const 63 i32.const 11888 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=16 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> local.get $1 - local.get $4 + local.get $2 call $~lib/typedarray/Int8Array#set<~lib/typedarray/Uint8Array> local.get $1 - local.get $5 + local.get $4 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=16 i32.const 0 - local.set $2 + local.set $0 local.get $1 - local.tee $0 i32.load offset=8 i32.const 11276 i32.load @@ -40621,61 +42733,61 @@ i32.add i32.lt_s br_if $folding-inner0 - local.get $0 + local.get $1 i32.load offset=4 i32.const 7 i32.add - local.set $4 + local.set $3 i32.const 11268 i32.load - local.set $5 + local.set $4 i32.const 11276 i32.load - local.set $3 + local.set $5 loop $for-loop|012 - local.get $2 - local.get $3 + local.get $0 + local.get $5 i32.lt_s if - local.get $2 - local.get $4 - i32.add - local.get $2 - local.get $5 + local.get $0 + local.get $3 i32.add - i32.load8_s - local.tee $0 i32.const 255 local.get $0 + local.get $4 + i32.add + i32.load8_s + local.tee $2 i32.sub i32.const 31 i32.shr_s + local.get $2 i32.or - local.get $0 + local.get $2 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.and i32.store8 - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|012 end end - local.get $1 i32.const 10 i32.const 0 i32.const 63 i32.const 11920 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -40792,160 +42904,159 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) - (local $8 f64) - (local $9 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 + (local $7 i32) + (local $8 f32) + (local $9 f64) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - i32.const 10 i32.const 1 - i32.const 64 - i32.const 11952 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 64 + i32.const 11952 + call $~lib/rt/__newArray + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $0 + local.get $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 6 i32.add - local.set $1 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load - local.set $9 + local.set $4 loop $for-loop|0 local.get $3 - local.get $9 + local.get $4 i32.lt_s if local.get $3 i32.const 1 i32.shl - local.get $1 + local.get $6 i32.add local.get $3 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add f32.load - local.tee $7 - local.get $7 + local.tee $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) - local.get $7 + local.get $8 i32.trunc_f32_s else i32.const 0 @@ -40963,87 +43074,86 @@ i32.const 64 i32.const 12048 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=16 local.get $0 - local.get $1 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $0 - local.get $2 + local.get $1 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 i32.const 64 i32.const 12096 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $2 + local.set $1 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 4 i32.add - local.set $1 + local.set $4 i32.const 11188 i32.load - local.set $3 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $7 loop $for-loop|04 - local.get $2 - local.get $6 + local.get $1 + local.get $7 i32.lt_s if - local.get $2 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $4 i32.add - local.get $2 + local.get $1 i32.const 3 i32.shl - local.get $3 + local.get $6 i32.add f64.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) - local.get $8 + local.get $9 i32.trunc_f64_s else i32.const 0 end i32.store16 - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|04 end end @@ -41052,15 +43162,15 @@ i32.const 64 i32.const 12144 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -41070,17 +43180,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $0 i32.const 10 i32.const 1 i32.const 64 i32.const 12192 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -41197,160 +43307,159 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) - (local $8 f64) - (local $9 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 + (local $7 i32) + (local $8 f32) + (local $9 f64) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int16Array#set<~lib/array/Array> - i32.const 10 i32.const 1 - i32.const 65 - i32.const 12240 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int16Array#set<~lib/array/Array> + i32.const 10 + i32.const 1 + i32.const 65 + i32.const 12240 + call $~lib/rt/__newArray + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $0 + local.get $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 6 i32.add - local.set $1 + local.set $6 i32.const 11092 i32.load - local.set $6 + local.set $7 i32.const 11100 i32.load - local.set $9 + local.set $4 loop $for-loop|0 local.get $3 - local.get $9 + local.get $4 i32.lt_s if local.get $3 i32.const 1 i32.shl - local.get $1 + local.get $6 i32.add local.get $3 i32.const 2 i32.shl - local.get $6 + local.get $7 i32.add f32.load - local.tee $7 - local.get $7 + local.tee $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) - local.get $7 + local.get $8 i32.trunc_f32_u else i32.const 0 @@ -41368,87 +43477,86 @@ i32.const 65 i32.const 12336 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=16 local.get $0 - local.get $1 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $0 - local.get $2 + local.get $1 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 1 i32.const 65 i32.const 12384 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $2 + local.set $1 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 1 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 4 i32.add - local.set $1 + local.set $4 i32.const 11188 i32.load - local.set $3 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $7 loop $for-loop|04 - local.get $2 - local.get $6 + local.get $1 + local.get $7 i32.lt_s if - local.get $2 + local.get $1 i32.const 1 i32.shl - local.get $1 + local.get $4 i32.add - local.get $2 + local.get $1 i32.const 3 i32.shl - local.get $3 + local.get $6 i32.add f64.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) - local.get $8 + local.get $9 i32.trunc_f64_u else i32.const 0 end i32.store16 - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|04 end end @@ -41457,15 +43565,15 @@ i32.const 65 i32.const 12432 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int16Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -41475,17 +43583,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int16Array#set<~lib/array/Array> - local.get $0 i32.const 10 i32.const 1 i32.const 65 i32.const 12480 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -41602,172 +43710,171 @@ (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 f32) - (local $8 f64) - (local $9 i32) + (local $7 i32) + (local $8 f32) + (local $9 f64) (local $10 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 16 - i32.const 12528 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 16 + i32.const 12528 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $0 + local.get $3 + call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 12 i32.add local.set $6 i32.const 11092 i32.load - local.set $9 + local.set $7 i32.const 11100 i32.load local.set $10 loop $for-loop|0 - local.get $3 + local.get $4 local.get $10 i32.lt_s if - local.get $3 + local.get $7 + local.get $4 i32.const 2 i32.shl - local.tee $1 - local.get $9 + local.tee $3 i32.add f32.load - local.set $7 - local.get $1 + local.set $8 + local.get $3 local.get $6 i32.add - local.get $7 - local.get $7 + local.get $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) - local.get $7 + local.get $8 i32.trunc_f32_s else i32.const 0 end i32.store - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end @@ -41776,87 +43883,86 @@ i32.const 16 i32.const 12640 call $~lib/rt/__newArray - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=16 local.get $0 - local.get $1 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 - local.get $2 + local.get $1 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 2 i32.const 16 i32.const 12704 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $2 + local.set $1 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 8 i32.add - local.set $1 + local.set $3 i32.const 11188 i32.load - local.set $3 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $7 loop $for-loop|04 - local.get $2 - local.get $6 + local.get $1 + local.get $7 i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add - local.get $2 + local.get $1 i32.const 3 i32.shl - local.get $3 + local.get $6 i32.add f64.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) - local.get $8 + local.get $9 i32.trunc_f64_s else i32.const 0 end i32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|04 end end @@ -41865,15 +43971,15 @@ i32.const 16 i32.const 12768 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -41883,17 +43989,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> - local.get $0 i32.const 10 i32.const 2 i32.const 16 i32.const 12832 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -41998,184 +44104,183 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 f32) - (local $8 f64) - (local $9 i32) - (local $10 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 f32) + (local $9 f64) + (local $10 i32) + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - i32.const 11008 - i32.const 0 - call $~lib/typedarray/Int32Array#set<~lib/array/Array> - i32.const 10 - i32.const 2 - i32.const 66 - i32.const 12896 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + i32.const 11008 + i32.const 0 + call $~lib/typedarray/Int32Array#set<~lib/array/Array> + i32.const 10 + i32.const 2 + i32.const 66 + i32.const 12896 + call $~lib/rt/__newArray + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=16 + local.get $0 + local.get $3 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 12 i32.add local.set $6 i32.const 11092 i32.load - local.set $9 + local.set $7 i32.const 11100 i32.load local.set $10 loop $for-loop|0 - local.get $3 + local.get $4 local.get $10 i32.lt_s if - local.get $3 + local.get $7 + local.get $4 i32.const 2 i32.shl - local.tee $1 - local.get $9 + local.tee $3 i32.add f32.load - local.set $7 - local.get $1 + local.set $8 + local.get $3 local.get $6 i32.add - local.get $7 - local.get $7 + local.get $8 + local.get $8 f32.sub f32.const 0 f32.eq if (result i32) - local.get $7 + local.get $8 i32.trunc_f32_u else i32.const 0 end i32.store - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end @@ -42184,87 +44289,86 @@ i32.const 66 i32.const 13008 call $~lib/rt/__newArray - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=16 local.get $0 - local.get $1 + local.get $4 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 - local.get $2 + local.get $1 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 2 i32.const 66 i32.const 13072 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $2 + local.set $1 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 8 i32.add - local.set $1 + local.set $3 i32.const 11188 i32.load - local.set $3 + local.set $6 i32.const 11196 i32.load - local.set $6 + local.set $7 loop $for-loop|04 - local.get $2 - local.get $6 + local.get $1 + local.get $7 i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add - local.get $2 + local.get $1 i32.const 3 i32.shl - local.get $3 + local.get $6 i32.add f64.load - local.tee $8 - local.get $8 + local.tee $9 + local.get $9 f64.sub f64.const 0 f64.eq if (result i32) - local.get $8 + local.get $9 i32.trunc_f64_u else i32.const 0 end i32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|04 end end @@ -42273,15 +44377,15 @@ i32.const 66 i32.const 13136 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> local.get $0 - local.get $4 + local.get $2 call $~lib/typedarray/Int32Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -42291,17 +44395,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int32Array#set<~lib/array/Array> - local.get $0 i32.const 10 i32.const 2 i32.const 66 i32.const 13200 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=16 local.get $0 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -42422,128 +44526,127 @@ (local $7 i32) (local $8 f64) (local $9 f32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - i32.const 10 - i32.const 3 - i32.const 67 - i32.const 13264 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 67 + i32.const 13264 + call $~lib/rt/__newArray + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $0 + local.get $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 24 i32.add - local.set $1 + local.set $4 i32.const 11092 i32.load local.set $6 @@ -42551,16 +44654,16 @@ i32.load local.set $7 loop $for-loop|0 - local.get $3 + local.get $2 local.get $7 i32.lt_s if - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $1 + local.get $4 i32.add - local.get $3 + local.get $2 i32.const 2 i32.shl local.get $6 @@ -42578,10 +44681,10 @@ i64.const 0 end i64.store - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -42590,69 +44693,68 @@ i32.const 67 i32.const 13424 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $0 - local.get $2 + local.get $1 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 3 i32.const 67 i32.const 13536 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $2 + local.set $1 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 16 i32.add - local.set $1 + local.set $2 i32.const 11188 i32.load - local.set $3 + local.set $4 i32.const 11196 i32.load local.set $6 loop $for-loop|04 - local.get $2 + local.get $1 local.get $6 i32.lt_s if - local.get $2 + local.get $4 + local.get $1 i32.const 3 i32.shl local.tee $7 - local.get $3 i32.add f64.load local.set $8 - local.get $1 + local.get $2 local.get $7 i32.add local.get $8 @@ -42667,10 +44769,10 @@ i64.const 0 end i64.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|04 end end @@ -42679,15 +44781,15 @@ i32.const 67 i32.const 13648 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> local.get $0 - local.get $4 + local.get $3 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -42697,17 +44799,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> - local.get $0 i32.const 10 i32.const 3 i32.const 67 i32.const 13760 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=16 local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -42828,128 +44930,127 @@ (local $7 i32) (local $8 f64) (local $9 f32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $2 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $4 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $4 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int64Array#set<~lib/array/Array> - i32.const 10 - i32.const 3 - i32.const 68 - i32.const 13872 - call $~lib/rt/__newArray - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $0 - local.get $1 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> - global.get $~lib/memory/__stack_pointer - i32.const 11088 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $3 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $5 + i32.store offset=8 + local.get $5 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $5 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int64Array#set<~lib/array/Array> + i32.const 10 + i32.const 3 + i32.const 68 + i32.const 13872 + call $~lib/rt/__newArray + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + local.get $0 + local.get $4 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> + global.get $~lib/memory/__stack_pointer + i32.const 11088 + i32.store offset=16 + block $folding-inner0 i32.const 11100 i32.load i32.const 3 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 24 i32.add - local.set $1 + local.set $4 i32.const 11092 i32.load local.set $6 @@ -42957,16 +45058,16 @@ i32.load local.set $7 loop $for-loop|0 - local.get $3 + local.get $2 local.get $7 i32.lt_s if - local.get $3 + local.get $2 i32.const 3 i32.shl - local.get $1 + local.get $4 i32.add - local.get $3 + local.get $2 i32.const 2 i32.shl local.get $6 @@ -42984,10 +45085,10 @@ i64.const 0 end i64.store - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|0 end end @@ -42996,69 +45097,68 @@ i32.const 68 i32.const 14032 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=16 local.get $0 - local.get $1 + local.get $2 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $0 - local.get $2 + local.get $1 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Int64Array> i32.const 10 i32.const 3 i32.const 68 i32.const 14144 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 11184 i32.store offset=16 i32.const 0 - local.set $2 + local.set $1 i32.const 11196 i32.load i32.const 2 i32.add local.get $0 - local.tee $1 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $0 i32.load offset=4 i32.const 16 i32.add - local.set $1 + local.set $2 i32.const 11188 i32.load - local.set $3 + local.set $4 i32.const 11196 i32.load local.set $6 loop $for-loop|04 - local.get $2 + local.get $1 local.get $6 i32.lt_s if - local.get $2 + local.get $4 + local.get $1 i32.const 3 i32.shl local.tee $7 - local.get $3 i32.add f64.load local.set $8 - local.get $1 + local.get $2 local.get $7 i32.add local.get $8 @@ -43073,10 +45173,10 @@ i64.const 0 end i64.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|04 end end @@ -43085,15 +45185,15 @@ i32.const 68 i32.const 14256 call $~lib/rt/__newArray - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=16 local.get $0 - local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> local.get $0 - local.get $4 + local.get $3 call $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> local.get $0 local.get $5 @@ -43103,17 +45203,17 @@ i32.store offset=16 local.get $0 call $~lib/typedarray/Int64Array#set<~lib/array/Array> - local.get $0 i32.const 10 i32.const 3 i32.const 68 i32.const 14368 call $~lib/rt/__newArray - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 i32.store offset=16 local.get $0 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43233,99 +45333,98 @@ (local $6 i32) (local $7 i32) (local $8 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i64.const 0 + i64.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + block $folding-inner0 i32.const 11020 i32.load - local.get $0 - local.tee $2 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -43333,7 +45432,7 @@ br_if $folding-inner0 local.get $2 i32.load offset=4 - local.set $2 + local.set $5 i32.const 11012 i32.load local.set $6 @@ -43341,15 +45440,15 @@ i32.load local.set $7 loop $for-loop|0 - local.get $4 + local.get $0 local.get $7 i32.lt_s if - local.get $4 + local.get $0 i32.const 2 i32.shl local.tee $8 - local.get $2 + local.get $5 i32.add local.get $6 local.get $8 @@ -43357,10 +45456,10 @@ i32.load f32.convert_i32_s f32.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|0 end end @@ -43369,17 +45468,17 @@ i32.const 61 i32.const 14480 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 local.get $0 + i32.store offset=16 local.get $2 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 - local.get $0 + local.get $2 i32.const 11088 i32.const 3 call $~lib/typedarray/Int32Array#set<~lib/array/Array> @@ -43388,24 +45487,22 @@ i32.const 61 i32.const 14592 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 local.get $0 + i32.store offset=16 local.get $2 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $6 - local.get $1 - local.tee $4 + local.set $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $0 - local.tee $2 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -43415,37 +45512,37 @@ i32.load offset=4 i32.const 24 i32.add - local.set $2 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 - local.set $1 - local.get $4 + local.set $6 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 + local.set $3 loop $for-loop|01 - local.get $4 - local.get $6 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $6 + local.get $0 i32.const 2 i32.shl - local.get $2 + local.get $5 i32.add - local.get $6 + local.get $0 i32.const 3 i32.shl - local.get $1 + local.get $6 i32.add i64.load f32.convert_i64_s f32.store - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $0 br $for-loop|01 end end @@ -43454,108 +45551,104 @@ i32.const 61 i32.const 14656 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=16 - local.get $0 - local.get $1 + local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> i32.const 0 - local.set $4 - local.get $3 - local.tee $2 + local.set $0 + local.get $1 i32.load offset=8 - local.get $0 - local.tee $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 - i32.load offset=4 - local.set $1 local.get $2 i32.load offset=4 local.set $3 - local.get $2 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|03 - local.get $2 - local.get $4 - i32.gt_s + local.get $0 + local.get $1 + i32.lt_s if - local.get $4 + local.get $0 i32.const 2 i32.shl - local.get $1 - i32.add local.get $3 - local.get $4 + i32.add + local.get $0 + local.get $5 i32.add i32.load8_u f32.convert_i32_u f32.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|03 end end i32.const 0 - local.set $2 - local.get $5 - local.tee $3 + local.set $1 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $0 - local.tee $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 16 i32.add - local.set $1 - local.get $3 + local.set $3 + local.get $4 i32.load offset=4 - local.set $5 - local.get $3 + local.set $0 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $4 loop $for-loop|05 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $2 + local.get $1 i32.const 2 i32.shl - local.get $1 + local.get $3 i32.add - local.get $2 + local.get $1 i32.const 1 i32.shl - local.get $5 + local.get $0 i32.add i32.load16_s f32.convert_i32_s f32.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|05 end end @@ -43563,63 +45656,62 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $3 + local.set $1 i32.const 11276 i32.load i32.const 7 i32.add - local.get $0 - local.tee $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 28 i32.add - local.set $1 + local.set $3 i32.const 11268 i32.load - local.set $5 + local.set $4 i32.const 11276 i32.load - local.set $2 + local.set $0 loop $for-loop|09 - local.get $2 - local.get $3 + local.get $0 + local.get $1 i32.gt_s if - local.get $3 + local.get $1 i32.const 2 i32.shl - local.get $1 - i32.add local.get $3 - local.get $5 + i32.add + local.get $1 + local.get $4 i32.add i32.load8_s f32.convert_i32_s f32.store - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|09 end end - local.get $0 i32.const 10 i32.const 2 i32.const 61 i32.const 14720 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $0 + local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -43736,99 +45828,98 @@ (local $5 i32) (local $6 i32) (local $7 i32) - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i64.const 7 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 8 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 9 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 - i32.store offset=4 - local.get $3 - i32.const 0 - i32.const 100 - call $~lib/typedarray/Uint8Array#__set - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 i32.const 1 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 2 - i32.const 102 - call $~lib/typedarray/Uint8Array#__set - local.get $3 - i32.const 3 - i32.const 103 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $5 - i32.store offset=8 - local.get $5 - i32.const 0 - i32.const 1000 - call $~lib/typedarray/Int16Array#__set - local.get $5 i32.const 1 - i32.const 1001 - call $~lib/typedarray/Int16Array#__set - local.get $5 - i32.const 2 - i32.const 1002 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 11008 - i32.store offset=16 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $2 + i64.const 0 + i64.store + local.get $2 + i64.const 0 + i64.store offset=8 + local.get $2 + i32.const 0 + i32.store offset=16 + local.get $2 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 + i32.store + local.get $3 + i32.const 0 + i64.const 7 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 1 + i64.const 8 + call $~lib/typedarray/Int64Array#__set + local.get $3 + i32.const 2 + i64.const 9 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 100 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 102 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + i32.const 103 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 + i32.store offset=8 + local.get $4 + i32.const 0 + i32.const 1000 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 + i32.const 1001 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 1002 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 11008 + i32.store offset=16 + block $folding-inner0 i32.const 11020 i32.load - local.get $0 - local.tee $2 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -43836,7 +45927,7 @@ br_if $folding-inner0 local.get $2 i32.load offset=4 - local.set $2 + local.set $5 i32.const 11012 i32.load local.set $6 @@ -43844,16 +45935,16 @@ i32.load local.set $7 loop $for-loop|0 - local.get $4 + local.get $0 local.get $7 i32.lt_s if - local.get $4 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $5 i32.add - local.get $4 + local.get $0 i32.const 2 i32.shl local.get $6 @@ -43861,10 +45952,10 @@ i32.load f64.convert_i32_s f64.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|0 end end @@ -43873,24 +45964,23 @@ i32.const 62 i32.const 14784 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 local.get $0 + i32.store offset=16 local.get $2 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 11088 i32.store offset=16 i32.const 0 - local.set $4 + local.set $0 i32.const 11100 i32.load i32.const 3 i32.add - local.get $0 - local.tee $2 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -43900,7 +45990,7 @@ i32.load offset=4 i32.const 24 i32.add - local.set $2 + local.set $5 i32.const 11092 i32.load local.set $6 @@ -43908,16 +45998,16 @@ i32.load local.set $7 loop $for-loop|04 - local.get $4 + local.get $0 local.get $7 i32.lt_s if - local.get $4 + local.get $0 i32.const 3 i32.shl - local.get $2 + local.get $5 i32.add - local.get $4 + local.get $0 i32.const 2 i32.shl local.get $6 @@ -43925,10 +46015,10 @@ f32.load f64.promote_f32 f64.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|04 end end @@ -43937,24 +46027,22 @@ i32.const 62 i32.const 14944 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 local.get $0 + i32.store offset=16 local.get $2 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 - local.set $6 - local.get $1 - local.tee $4 + local.set $0 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u i32.const 6 i32.add - local.get $0 - local.tee $2 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u @@ -43964,36 +46052,36 @@ i32.load offset=4 i32.const 48 i32.add - local.set $2 - local.get $4 + local.set $5 + local.get $3 i32.load offset=4 - local.set $1 - local.get $4 + local.set $6 + local.get $3 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 + local.set $3 loop $for-loop|06 - local.get $4 - local.get $6 - i32.gt_s + local.get $0 + local.get $3 + i32.lt_s if - local.get $6 + local.get $5 + local.get $0 i32.const 3 i32.shl local.tee $7 - local.get $2 i32.add - local.get $1 + local.get $6 local.get $7 i32.add i64.load f64.convert_i64_s f64.store - local.get $6 + local.get $0 i32.const 1 i32.add - local.set $6 + local.set $0 br $for-loop|06 end end @@ -44002,108 +46090,104 @@ i32.const 62 i32.const 15056 call $~lib/rt/__newArray - local.set $1 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=16 - local.get $0 - local.get $1 + local.get $2 + local.get $3 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> i32.const 0 - local.set $4 - local.get $3 - local.tee $2 + local.set $0 + local.get $1 i32.load offset=8 - local.get $0 - local.tee $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 - i32.load offset=4 - local.set $1 local.get $2 i32.load offset=4 local.set $3 - local.get $2 + local.get $1 + i32.load offset=4 + local.set $5 + local.get $1 i32.load offset=8 - local.set $2 + local.set $1 loop $for-loop|08 - local.get $2 - local.get $4 - i32.gt_s + local.get $0 + local.get $1 + i32.lt_s if - local.get $4 + local.get $0 i32.const 3 i32.shl - local.get $1 - i32.add local.get $3 - local.get $4 + i32.add + local.get $0 + local.get $5 i32.add i32.load8_u f64.convert_i32_u f64.store - local.get $4 + local.get $0 i32.const 1 i32.add - local.set $4 + local.set $0 br $for-loop|08 end end i32.const 0 - local.set $2 - local.get $5 - local.tee $3 + local.set $1 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u i32.const 4 i32.add - local.get $0 - local.tee $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 32 i32.add - local.set $1 - local.get $3 + local.set $3 + local.get $4 i32.load offset=4 - local.set $5 - local.get $3 + local.set $0 + local.get $4 i32.load offset=8 i32.const 1 i32.shr_u - local.set $3 + local.set $4 loop $for-loop|010 - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.lt_s if - local.get $2 + local.get $1 i32.const 3 i32.shl - local.get $1 + local.get $3 i32.add - local.get $2 + local.get $1 i32.const 1 i32.shl - local.get $5 + local.get $0 i32.add i32.load16_s f64.convert_i32_s f64.store - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 + local.set $1 br $for-loop|010 end end @@ -44111,63 +46195,62 @@ i32.const 11264 i32.store offset=16 i32.const 0 - local.set $3 + local.set $1 i32.const 11276 i32.load i32.const 7 i32.add - local.get $0 - local.tee $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.gt_s br_if $folding-inner0 - local.get $1 + local.get $2 i32.load offset=4 i32.const 56 i32.add - local.set $1 + local.set $3 i32.const 11268 i32.load - local.set $5 + local.set $4 i32.const 11276 i32.load - local.set $2 + local.set $0 loop $for-loop|014 - local.get $2 - local.get $3 + local.get $0 + local.get $1 i32.gt_s if - local.get $3 + local.get $1 i32.const 3 i32.shl - local.get $1 - i32.add local.get $3 - local.get $5 + i32.add + local.get $1 + local.get $4 i32.add i32.load8_s f64.convert_i32_s f64.store - local.get $3 + local.get $1 i32.const 1 i32.add - local.set $3 + local.set $1 br $for-loop|014 end end - local.get $0 i32.const 10 i32.const 3 i32.const 62 i32.const 15168 call $~lib/rt/__newArray - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=16 - local.get $0 + local.get $2 + local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer i32.const 20 @@ -44189,61 +46272,61 @@ (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i64) + (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 f32) - (local $10 f64) - (local $11 i32) - (local $12 i32) + (local $9 i64) + (local $10 i32) + (local $11 f32) + (local $12 f64) (local $13 i64) - (local $14 i32) - (local $15 f32) - (local $16 f64) + (local $14 f32) + (local $15 f64) + (local $16 i32) global.get $~lib/memory/__stack_pointer i32.const 32 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner35 - block $folding-inner34 - block $folding-inner33 - block $folding-inner32 - block $folding-inner31 - block $folding-inner30 - block $folding-inner29 - block $folding-inner28 - block $folding-inner27 - block $folding-inner26 - block $folding-inner25 - block $folding-inner24 - block $folding-inner23 - block $folding-inner22 - block $folding-inner21 - block $folding-inner20 - block $folding-inner19 - block $folding-inner18 - block $folding-inner17 - block $folding-inner16 - block $folding-inner15 - block $folding-inner14 - block $folding-inner13 - block $folding-inner12 - block $folding-inner11 - block $folding-inner10 - block $folding-inner9 - block $folding-inner8 - block $folding-inner7 - block $folding-inner6 - block $folding-inner5 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block $folding-inner1 - block $folding-inner0 + block $folding-inner36 + block $folding-inner35 + block $folding-inner34 + block $folding-inner33 + block $folding-inner32 + block $folding-inner31 + block $folding-inner30 + block $folding-inner29 + block $folding-inner28 + block $folding-inner27 + block $folding-inner26 + block $folding-inner25 + block $folding-inner24 + block $folding-inner23 + block $folding-inner22 + block $folding-inner21 + block $folding-inner20 + block $folding-inner19 + block $folding-inner18 + block $folding-inner17 + block $folding-inner16 + block $folding-inner15 + block $folding-inner14 + block $folding-inner13 + block $folding-inner12 + block $folding-inner11 + block $folding-inner10 + block $folding-inner9 + block $folding-inner8 + block $folding-inner7 + block $folding-inner6 + block $folding-inner5 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -44491,9 +46574,9 @@ i32.const 2 i32.const 6 call $~lib/typedarray/Float64Array#subarray - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u @@ -44507,9 +46590,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 + local.get $1 i32.load i32.sub i32.const 16 @@ -44522,7 +46605,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 32 i32.ne @@ -44536,16 +46619,16 @@ end i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 call $~lib/typedarray/Float64Array#sort@varargs drop - local.get $0 + local.get $1 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq if (result i32) - local.get $0 + local.get $1 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -44554,7 +46637,7 @@ i32.const 0 end if (result i32) - local.get $0 + local.get $1 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 6 @@ -44563,7 +46646,7 @@ i32.const 0 end if (result i32) - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Float64Array#__get f64.const 7 @@ -44637,29 +46720,29 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int8Array#constructor - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $2 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $2 i32.const 1 i32.const 1 i32.const 3 @@ -44669,12 +46752,12 @@ i32.const 15 i32.const 1728 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $2 local.get $0 - local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -44685,7 +46768,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 i32.const 0 i32.const 2147483647 @@ -44695,12 +46778,12 @@ i32.const 15 i32.const 1808 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $2 local.get $0 - local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -44711,7 +46794,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 1 i32.const 0 i32.const -3 @@ -44721,12 +46804,12 @@ i32.const 15 i32.const 1840 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $2 local.get $0 - local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -44737,7 +46820,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 2 i32.const -2 i32.const 2147483647 @@ -44747,12 +46830,12 @@ i32.const 15 i32.const 1872 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $2 local.get $0 - local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -44763,7 +46846,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $2 i32.const 0 i32.const 1 i32.const 0 @@ -44773,12 +46856,12 @@ i32.const 15 i32.const 1904 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $2 local.get $0 - local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -44790,7 +46873,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray @@ -44845,12 +46928,12 @@ i32.const 15 i32.const 1936 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -44866,12 +46949,12 @@ i32.const 15 i32.const 1968 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $2 local.get $0 - local.get $1 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -44885,65 +46968,65 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $2 + local.tee $4 i32.store offset=8 - local.get $2 + local.get $4 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $4 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $4 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $4 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $4 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set - local.get $2 + local.get $4 i32.load offset=4 - local.set $4 + local.set $2 i32.const 1 - local.get $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 1 i32.gt_u select - local.set $0 + local.set $1 i32.const 3 - local.get $1 - local.get $1 + local.get $0 + local.get $0 i32.const 3 i32.gt_u select - local.set $1 + local.set $0 loop $for-loop|0 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $2 i32.add i32.const 1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0 end end @@ -44956,7 +47039,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -44968,34 +47051,34 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.load offset=4 - local.set $4 + local.set $2 i32.const 0 - local.get $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 select - local.set $1 + local.set $0 loop $for-loop|01 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $2 i32.add i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|01 end end @@ -45008,7 +47091,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45020,44 +47103,44 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.load offset=4 - local.set $4 + local.set $2 i32.const 0 - local.get $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 select - local.set $0 - local.get $1 + local.set $1 + local.get $0 i32.const 3 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 + local.set $0 loop $for-loop|03 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $2 i32.add i32.const 1 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|03 end end @@ -45070,7 +47153,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45082,39 +47165,39 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.load offset=4 - local.set $4 - local.get $2 + local.set $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.const 2 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 + local.set $0 loop $for-loop|05 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $4 + local.get $2 i32.add i32.const 2 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|05 end end @@ -45127,7 +47210,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45139,41 +47222,41 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $4 i32.load offset=4 - local.set $4 + local.set $2 i32.const 1 - local.get $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 1 i32.gt_u select - local.set $0 + local.set $1 i32.const 0 - local.get $1 - local.get $1 + local.get $0 + local.get $0 select - local.set $1 + local.set $0 loop $for-loop|07 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $4 + local.get $2 i32.add i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|07 end end @@ -45186,7 +47269,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45199,44 +47282,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $4 + local.tee $3 i32.store offset=12 - local.get $4 + local.get $3 i32.load offset=4 - local.set $5 + local.set $2 i32.const 0 - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 select - local.set $1 + local.set $0 loop $for-loop|09 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if - local.get $1 + local.get $0 i32.const 2 i32.shl - local.get $5 + local.get $2 i32.add i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|09 end end - local.get $4 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u @@ -45250,9 +47333,9 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.load offset=4 - local.get $4 + local.get $3 i32.load i32.sub i32.const 4 @@ -45265,7 +47348,7 @@ call $~lib/builtins/abort unreachable end - local.get $4 + local.get $3 i32.load offset=8 i32.const 12 i32.ne @@ -45286,7 +47369,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 + local.get $3 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45307,7 +47390,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 + local.get $4 local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz @@ -45528,36 +47611,36 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 2147483647 @@ -45571,12 +47654,12 @@ i32.const 16 i32.const 2320 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45588,13 +47671,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 2147483647 @@ -45608,12 +47691,12 @@ i32.const 16 i32.const 2368 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45625,13 +47708,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 2147483647 @@ -45645,12 +47728,12 @@ i32.const 16 i32.const 2416 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45662,13 +47745,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 2 i32.const 2 i32.const 2147483647 @@ -45682,12 +47765,12 @@ i32.const 16 i32.const 2464 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45699,13 +47782,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 4 @@ -45719,12 +47802,12 @@ i32.const 16 i32.const 2512 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45736,13 +47819,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 4 @@ -45756,12 +47839,12 @@ i32.const 16 i32.const 2560 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45773,13 +47856,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 4 @@ -45793,12 +47876,12 @@ i32.const 16 i32.const 2608 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45810,13 +47893,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const 2147483647 @@ -45830,12 +47913,12 @@ i32.const 16 i32.const 2656 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45847,13 +47930,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const -1 @@ -45867,12 +47950,12 @@ i32.const 16 i32.const 2704 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45884,13 +47967,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -2 @@ -45904,12 +47987,12 @@ i32.const 16 i32.const 2752 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45921,13 +48004,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -1 @@ -45941,12 +48024,12 @@ i32.const 16 i32.const 2800 call $~lib/rt/__newArray - local.set $2 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store offset=4 local.get $1 - local.get $2 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45958,7 +48041,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice @@ -45969,21 +48052,21 @@ i32.const -3 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2848 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45997,36 +48080,36 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $2 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $2 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $2 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $2 + local.tee $0 i32.store offset=16 - local.get $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -46040,9 +48123,9 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=4 - local.get $2 + local.get $0 i32.load i32.sub i32.const 4 @@ -46055,7 +48138,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.load offset=8 i32.const 12 i32.ne @@ -46068,7 +48151,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#slice @@ -46140,13 +48223,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -46159,7 +48242,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -46173,9 +48256,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub if @@ -46186,7 +48269,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 4 i32.ne @@ -46199,14 +48282,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=24 local.get $0 - local.get $1 + local.get $2 i32.eq if i32.const 0 @@ -46216,11 +48299,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u @@ -46233,14 +48316,14 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load i32.sub i32.ne @@ -46252,10 +48335,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 - i32.load offset=8 local.get $0 i32.load offset=8 + local.get $2 + i32.load offset=8 i32.ne if i32.const 0 @@ -46272,7 +48355,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46280,59 +48363,57 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 2896 i32.store offset=4 - i32.const 0 - local.set $2 - local.get $0 + local.get $3 i32.load offset=4 - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.load offset=8 - local.set $4 - loop $for-loop|010 - local.get $3 - local.get $4 - i32.lt_s + local.set $1 + loop $for-loop|011 + local.get $1 + local.get $5 + i32.gt_s if - local.get $1 - local.get $3 + local.get $2 + local.get $5 i32.add i32.load8_s - local.set $5 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $2 + local.get $6 + local.get $0 local.get $5 local.get $3 - local.get $0 i32.const 2896 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $3 + local.set $6 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|010 + local.set $5 + br $for-loop|011 end end - local.get $2 + local.get $6 i32.const 255 i32.and i32.const 6 @@ -46349,7 +48430,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46357,17 +48438,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -46375,43 +48456,43 @@ i32.const 2928 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 - local.set $2 - local.get $0 + local.set $6 + local.get $3 i32.load offset=4 - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.load offset=8 - local.set $4 - loop $for-loop|04 - local.get $3 - local.get $4 - i32.lt_s + local.set $1 + loop $for-loop|010 + local.get $1 + local.get $5 + i32.gt_s if - local.get $1 - local.get $3 + local.get $2 + local.get $5 i32.add i32.load8_u - local.set $5 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $2 + local.get $6 + local.get $0 local.get $5 local.get $3 - local.get $0 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $3 + local.set $6 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|04 + local.set $5 + br $for-loop|010 end end - local.get $2 + local.get $6 i32.const 255 i32.and i32.const 6 @@ -46428,7 +48509,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46436,17 +48517,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -46454,43 +48535,43 @@ i32.const 2960 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 - local.set $2 - local.get $0 + local.set $6 + local.get $3 i32.load offset=4 - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.load offset=8 - local.set $4 - loop $for-loop|08 - local.get $3 - local.get $4 - i32.lt_s + local.set $1 + loop $for-loop|013 + local.get $1 + local.get $5 + i32.gt_s if - local.get $1 - local.get $3 + local.get $2 + local.get $5 i32.add i32.load8_u - local.set $5 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $2 + local.get $6 + local.get $0 local.get $5 local.get $3 - local.get $0 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $3 + local.set $6 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|08 + local.set $5 + br $for-loop|013 end end - local.get $2 + local.get $6 i32.const 255 i32.and i32.const 6 @@ -46507,7 +48588,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46515,17 +48596,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set @@ -46533,47 +48614,47 @@ i32.const 2992 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 - local.set $2 - local.get $0 + local.set $6 + local.get $3 i32.load offset=4 - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|01011 - local.get $3 - local.get $4 - i32.lt_s + local.set $1 + loop $for-loop|014 + local.get $1 + local.get $5 + i32.gt_s if - local.get $3 + local.get $5 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.load16_s - local.set $5 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $2 + local.get $6 + local.get $0 local.get $5 local.get $3 - local.get $0 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $3 + local.set $6 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|01011 + local.set $5 + br $for-loop|014 end end - local.get $2 + local.get $6 i32.const 65535 i32.and i32.const 6 @@ -46590,7 +48671,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46598,17 +48679,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set @@ -46616,47 +48697,47 @@ i32.const 3024 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 - local.set $2 - local.get $0 + local.set $6 + local.get $3 i32.load offset=4 - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.load offset=8 i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|013 - local.get $3 - local.get $4 - i32.lt_s + local.set $1 + loop $for-loop|016 + local.get $1 + local.get $5 + i32.gt_s if - local.get $3 + local.get $5 i32.const 1 i32.shl - local.get $1 + local.get $2 i32.add i32.load16_u - local.set $5 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $2 + local.get $6 + local.get $0 local.get $5 local.get $3 - local.get $0 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $3 + local.set $6 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|013 + local.set $5 + br $for-loop|016 end end - local.get $2 + local.get $6 i32.const 65535 i32.and i32.const 6 @@ -46673,7 +48754,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46681,17 +48762,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set @@ -46699,47 +48780,47 @@ i32.const 3056 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 - local.set $2 - local.get $0 + local.set $6 + local.get $3 i32.load offset=4 - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|016 - local.get $3 - local.get $4 - i32.lt_s + local.set $1 + loop $for-loop|018 + local.get $1 + local.get $5 + i32.gt_s if - local.get $3 + local.get $5 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load - local.set $5 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $2 + local.get $6 + local.get $0 local.get $5 local.get $3 - local.get $0 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $3 + local.set $6 + local.get $5 i32.const 1 i32.add - local.set $3 - br $for-loop|016 + local.set $5 + br $for-loop|018 end end - local.get $2 + local.get $6 i32.const 6 i32.ne br_if $folding-inner1 @@ -46754,7 +48835,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46762,17 +48843,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + local.tee $3 i32.store - local.get $0 + local.get $3 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $3 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $3 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set @@ -46780,47 +48861,47 @@ i32.const 3088 i32.store offset=4 i32.const 0 - local.set $3 + local.set $5 i32.const 0 - local.set $2 - local.get $0 + local.set $6 + local.get $3 i32.load offset=4 - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 + local.set $1 loop $for-loop|021 - local.get $3 - local.get $4 - i32.lt_s + local.get $1 + local.get $5 + i32.gt_s if - local.get $3 + local.get $5 i32.const 2 i32.shl - local.get $1 + local.get $2 i32.add i32.load - local.set $5 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $2 + local.get $6 + local.get $0 local.get $5 local.get $3 - local.get $0 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $2 - local.get $3 + local.set $6 + local.get $5 i32.const 1 i32.add - local.set $3 + local.set $5 br $for-loop|021 end end - local.get $2 + local.get $6 i32.const 6 i32.ne br_if $folding-inner1 @@ -46835,7 +48916,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46843,17 +48924,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -46861,45 +48942,45 @@ i32.const 3120 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $5 + local.get $2 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - loop $for-loop|024 + local.set $0 + loop $for-loop|023 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 + local.get $5 i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add i64.load - local.set $13 + local.set $9 i32.const 4 global.set $~argumentsLength - local.get $6 local.get $13 - local.get $0 - local.get $1 + local.get $9 + local.get $5 + local.get $2 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $6 - local.get $0 + local.set $13 + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|024 + local.set $5 + br $for-loop|023 end end - local.get $6 + local.get $13 i64.const 6 i64.ne br_if $folding-inner1 @@ -46914,7 +48995,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -46922,17 +49003,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $2 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -46940,47 +49021,47 @@ i32.const 3152 i32.store offset=4 i32.const 0 - local.set $0 + local.set $5 i64.const 0 - local.set $6 - local.get $1 + local.set $13 + local.get $2 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - loop $for-loop|027 + local.set $0 + loop $for-loop|025 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 + local.get $5 i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add i64.load - local.set $13 + local.set $9 i32.const 4 global.set $~argumentsLength - local.get $6 local.get $13 - local.get $0 - local.get $1 + local.get $9 + local.get $5 + local.get $2 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $6 - local.get $0 + local.set $13 + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|027 + local.set $5 + br $for-loop|025 end end - local.get $6 + local.get $13 i64.const 6 i64.ne br_if $folding-inner1 @@ -46995,7 +49076,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47003,17 +49084,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $2 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $2 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -47021,45 +49102,45 @@ i32.const 3184 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $5 + local.get $2 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 - loop $for-loop|030 + local.set $0 + loop $for-loop|027 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 + local.get $5 i32.const 2 i32.shl - local.get $2 + local.get $1 i32.add f32.load - local.set $15 + local.set $11 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $15 - local.get $0 - local.get $1 + local.get $14 + local.get $11 + local.get $5 + local.get $2 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $9 - local.get $0 + local.set $14 + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|030 + local.set $5 + br $for-loop|027 end end - local.get $9 + local.get $14 f32.const 6 f32.ne br_if $folding-inner1 @@ -47074,7 +49155,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -47082,17 +49163,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $2 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $2 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -47100,45 +49181,45 @@ i32.const 3216 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $5 + local.get $2 i32.load offset=4 - local.set $2 - local.get $1 + local.set $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.set $3 - loop $for-loop|033 + local.set $0 + loop $for-loop|029 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 + local.get $5 i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add f64.load - local.set $16 + local.set $12 i32.const 4 global.set $~argumentsLength - local.get $10 - local.get $16 - local.get $0 - local.get $1 + local.get $15 + local.get $12 + local.get $5 + local.get $2 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $10 - local.get $0 + local.set $15 + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|033 + local.set $5 + br $for-loop|029 end end - local.get $10 + local.get $15 f64.const 6 f64.ne br_if $folding-inner1 @@ -47153,7 +49234,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47204,7 +49285,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47255,7 +49336,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47306,7 +49387,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47357,7 +49438,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47408,7 +49489,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47459,7 +49540,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47510,7 +49591,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47561,7 +49642,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47612,7 +49693,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47663,7 +49744,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i32.const 0 @@ -47684,511 +49765,27 @@ local.get $0 i32.const 2 f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#at - f64.const 1 - f64.ne - br_if $folding-inner2 - local.get $0 - i32.const -1 - call $~lib/typedarray/Float64Array#at - f64.const 3 - f64.ne - br_if $folding-inner3 - local.get $0 - i32.const -3 - call $~lib/typedarray/Float64Array#at - f64.const 1 - f64.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.store offset=4 - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.sub - local.set $2 - loop $for-loop|039 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_s - local.set $4 - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $2 - local.get $1 - i32.const 3248 - i32.load - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|039 - end - end - local.get $0 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3280 - i32.store offset=4 - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.sub - local.set $2 - loop $for-loop|042 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_u - local.set $4 - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $2 - local.get $1 - i32.const 3280 - i32.load - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|042 - end - end - local.get $0 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - i32.const 3312 - i32.store offset=4 - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.sub - local.set $2 - loop $for-loop|046 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $2 - local.get $3 - i32.add - i32.load8_u - local.set $4 - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $2 - local.get $1 - i32.const 3312 - i32.load - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|046 - end - end - local.get $0 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3344 - i32.store offset=4 - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - local.set $2 - loop $for-loop|049 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $2 - i32.const 1 - i32.shl - local.get $3 - i32.add - i32.load16_s - local.set $4 - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $2 - local.get $1 - i32.const 3344 - i32.load - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|049 - end - end - local.get $0 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3376 - i32.store offset=4 - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - local.set $2 - loop $for-loop|052 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $2 - i32.const 1 - i32.shl - local.get $3 - i32.add - i32.load16_u - local.set $4 - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $2 - local.get $1 - i32.const 3376 - i32.load - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|052 - end - end - local.get $0 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store offset=4 - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.sub - local.set $2 - loop $for-loop|055 - local.get $2 - i32.const 0 - i32.ge_s - if - local.get $2 - i32.const 2 - i32.shl - local.get $3 - i32.add - i32.load - local.set $4 - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $4 - local.get $2 - local.get $1 - i32.const 3408 - i32.load - call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $for-loop|055 - end - end + call $~lib/typedarray/Float64Array#__set local.get $0 - i32.const 6 - i32.ne - br_if $folding-inner5 + i32.const 0 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.ne + br_if $folding-inner2 + local.get $0 + i32.const -1 + call $~lib/typedarray/Float64Array#at + f64.const 3 + f64.ne + br_if $folding-inner3 + local.get $0 + i32.const -3 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.ne + br_if $folding-inner4 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -48198,73 +49795,71 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Int8Array#__set + local.get $2 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Int8Array#__set + local.get $2 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3440 + i32.const 3248 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $5 + local.get $2 i32.load offset=4 - local.set $3 - local.get $1 + local.set $1 + local.get $2 i32.load offset=8 - i32.const 2 - i32.shr_u i32.const 1 i32.sub - local.set $2 - loop $for-loop|058 - local.get $2 + local.set $3 + loop $for-loop|031 + local.get $3 i32.const 0 i32.ge_s if - local.get $2 - i32.const 2 - i32.shl + local.get $1 local.get $3 i32.add - i32.load - local.set $4 + i32.load8_s + local.set $0 i32.const 4 global.set $~argumentsLength + local.get $5 local.get $0 - local.get $4 + local.get $3 local.get $2 - local.get $1 - i32.const 3440 + i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 - local.get $2 + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $2 - br $for-loop|058 + local.set $3 + br $for-loop|031 end end - local.get $0 + local.get $5 + i32.const 255 + i32.and i32.const 6 i32.ne br_if $folding-inner5 @@ -48279,76 +49874,73 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $0 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3472 + i32.const 3280 i32.store offset=4 - i64.const 0 - local.set $6 - local.get $0 - local.tee $1 + i32.const 0 + local.set $5 + local.get $2 i32.load offset=4 - local.set $2 - local.get $0 + local.set $1 + local.get $2 i32.load offset=8 - i32.const 3 - i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|061 - local.get $0 + local.set $3 + loop $for-loop|033 + local.get $3 i32.const 0 i32.ge_s if - local.get $0 - i32.const 3 - i32.shl - local.get $2 + local.get $1 + local.get $3 i32.add - i64.load - local.set $13 + i32.load8_u + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $13 + local.get $5 local.get $0 - local.get $1 - i32.const 3472 + local.get $3 + local.get $2 + i32.const 3280 i32.load - call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $6 - local.get $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $for-loop|061 + local.set $3 + br $for-loop|033 end end - local.get $6 - i64.const 6 - i64.ne + local.get $5 + i32.const 255 + i32.and + i32.const 6 + i32.ne br_if $folding-inner5 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -48361,76 +49953,73 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $0 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 3504 + i32.const 3312 i32.store offset=4 - i64.const 0 - local.set $6 - local.get $0 - local.tee $1 + i32.const 0 + local.set $5 + local.get $2 i32.load offset=4 - local.set $2 - local.get $0 + local.set $1 + local.get $2 i32.load offset=8 - i32.const 3 - i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|064 - local.get $0 + local.set $3 + loop $for-loop|036 + local.get $3 i32.const 0 i32.ge_s if - local.get $0 - i32.const 3 - i32.shl - local.get $2 + local.get $1 + local.get $3 i32.add - i64.load - local.set $13 + i32.load8_u + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $6 - local.get $13 + local.get $5 local.get $0 - local.get $1 - i32.const 3504 + local.get $3 + local.get $2 + i32.const 3312 i32.load - call_indirect $0 (type $i64_i64_i32_i32_=>_i64) - local.set $6 - local.get $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $for-loop|064 + local.set $3 + br $for-loop|036 end end - local.get $6 - i64.const 6 - i64.ne + local.get $5 + i32.const 255 + i32.and + i32.const 6 + i32.ne br_if $folding-inner5 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -48443,76 +50032,77 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 1 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Int16Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3536 + i32.const 3344 i32.store offset=4 - f32.const 0 - local.set $9 - local.get $0 - local.tee $1 + i32.const 0 + local.set $5 + local.get $2 i32.load offset=4 - local.set $2 - local.get $0 + local.set $1 + local.get $2 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|067 - local.get $0 + local.set $3 + loop $for-loop|038 + local.get $3 i32.const 0 i32.ge_s if - local.get $0 - i32.const 2 + local.get $3 + i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - f32.load - local.set $15 + i32.load16_s + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $9 - local.get $15 + local.get $5 local.get $0 - local.get $1 - i32.const 3536 + local.get $3 + local.get $2 + i32.const 3344 i32.load - call_indirect $0 (type $f32_f32_i32_i32_=>_f32) - local.set $9 - local.get $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $for-loop|067 + local.set $3 + br $for-loop|038 end end - local.get $9 - f32.const 6 - f32.ne + local.get $5 + i32.const 65535 + i32.and + i32.const 6 + i32.ne br_if $folding-inner5 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -48525,256 +50115,244 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 + call $~lib/typedarray/Uint16Array#__set + local.get $2 + i32.const 1 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint16Array#__set + local.get $2 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3568 + i32.const 3376 i32.store offset=4 - f64.const 0 - local.set $10 - local.get $0 - local.tee $1 + i32.const 0 + local.set $5 + local.get $2 i32.load offset=4 - local.set $2 - local.get $0 + local.set $1 + local.get $2 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 - loop $for-loop|070 - local.get $0 + local.set $3 + loop $for-loop|040 + local.get $3 i32.const 0 i32.ge_s if - local.get $0 - i32.const 3 + local.get $3 + i32.const 1 i32.shl - local.get $2 + local.get $1 i32.add - f64.load - local.set $16 + i32.load16_u + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $10 - local.get $16 + local.get $5 local.get $0 - local.get $1 - i32.const 3568 + local.get $3 + local.get $2 + i32.const 3376 i32.load - call_indirect $0 (type $f64_f64_i32_i32_=>_f64) - local.set $10 - local.get $0 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $5 + local.get $3 i32.const 1 i32.sub - local.set $0 - br $for-loop|070 + local.set $3 + br $for-loop|040 end end - local.get $10 - f64.const 6 - f64.ne + local.get $5 + i32.const 65535 + i32.and + i32.const 6 + i32.ne br_if $folding-inner5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor + call $~lib/typedarray/Int32Array#constructor local.tee $2 i32.store local.get $2 i32.const 0 i32.const 1 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set local.get $2 i32.const 1 i32.const 2 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set local.get $2 i32.const 2 i32.const 3 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3600 + i32.const 3408 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $2 - i32.load offset=8 - local.set $4 + i32.const 0 + local.set $5 local.get $2 i32.load offset=4 - local.set $7 - local.get $0 - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - loop $for-loop|012 - local.get $1 - local.get $4 - i32.lt_s + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $3 + loop $for-loop|042 + local.get $3 + i32.const 0 + i32.ge_s if + local.get $3 + i32.const 2 + i32.shl local.get $1 - local.get $7 i32.add - i32.load8_s - local.set $8 - i32.const 3 + i32.load + local.set $0 + i32.const 4 global.set $~argumentsLength - local.get $1 + local.get $5 + local.get $0 local.get $3 - i32.add - local.get $8 - local.get $1 local.get $2 - i32.const 3600 + i32.const 3408 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store8 - local.get $1 + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $5 + local.get $3 i32.const 1 - i32.add - local.set $1 - br $for-loop|012 + i32.sub + local.set $3 + br $for-loop|042 end end - local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - br_if $folding-inner6 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - br_if $folding-inner7 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 9 + local.get $5 + i32.const 6 i32.ne - br_if $folding-inner8 + br_if $folding-inner5 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor + call $~lib/typedarray/Uint32Array#constructor local.tee $2 i32.store local.get $2 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $2 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set local.get $2 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3632 + i32.const 3440 i32.store offset=4 + i32.const 0 + local.set $5 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $3 + loop $for-loop|044 + local.get $3 + i32.const 0 + i32.ge_s + if + local.get $3 + i32.const 2 + i32.shl + local.get $1 + i32.add + i32.load + local.set $0 + i32.const 4 + global.set $~argumentsLength + local.get $5 + local.get $0 + local.get $3 + local.get $2 + i32.const 3440 + i32.load + call_indirect $0 (type $i32_i32_i32_i32_=>_i32) + local.set $5 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $for-loop|044 + end + end + local.get $5 + i32.const 6 + i32.ne + br_if $folding-inner5 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -48782,136 +50360,161 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $2 - i32.load offset=8 - local.set $4 - local.get $2 - i32.load offset=4 - local.set $7 local.get $0 - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3472 i32.store offset=4 - loop $for-loop|014 - local.get $1 - local.get $4 - i32.lt_s + i64.const 0 + local.set $13 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $3 + loop $for-loop|046 + local.get $3 + i32.const 0 + i32.ge_s if - local.get $1 - local.get $7 - i32.add - i32.load8_u - local.set $8 + local.get $3 i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $9 + i32.const 4 global.set $~argumentsLength - local.get $1 + local.get $13 + local.get $9 local.get $3 - i32.add - local.get $8 local.get $1 - local.get $2 - i32.const 3632 + i32.const 3472 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store8 - local.get $1 + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $13 + local.get $3 i32.const 1 - i32.add - local.set $1 - br $for-loop|014 + i32.sub + local.set $3 + br $for-loop|046 end end - local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 + local.get $13 + i64.const 6 + i64.ne + br_if $folding-inner5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.ne - br_if $folding-inner6 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 - i32.ne - br_if $folding-inner7 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 9 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 i32.store - local.get $2 + local.get $1 i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $2 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3664 + i32.const 3504 i32.store offset=4 + i64.const 0 + local.set $13 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $3 + loop $for-loop|048 + local.get $3 + i32.const 0 + i32.ge_s + if + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + i64.load + local.set $9 + i32.const 4 + global.set $~argumentsLength + local.get $13 + local.get $9 + local.get $3 + local.get $1 + i32.const 3504 + i32.load + call_indirect $0 (type $i64_i64_i32_i32_=>_i64) + local.set $13 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $for-loop|048 + end + end + local.get $13 + i64.const 6 + i64.ne + br_if $folding-inner5 global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -48919,100 +50522,163 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store - local.get $2 - i32.load offset=8 - local.set $4 - local.get $2 - i32.load offset=4 - local.set $7 local.get $0 - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $1 i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 3536 i32.store offset=4 - loop $for-loop|015 - local.get $1 - local.get $4 - i32.lt_s + f32.const 0 + local.set $14 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $3 + loop $for-loop|050 + local.get $3 + i32.const 0 + i32.ge_s if - local.get $1 - local.get $7 + local.get $3 + i32.const 2 + i32.shl + local.get $0 i32.add - i32.load8_u - local.set $8 - i32.const 3 + f32.load + local.set $11 + i32.const 4 global.set $~argumentsLength - local.get $1 + local.get $14 + local.get $11 local.get $3 - i32.add - local.get $8 local.get $1 - local.get $2 - i32.const 3664 + i32.const 3536 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store8 - local.get $1 + call_indirect $0 (type $f32_f32_i32_i32_=>_f32) + local.set $14 + local.get $3 i32.const 1 - i32.add - local.set $1 - br $for-loop|015 + i32.sub + local.set $3 + br $for-loop|050 end end - local.get $0 - local.get $3 - i32.store - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - local.get $0 - local.get $3 - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 + local.get $14 + f32.const 6 + f32.ne + br_if $folding-inner5 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store local.get $0 - i32.store offset=8 - local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store + local.get $1 i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - br_if $folding-inner6 - local.get $0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.ne - br_if $folding-inner7 - local.get $0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 9 - i32.ne - br_if $folding-inner8 + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 3568 + i32.store offset=4 + f64.const 0 + local.set $15 + local.get $1 + i32.load offset=4 + local.set $0 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $3 + loop $for-loop|052 + local.get $3 + i32.const 0 + i32.ge_s + if + local.get $3 + i32.const 3 + i32.shl + local.get $0 + i32.add + f64.load + local.set $12 + i32.const 4 + global.set $~argumentsLength + local.get $15 + local.get $12 + local.get $3 + local.get $1 + i32.const 3568 + i32.load + call_indirect $0 (type $f64_f64_i32_i32_=>_f64) + local.set $15 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $for-loop|052 + end + end + local.get $15 + f64.const 6 + f64.ne + br_if $folding-inner5 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49020,7 +50686,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49030,23 +50696,23 @@ i32.store offset=8 local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 + call $~lib/typedarray/Int8Array#__set + local.get $0 i32.const 1 i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 + call $~lib/typedarray/Int8Array#__set + local.get $0 i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3696 + i32.const 3600 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -49056,108 +50722,100 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u local.set $4 - local.get $1 - i32.load offset=4 - local.set $7 local.get $0 + i32.load offset=4 + local.set $2 + local.get $1 i32.const 12 - i32.const 6 + i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer local.get $4 - i32.const 1 - i32.shl - local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $6 i32.store offset=4 - loop $for-loop|017 - local.get $2 + loop $for-loop|02 local.get $4 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $7 local.get $2 - i32.const 1 - i32.shl - local.tee $11 + local.get $5 i32.add - i32.load16_s - local.set $14 + i32.load8_s + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $11 + local.get $5 + local.get $6 i32.add - local.get $14 - local.get $2 local.get $1 - i32.const 3696 + local.get $5 + local.get $0 + i32.const 3600 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store16 - local.get $2 + i32.store8 + local.get $5 i32.const 1 i32.add - local.set $2 - br $for-loop|017 + local.set $5 + br $for-loop|02 end end - local.get $0 - local.get $3 + local.get $7 + local.get $6 i32.store - local.get $0 - local.get $3 + local.get $7 + local.get $6 call $~lib/rt/itcms/__link - local.get $0 - local.get $3 + local.get $7 + local.get $6 i32.store offset=4 - local.get $0 - local.get $8 + local.get $7 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store offset=8 - local.get $0 + local.get $7 i32.const 0 - call $~lib/typedarray/Int16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $0 + br_if $folding-inner20 + local.get $7 i32.const 1 - call $~lib/typedarray/Int16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $0 + br_if $folding-inner21 + local.get $7 i32.const 2 - call $~lib/typedarray/Int16Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49165,7 +50823,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49175,23 +50833,23 @@ i32.store offset=8 local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3728 + i32.const 3632 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -49201,108 +50859,100 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i32.load offset=8 - i32.const 1 - i32.shr_u local.set $4 - local.get $1 - i32.load offset=4 - local.set $7 local.get $0 + i32.load offset=4 + local.set $2 + local.get $1 i32.const 12 - i32.const 7 + i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer local.get $4 - i32.const 1 - i32.shl - local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $6 i32.store offset=4 - loop $for-loop|018 - local.get $2 + loop $for-loop|04 local.get $4 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $7 local.get $2 - i32.const 1 - i32.shl - local.tee $11 + local.get $5 i32.add - i32.load16_u - local.set $14 + i32.load8_u + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $11 + local.get $5 + local.get $6 i32.add - local.get $14 - local.get $2 local.get $1 - i32.const 3728 + local.get $5 + local.get $0 + i32.const 3632 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store16 - local.get $2 + i32.store8 + local.get $5 i32.const 1 i32.add - local.set $2 - br $for-loop|018 + local.set $5 + br $for-loop|04 end end - local.get $0 - local.get $3 + local.get $7 + local.get $6 i32.store - local.get $0 - local.get $3 + local.get $7 + local.get $6 call $~lib/rt/itcms/__link - local.get $0 - local.get $3 + local.get $7 + local.get $6 i32.store offset=4 - local.get $0 - local.get $8 + local.get $7 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store offset=8 - local.get $0 + local.get $7 i32.const 0 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $0 + br_if $folding-inner20 + local.get $7 i32.const 1 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $0 + br_if $folding-inner21 + local.get $7 i32.const 2 - call $~lib/typedarray/Uint16Array#__get + call $~lib/typedarray/Uint8Array#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $2 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49310,7 +50960,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49320,23 +50970,23 @@ i32.store offset=8 local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 i32.const 1 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 3760 + i32.const 3664 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -49346,108 +50996,98 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i32.load offset=8 - i32.const 2 - i32.shr_u local.set $4 - local.get $1 - i32.load offset=4 - local.set $7 local.get $0 + i32.load offset=4 + local.set $2 + local.get $1 i32.const 12 - i32.const 8 + i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer local.get $4 - i32.const 2 - i32.shl - local.tee $8 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $6 i32.store offset=4 - loop $for-loop|019 - local.get $2 + loop $for-loop|06 local.get $4 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $7 local.get $2 - i32.const 2 - i32.shl - local.tee $11 + local.get $5 i32.add - i32.load - local.set $14 + i32.load8_u + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $11 + local.get $5 + local.get $6 i32.add - local.get $14 - local.get $2 local.get $1 - i32.const 3760 + local.get $5 + local.get $0 + i32.const 3664 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store - local.get $2 + i32.store8 + local.get $5 i32.const 1 i32.add - local.set $2 - br $for-loop|019 + local.set $5 + br $for-loop|06 end end - local.get $0 - local.get $3 + local.get $7 + local.get $6 i32.store - local.get $0 - local.get $3 + local.get $7 + local.get $6 call $~lib/rt/itcms/__link - local.get $0 - local.get $3 + local.get $7 + local.get $6 i32.store offset=4 - local.get $0 - local.get $8 + local.get $7 + local.get $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store offset=8 - local.get $0 + local.get $7 i32.const 0 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $0 + br_if $folding-inner20 + local.get $7 i32.const 1 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $0 + br_if $folding-inner21 + local.get $7 i32.const 2 - call $~lib/typedarray/Int32Array#__get + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49455,7 +51095,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49465,23 +51105,23 @@ i32.store offset=8 local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Int16Array#__set + local.get $0 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3792 + i32.const 3696 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -49491,108 +51131,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u + local.set $5 + local.get $0 + i32.load offset=4 local.set $4 local.get $1 - i32.load offset=4 - local.set $7 - local.get $0 i32.const 12 - i32.const 9 + i32.const 6 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 2 + local.get $5 + i32.const 1 i32.shl - local.tee $8 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store offset=4 - loop $for-loop|020 - local.get $2 - local.get $4 - i32.lt_s + loop $for-loop|08 + local.get $5 + local.get $8 + i32.gt_s if - local.get $7 - local.get $2 - i32.const 2 + local.get $4 + local.get $8 + i32.const 1 i32.shl - local.tee $11 + local.tee $2 i32.add - i32.load - local.set $14 + i32.load16_s + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $11 - i32.add - local.get $14 local.get $2 + local.get $7 + i32.add local.get $1 - i32.const 3792 + local.get $8 + local.get $0 + i32.const 3696 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.store - local.get $2 + i32.store16 + local.get $8 i32.const 1 i32.add - local.set $2 - br $for-loop|020 + local.set $8 + br $for-loop|08 end end - local.get $0 - local.get $3 + local.get $10 + local.get $7 i32.store - local.get $0 - local.get $3 + local.get $10 + local.get $7 call $~lib/rt/itcms/__link - local.get $0 - local.get $3 + local.get $10 + local.get $7 i32.store offset=4 - local.get $0 - local.get $8 + local.get $10 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $10 i32.store offset=8 - local.get $0 + local.get $10 i32.const 0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner6 - local.get $0 + br_if $folding-inner20 + local.get $10 i32.const 1 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int16Array#__get i32.const 4 i32.ne - br_if $folding-inner7 - local.get $0 + br_if $folding-inner21 + local.get $10 i32.const 2 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int16Array#__get i32.const 9 i32.ne - br_if $folding-inner8 + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $2 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49600,7 +51240,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49610,23 +51250,23 @@ i32.store offset=8 local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3824 + i32.const 3728 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -49636,108 +51276,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u + local.set $5 + local.get $0 + i32.load offset=4 local.set $4 local.get $1 - i32.load offset=4 - local.set $7 - local.get $0 i32.const 12 - i32.const 10 + i32.const 7 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 3 + local.get $5 + i32.const 1 i32.shl - local.tee $8 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store offset=4 - loop $for-loop|022 - local.get $2 - local.get $4 - i32.lt_s + loop $for-loop|012 + local.get $5 + local.get $8 + i32.gt_s if - local.get $7 - local.get $2 - i32.const 3 + local.get $4 + local.get $8 + i32.const 1 i32.shl - local.tee $11 + local.tee $2 i32.add - i64.load - local.set $6 + i32.load16_u + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $11 - i32.add - local.get $6 local.get $2 + local.get $7 + i32.add local.get $1 - i32.const 3824 + local.get $8 + local.get $0 + i32.const 3728 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i64) - i64.store - local.get $2 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store16 + local.get $8 i32.const 1 i32.add - local.set $2 - br $for-loop|022 + local.set $8 + br $for-loop|012 end end - local.get $0 - local.get $3 + local.get $10 + local.get $7 i32.store - local.get $0 - local.get $3 + local.get $10 + local.get $7 call $~lib/rt/itcms/__link - local.get $0 - local.get $3 + local.get $10 + local.get $7 i32.store offset=4 - local.get $0 - local.get $8 + local.get $10 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $10 i32.store offset=8 - local.get $0 + local.get $10 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - br_if $folding-inner6 - local.get $0 + call $~lib/typedarray/Uint16Array#__get i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.ne - br_if $folding-inner7 - local.get $0 + i32.ne + br_if $folding-inner20 + local.get $10 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.ne + br_if $folding-inner21 + local.get $10 i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 9 - i64.ne - br_if $folding-inner8 + call $~lib/typedarray/Uint16Array#__get + i32.const 9 + i32.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $2 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49745,7 +51385,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49755,23 +51395,23 @@ i32.store offset=8 local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3856 + i32.const 3760 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -49781,108 +51421,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u + local.set $5 + local.get $0 + i32.load offset=4 local.set $4 local.get $1 - i32.load offset=4 - local.set $7 - local.get $0 i32.const 12 - i32.const 11 + i32.const 8 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 3 + local.get $5 + i32.const 2 i32.shl - local.tee $8 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store offset=4 - loop $for-loop|023 - local.get $2 - local.get $4 - i32.lt_s + loop $for-loop|015 + local.get $5 + local.get $8 + i32.gt_s if - local.get $7 - local.get $2 - i32.const 3 + local.get $4 + local.get $8 + i32.const 2 i32.shl - local.tee $11 + local.tee $2 i32.add - i64.load - local.set $6 + i32.load + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $11 - i32.add - local.get $6 local.get $2 + local.get $7 + i32.add local.get $1 - i32.const 3856 + local.get $8 + local.get $0 + i32.const 3760 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i64) - i64.store - local.get $2 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store + local.get $8 i32.const 1 i32.add - local.set $2 - br $for-loop|023 + local.set $8 + br $for-loop|015 end end - local.get $0 - local.get $3 + local.get $10 + local.get $7 i32.store - local.get $0 - local.get $3 + local.get $10 + local.get $7 call $~lib/rt/itcms/__link - local.get $0 - local.get $3 + local.get $10 + local.get $7 i32.store offset=4 - local.get $0 - local.get $8 + local.get $10 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $10 i32.store offset=8 - local.get $0 + local.get $10 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - br_if $folding-inner6 - local.get $0 + call $~lib/typedarray/Int32Array#__get i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.ne - br_if $folding-inner7 - local.get $0 + i32.ne + br_if $folding-inner20 + local.get $10 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.ne + br_if $folding-inner21 + local.get $10 i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 9 - i64.ne - br_if $folding-inner8 + call $~lib/typedarray/Int32Array#__get + i32.const 9 + i32.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $2 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -49890,7 +51530,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -49900,23 +51540,23 @@ i32.store offset=8 local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3888 + i32.const 3792 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -49926,108 +51566,108 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u + local.set $5 + local.get $0 + i32.load offset=4 local.set $4 local.get $1 - i32.load offset=4 - local.set $7 - local.get $0 - i32.const 12 i32.const 12 + i32.const 9 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.const 2 i32.shl - local.tee $8 + local.tee $3 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $7 i32.store offset=4 - loop $for-loop|025 - local.get $2 - local.get $4 - i32.lt_s + loop $for-loop|017 + local.get $5 + local.get $8 + i32.gt_s if - local.get $7 - local.get $2 + local.get $4 + local.get $8 i32.const 2 i32.shl - local.tee $11 + local.tee $2 i32.add - f32.load - local.set $9 + i32.load + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $11 - i32.add - local.get $9 local.get $2 + local.get $7 + i32.add local.get $1 - i32.const 3888 + local.get $8 + local.get $0 + i32.const 3792 i32.load - call_indirect $0 (type $f32_i32_i32_=>_f32) - f32.store - local.get $2 + call_indirect $0 (type $i32_i32_i32_=>_i32) + i32.store + local.get $8 i32.const 1 i32.add - local.set $2 - br $for-loop|025 + local.set $8 + br $for-loop|017 end end - local.get $0 - local.get $3 + local.get $10 + local.get $7 i32.store - local.get $0 - local.get $3 + local.get $10 + local.get $7 call $~lib/rt/itcms/__link - local.get $0 - local.get $3 + local.get $10 + local.get $7 i32.store offset=4 - local.get $0 - local.get $8 + local.get $10 + local.get $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $10 i32.store offset=8 - local.get $0 + local.get $10 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - br_if $folding-inner6 - local.get $0 + call $~lib/typedarray/Uint32Array#__get i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne - br_if $folding-inner7 - local.get $0 + i32.ne + br_if $folding-inner20 + local.get $10 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.ne + br_if $folding-inner21 + local.get $10 i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 9 - f32.ne - br_if $folding-inner8 + call $~lib/typedarray/Uint32Array#__get + i32.const 9 + i32.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $2 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -50035,7 +51675,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -50045,23 +51685,23 @@ i32.store offset=8 local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 3920 + i32.const 3824 i32.store offset=4 global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -50071,359 +51711,289 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 - local.get $1 - i32.load offset=4 - local.set $7 + local.set $6 local.get $0 + i32.load offset=4 + local.set $3 + local.get $1 i32.const 12 - i32.const 13 + i32.const 10 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $6 i32.const 3 i32.shl - local.tee $8 + local.tee $2 i32.const 0 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $5 i32.store offset=4 - loop $for-loop|026 - local.get $2 - local.get $4 - i32.lt_s + loop $for-loop|019 + local.get $6 + local.get $7 + i32.gt_s if + local.get $3 local.get $7 - local.get $2 i32.const 3 i32.shl - local.tee $11 + local.tee $1 i32.add - f64.load - local.set $10 + i64.load + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $3 - local.get $11 - i32.add - local.get $10 - local.get $2 local.get $1 - i32.const 3920 + local.get $5 + i32.add + local.get $9 + local.get $7 + local.get $0 + i32.const 3824 i32.load - call_indirect $0 (type $f64_i32_i32_=>_f64) - f64.store - local.get $2 + call_indirect $0 (type $i64_i32_i32_=>_i64) + i64.store + local.get $7 i32.const 1 i32.add - local.set $2 - br $for-loop|026 + local.set $7 + br $for-loop|019 end end - local.get $0 - local.get $3 + local.get $8 + local.get $5 i32.store - local.get $0 - local.get $3 + local.get $8 + local.get $5 call $~lib/rt/itcms/__link - local.get $0 - local.get $3 + local.get $8 + local.get $5 i32.store offset=4 - local.get $0 local.get $8 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $8 i32.store offset=8 - local.get $0 + local.get $8 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne - br_if $folding-inner6 - local.get $0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner20 + local.get $8 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne - br_if $folding-inner7 - local.get $0 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.ne + br_if $folding-inner21 + local.get $8 i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 9 - f64.ne - br_if $folding-inner8 + call $~lib/typedarray/Int64Array#__get + i64.const 9 + i64.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> i32.const 0 - local.set $1 + local.set $7 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor + call $~lib/typedarray/Uint64Array#constructor local.tee $0 i32.store local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set + i64.const 1 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set + i64.const 2 + call $~lib/typedarray/Uint64Array#__set local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4304 + i32.const 3856 i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|028 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $3 - i32.add - i32.load8_s - local.set $5 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $1 - local.get $0 - i32.const 4304 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|028 - end - end - i32.const 0 - end - i32.eqz - br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - i32.const 4336 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $6 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $1 + i32.const 12 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 3 + i32.shl + local.tee $2 i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|0329 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + loop $for-loop|022 + local.get $6 + local.get $7 + i32.gt_s + if + local.get $3 + local.get $7 + i32.const 3 + i32.shl + local.tee $1 + i32.add + i64.load + local.set $9 + i32.const 3 + global.set $~argumentsLength local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $3 - i32.add - i32.load8_s - local.set $5 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $1 - local.get $0 - i32.const 4336 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.01 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0329 - end + local.get $5 + i32.add + local.get $9 + local.get $7 + local.get $0 + i32.const 3856 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i64) + i64.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|022 end - i32.const 0 end - br_if $folding-inner10 + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + call $~lib/rt/itcms/__link + local.get $8 + local.get $5 + i32.store offset=4 + local.get $8 + local.get $2 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 i32.const 0 - local.set $1 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner20 + local.get $8 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + br_if $folding-inner21 + local.get $8 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 9 + i64.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor + call $~lib/typedarray/Float32Array#constructor local.tee $0 i32.store local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set + f32.const 1 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set + f32.const 2 + call $~lib/typedarray/Float32Array#__set local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4368 - i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|031 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $3 - i32.add - i32.load8_u - local.set $5 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $1 - local.get $0 - i32.const 4368 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|031 - end - end - i32.const 0 - end - i32.eqz - br_if $folding-inner9 + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4400 + i32.const 3888 i32.store offset=4 - i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|0332 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $3 - i32.add - i32.load8_u - local.set $5 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $1 - local.get $0 - i32.const 4400 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.01 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0332 - end - end - i32.const 0 - end - br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50431,247 +52001,262 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i64.const 0 i64.store local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - i32.const 0 + i32.load offset=8 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set + i32.shr_u + local.set $6 local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set + i32.load offset=4 + local.set $3 + local.get $1 + i32.const 12 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 4432 + local.get $6 + i32.const 2 + i32.shl + local.tee $2 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $5 i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.033 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|034 + loop $for-loop|024 + local.get $6 + local.get $7 + i32.gt_s + if + local.get $3 + local.get $7 + i32.const 2 + i32.shl + local.tee $1 + i32.add + f32.load + local.set $11 + i32.const 3 + global.set $~argumentsLength local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $3 - i32.add - i32.load8_u - local.set $5 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $1 - local.get $0 - i32.const 4432 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.033 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|034 - end + local.get $5 + i32.add + local.get $11 + local.get $7 + local.get $0 + i32.const 3888 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_f32) + f32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|024 end - i32.const 0 end - i32.eqz - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 4464 + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + call $~lib/rt/itcms/__link + local.get $8 + local.get $5 i32.store offset=4 - i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0135 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|0336 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - local.get $3 - i32.add - i32.load8_u - local.set $5 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $1 - local.get $0 - i32.const 4464 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0135 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0336 - end - end - i32.const 0 - end - br_if $folding-inner10 + local.get $8 + local.get $2 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 i32.const 0 - local.set $1 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + br_if $folding-inner20 + local.get $8 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne + br_if $folding-inner21 + local.get $8 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 9 + f32.ne + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor + call $~lib/typedarray/Float64Array#constructor local.tee $0 i32.store local.get $0 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set + f64.const 1 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set + f64.const 2 + call $~lib/typedarray/Float64Array#__set local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4496 + i32.const 3920 i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|037 - local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - i32.const 1 - i32.shl - local.get $3 - i32.add - i32.load16_s - local.set $5 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $1 - local.get $0 - i32.const 4496 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|037 - end - end - i32.const 0 - end - i32.eqz - br_if $folding-inner9 global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $6 + local.get $0 + i32.load offset=4 + local.set $3 + local.get $1 + i32.const 12 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 3 + i32.shl + local.tee $2 i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|0338 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=4 + loop $for-loop|026 + local.get $6 + local.get $7 + i32.gt_s + if + local.get $3 + local.get $7 + i32.const 3 + i32.shl + local.tee $1 + i32.add + f64.load + local.set $12 + i32.const 3 + global.set $~argumentsLength local.get $1 - local.get $4 - i32.lt_s - if - local.get $1 - i32.const 1 - i32.shl - local.get $3 - i32.add - i32.load16_s - local.set $5 - i32.const 3 - global.set $~argumentsLength - i32.const 1 - local.get $5 - local.get $1 - local.get $0 - i32.const 4528 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.01 - drop - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0338 - end + local.get $5 + i32.add + local.get $12 + local.get $7 + local.get $0 + i32.const 3920 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_f64) + f64.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|026 end - i32.const 0 end - br_if $folding-inner10 + local.get $8 + local.get $5 + i32.store + local.get $8 + local.get $5 + call $~lib/rt/itcms/__link + local.get $8 + local.get $5 + i32.store offset=4 + local.get $8 + local.get $2 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + local.get $8 i32.const 0 - local.set $1 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + br_if $folding-inner20 + local.get $8 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + br_if $folding-inner21 + local.get $8 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.ne + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50679,127 +52264,119 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 + call $~lib/typedarray/Int8Array#__set + local.get $4 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $0 + call $~lib/typedarray/Int8Array#__set + local.get $4 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4560 + i32.const 4304 i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|040 + local.set $1 + loop $for-loop|045 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 1 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load16_u - local.set $5 + i32.load8_s + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $5 - local.get $1 local.get $0 - i32.const 4560 + local.get $6 + local.get $4 + i32.const 4304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|040 + local.set $6 + br $for-loop|045 end end i32.const 0 end i32.eqz - br_if $folding-inner9 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 4592 + i32.const 4336 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|0341 + local.set $1 + loop $for-loop|049 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 1 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load16_u - local.set $5 + i32.load8_s + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $5 - local.get $1 local.get $0 - i32.const 4592 + local.get $6 + local.get $4 + i32.const 4336 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.01 + br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.047 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0341 + local.set $6 + br $for-loop|049 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50807,127 +52384,119 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 1 i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $0 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 2 i32.const 6 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4624 + i32.const 4368 i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|043 + local.set $1 + loop $for-loop|051 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 2 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load - local.set $5 + i32.load8_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $5 - local.get $1 local.get $0 - i32.const 4624 + local.get $6 + local.get $4 + i32.const 4368 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|043 + local.set $6 + br $for-loop|051 end end i32.const 0 end i32.eqz - br_if $folding-inner9 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 4656 + i32.const 4400 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|0344 + local.set $1 + loop $for-loop|054 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 2 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load - local.set $5 + i32.load8_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $5 - local.get $1 local.get $0 - i32.const 4656 + local.get $6 + local.get $4 + i32.const 4400 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.01 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.053 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0344 + local.set $6 + br $for-loop|054 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -50935,127 +52504,119 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 4688 + i32.const 4432 i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|045 + local.set $1 + loop $for-loop|058 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 2 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load - local.set $5 + i32.load8_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $5 - local.get $1 local.get $0 - i32.const 4688 + local.get $6 + local.get $4 + i32.const 4432 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.057 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|045 + local.set $6 + br $for-loop|058 end end i32.const 0 end i32.eqz - br_if $folding-inner9 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 4720 + i32.const 4464 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|0346 + local.set $1 + loop $for-loop|061 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 2 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load - local.set $5 + i32.load8_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $5 - local.get $1 local.get $0 - i32.const 4720 + local.get $6 + local.get $4 + i32.const 4464 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.01 + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0346 + local.set $6 + br $for-loop|061 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51063,127 +52624,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $4 i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $0 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $4 i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set + i32.const 6 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4752 + i32.const 4496 i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|047 + local.set $1 + loop $for-loop|063 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add - i64.load - local.set $6 + i32.load16_s + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 - local.get $1 local.get $0 - i32.const 4752 + local.get $6 + local.get $4 + i32.const 4496 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|047 + local.set $6 + br $for-loop|063 end end i32.const 0 end i32.eqz - br_if $folding-inner9 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 4784 + i32.const 4528 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|0348 + local.set $1 + loop $for-loop|066 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add - i64.load - local.set $6 + i32.load16_s + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 - local.get $1 local.get $0 - i32.const 4784 + local.get $6 + local.get $4 + i32.const 4528 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.01 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.065 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0348 + local.set $6 + br $for-loop|066 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51191,127 +52752,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $4 i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $0 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $4 i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set + i32.const 6 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4816 + i32.const 4560 i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|050 + local.set $1 + loop $for-loop|068 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add - i64.load - local.set $6 + i32.load16_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 - local.get $1 local.get $0 - i32.const 4816 + local.get $6 + local.get $4 + i32.const 4560 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|050 + local.set $6 + br $for-loop|068 end end i32.const 0 end i32.eqz - br_if $folding-inner9 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 4848 + i32.const 4592 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|0351 + local.set $1 + loop $for-loop|071 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add - i64.load - local.set $6 + i32.load16_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $6 - local.get $1 local.get $0 - i32.const 4848 + local.get $6 + local.get $4 + i32.const 4592 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.01 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.070 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0351 + local.set $6 + br $for-loop|071 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51319,127 +52880,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $4 i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $0 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $4 i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set + i32.const 6 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4880 + i32.const 4624 i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|053 + local.set $1 + loop $for-loop|073 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 + local.get $6 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - f32.load - local.set $9 + i32.load + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $9 - local.get $1 local.get $0 - i32.const 4880 + local.get $6 + local.get $4 + i32.const 4624 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|053 + local.set $6 + br $for-loop|073 end end i32.const 0 end i32.eqz - br_if $folding-inner9 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 4912 + i32.const 4656 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|0354 + local.set $1 + loop $for-loop|076 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 + local.get $6 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - f32.load - local.set $9 + i32.load + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $9 - local.get $1 local.get $0 - i32.const 4912 + local.get $6 + local.get $4 + i32.const 4656 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.01 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.075 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0354 + local.set $6 + br $for-loop|076 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51447,127 +53008,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $4 i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $0 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $4 i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set + i32.const 6 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4944 + i32.const 4688 i32.store offset=4 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|056 + local.set $1 + loop $for-loop|078 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - f64.load - local.set $10 + i32.load + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $1 local.get $0 - i32.const 4944 + local.get $6 + local.get $4 + i32.const 4688 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|056 + local.set $6 + br $for-loop|078 end end i32.const 0 end i32.eqz - br_if $folding-inner9 + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 4976 + i32.const 4720 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|0357 + local.set $1 + loop $for-loop|081 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - f64.load - local.set $10 + i32.load + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $10 - local.get $1 local.get $0 - i32.const 4976 + local.get $6 + local.get $4 + i32.const 4720 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.01 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.080 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0357 + local.set $6 + br $for-loop|081 end end i32.const 0 end - br_if $folding-inner10 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51575,118 +53136,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set + i64.const 6 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5008 + i32.const 4752 i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|059 + i32.const 0 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|083 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 - local.get $2 + local.get $5 + i32.const 3 + i32.shl + local.get $1 i32.add - i32.load8_s + i64.load + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 5008 + i32.const 1 + local.get $9 + local.get $5 + local.get $3 + i32.const 4752 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 + drop + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|059 + local.set $5 + br $for-loop|083 end end - i32.const -1 - local.set $0 + i32.const 0 end - local.get $0 - i32.const 1 - i32.ne - br_if $folding-inner11 + i32.eqz + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 5040 + i32.const 4784 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - loop $for-loop|0360 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.085 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|086 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 - local.get $2 + local.get $5 + i32.const 3 + i32.shl + local.get $1 i32.add - i32.load8_s + i64.load + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 5040 + i32.const 1 + local.get $9 + local.get $5 + local.get $3 + i32.const 4784 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.085 + drop + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|0360 + local.set $5 + br $for-loop|086 end end - i32.const -1 - local.set $0 + i32.const 0 end - local.get $0 - i32.const -1 - i32.ne - br_if $folding-inner12 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51694,118 +53264,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $3 i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $3 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set + i64.const 6 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5072 + i32.const 4816 i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|062 + i32.const 0 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|088 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 - local.get $2 + local.get $5 + i32.const 3 + i32.shl + local.get $1 i32.add - i32.load8_u + i64.load + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 5072 + i32.const 1 + local.get $9 + local.get $5 + local.get $3 + i32.const 4816 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 + drop + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|062 + local.set $5 + br $for-loop|088 end end - i32.const -1 - local.set $0 + i32.const 0 end - local.get $0 - i32.const 1 - i32.ne - br_if $folding-inner11 + i32.eqz + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 5104 + i32.const 4848 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - loop $for-loop|0363 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.090 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|091 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 - local.get $2 + local.get $5 + i32.const 3 + i32.shl + local.get $1 i32.add - i32.load8_u + i64.load + local.set $9 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 5104 + i32.const 1 + local.get $9 + local.get $5 + local.get $3 + i32.const 4848 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.090 + drop + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|0363 + local.set $5 + br $for-loop|091 end end - i32.const -1 - local.set $0 + i32.const 0 end - local.get $0 - i32.const -1 - i32.ne - br_if $folding-inner12 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51813,118 +53392,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $3 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $3 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - i32.const 5136 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.064 - loop $for-loop|065 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store offset=4 + i32.const 0 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + loop $for-loop|093 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 - local.get $2 + local.get $5 + i32.const 2 + i32.shl + local.get $1 i32.add - i32.load8_u + f32.load + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 5136 + i32.const 1 + local.get $11 + local.get $5 + local.get $3 + i32.const 4880 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.064 - local.get $0 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|065 + local.set $5 + br $for-loop|093 end end - i32.const -1 - local.set $0 + i32.const 0 end - local.get $0 - i32.const 1 - i32.ne - br_if $folding-inner11 + i32.eqz + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 5168 + i32.const 4912 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0166 - loop $for-loop|0367 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.095 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + loop $for-loop|096 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 - local.get $2 + local.get $5 + i32.const 2 + i32.shl + local.get $1 i32.add - i32.load8_u + f32.load + local.set $11 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 5168 + i32.const 1 + local.get $11 + local.get $5 + local.get $3 + i32.const 4912 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0166 - local.get $0 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.095 + drop + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|0367 + local.set $5 + br $for-loop|096 end end - i32.const -1 - local.set $0 + i32.const 0 end - local.get $0 - i32.const -1 - i32.ne - br_if $folding-inner12 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -51932,126 +53520,127 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $3 i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $3 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set + f64.const 6 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5200 + i32.const 4944 i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|068 + i32.const 0 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|098 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 - i32.const 1 + local.get $5 + i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add - i32.load16_s + f64.load + local.set $12 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 5200 + i32.const 1 + local.get $12 + local.get $5 + local.get $3 + i32.const 4944 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|068 + local.set $5 + br $for-loop|098 end end - i32.const -1 - local.set $0 + i32.const 0 end - local.get $0 - i32.const 1 - i32.ne - br_if $folding-inner11 + i32.eqz + br_if $folding-inner6 global.get $~lib/memory/__stack_pointer - i32.const 5232 + i32.const 4976 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - loop $for-loop|0369 + local.set $5 + block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0100 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0101 local.get $0 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $0 - i32.const 1 + local.get $5 + i32.const 3 i32.shl - local.get $2 + local.get $1 i32.add - i32.load16_s + f64.load + local.set $12 i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 5232 + i32.const 1 + local.get $12 + local.get $5 + local.get $3 + i32.const 4976 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $0 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0100 + drop + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|0369 + local.set $5 + br $for-loop|0101 end end - i32.const -1 - local.set $0 + i32.const 0 end - local.get $0 - i32.const -1 - i32.ne - br_if $folding-inner12 + br_if $folding-inner7 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52059,126 +53648,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 + call $~lib/typedarray/Int8Array#__set + local.get $4 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 + call $~lib/typedarray/Int8Array#__set + local.get $4 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5264 + i32.const 5008 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|071 - local.get $0 - local.get $3 + local.get $4 + i32.load offset=8 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + loop $for-loop|0103 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 1 - i32.shl - local.get $2 + local.get $1 + local.get $3 i32.add - i32.load16_u + i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5264 + local.get $4 + i32.const 5008 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|071 + local.set $1 + br $for-loop|0103 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5296 + i32.const 5040 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.shr_u local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - loop $for-loop|0372 - local.get $0 - local.get $3 + local.get $4 + i32.load offset=8 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0105 + loop $for-loop|0106 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 1 - i32.shl - local.get $2 + local.get $1 + local.get $3 i32.add - i32.load16_u + i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5296 + local.get $4 + i32.const 5040 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0105 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0372 + local.set $1 + br $for-loop|0106 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52186,126 +53767,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 0 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 1 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5328 + i32.const 5072 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|073 - local.get $0 - local.get $3 + local.get $4 + i32.load offset=8 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + loop $for-loop|0108 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 2 - i32.shl - local.get $2 + local.get $1 + local.get $3 i32.add - i32.load + i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5328 + local.get $4 + i32.const 5072 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|073 + local.set $1 + br $for-loop|0108 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5360 + i32.const 5104 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - loop $for-loop|0374 - local.get $0 - local.get $3 + local.get $4 + i32.load offset=8 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0110 + loop $for-loop|0111 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 2 - i32.shl - local.get $2 + local.get $1 + local.get $3 i32.add - i32.load + i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5360 + local.get $4 + i32.const 5104 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0110 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0374 + local.set $1 + br $for-loop|0111 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52313,126 +53886,118 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 5392 + i32.const 5136 i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|075 - local.get $0 - local.get $3 + i32.const 0 + local.set $1 + local.get $4 + i32.load offset=4 + local.set $3 + local.get $4 + i32.load offset=8 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0114 + loop $for-loop|0115 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 2 - i32.shl - local.get $2 + local.get $1 + local.get $3 i32.add - i32.load + i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5392 + local.get $4 + i32.const 5136 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0114 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|075 + local.set $1 + br $for-loop|0115 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5424 + i32.const 5168 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - loop $for-loop|0376 - local.get $0 - local.get $3 + local.get $4 + i32.load offset=8 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 + loop $for-loop|0118 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 2 - i32.shl - local.get $2 + local.get $1 + local.get $3 i32.add - i32.load + i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5424 + local.get $4 + i32.const 5168 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $0 + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0376 + local.set $1 + br $for-loop|0118 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52440,126 +54005,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set + call $~lib/typedarray/Int16Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5456 + i32.const 5200 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 + local.set $3 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|077 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + loop $for-loop|0120 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add - i64.load + i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5456 + local.get $4 + i32.const 5200 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|077 + local.set $1 + br $for-loop|0120 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5488 + i32.const 5232 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 + local.set $3 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - loop $for-loop|0378 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0122 + loop $for-loop|0123 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add - i64.load + i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5488 + local.get $4 + i32.const 5232 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0122 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0378 + local.set $1 + br $for-loop|0123 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52567,126 +54132,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 + call $~lib/typedarray/Uint16Array#__set + local.get $4 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Uint16Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5520 + i32.const 5264 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 + local.set $3 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|079 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + loop $for-loop|0125 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add - i64.load + i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5520 + local.get $4 + i32.const 5264 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|079 + local.set $1 + br $for-loop|0125 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5552 + i32.const 5296 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 + local.set $3 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - loop $for-loop|0380 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0127 + loop $for-loop|0128 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 1 i32.shl - local.get $2 + local.get $3 i32.add - i64.load + i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5552 + local.get $4 + i32.const 5296 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0127 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0380 + local.set $1 + br $for-loop|0128 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52694,126 +54259,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 1 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Int32Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5584 + i32.const 5328 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|081 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + loop $for-loop|0130 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - f32.load + i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5584 + local.get $4 + i32.const 5328 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|081 + local.set $1 + br $for-loop|0130 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5616 + i32.const 5360 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 + local.set $3 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - loop $for-loop|0382 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0132 + loop $for-loop|0133 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 + local.get $1 i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - f32.load + i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5616 + local.get $4 + i32.const 5360 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0132 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0382 + local.set $1 + br $for-loop|0133 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -52821,120 +54386,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 i32.store - local.get $1 + local.get $4 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 + call $~lib/typedarray/Uint32Array#__set + local.get $4 + i32.const 1 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint32Array#__set + local.get $4 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5648 + i32.const 5392 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 + local.set $3 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|083 - local.get $0 - local.get $3 + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + loop $for-loop|0135 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - f64.load + i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5648 + local.get $4 + i32.const 5392 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|083 + local.set $1 + br $for-loop|0135 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner11 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5680 + i32.const 5424 i32.store offset=4 i32.const 0 - local.set $0 - local.get $1 + local.set $1 + local.get $4 i32.load offset=4 - local.set $2 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u local.set $3 - block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - loop $for-loop|0384 - local.get $0 - local.get $3 + local.get $4 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $2 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0137 + loop $for-loop|0138 + local.get $1 + local.get $2 i32.lt_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 2 i32.shl - local.get $2 + local.get $3 i32.add - f64.load + i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5680 + local.get $4 + i32.const 5424 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0137 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0384 + local.set $1 + br $for-loop|0138 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner12 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -52946,114 +54513,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5712 + i32.const 5456 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 1 - i32.sub + i32.const 3 + i32.shr_u local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - loop $for-loop|085 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + loop $for-loop|0140 local.get $0 - i32.const 0 - i32.ge_s + local.get $1 + i32.gt_s if - local.get $0 + local.get $1 + i32.const 3 + i32.shl local.get $2 i32.add - i32.load8_s + i64.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5712 + local.get $3 + i32.const 5456 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $1 i32.const 1 - i32.sub - local.set $0 - br $for-loop|085 + i32.add + local.set $1 + br $for-loop|0140 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5744 + i32.const 5488 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 1 - i32.sub + i32.const 3 + i32.shr_u local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - loop $for-loop|0386 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0142 + loop $for-loop|0143 local.get $0 - i32.const 0 - i32.ge_s + local.get $1 + i32.gt_s if - local.get $0 + local.get $1 + i32.const 3 + i32.shl local.get $2 i32.add - i32.load8_s + i64.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5744 + local.get $3 + i32.const 5488 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.01 - local.get $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0142 + local.get $1 i32.const 1 - i32.sub - local.set $0 - br $for-loop|0386 + i32.add + local.set $1 + br $for-loop|0143 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53065,114 +54640,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $3 i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $3 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5776 + i32.const 5520 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 1 - i32.sub + i32.const 3 + i32.shr_u local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - loop $for-loop|087 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + loop $for-loop|0145 local.get $0 - i32.const 0 - i32.ge_s + local.get $1 + i32.gt_s if - local.get $0 + local.get $1 + i32.const 3 + i32.shl local.get $2 i32.add - i32.load8_u + i64.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5776 + local.get $3 + i32.const 5520 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.get $1 i32.const 1 - i32.sub - local.set $0 - br $for-loop|087 + i32.add + local.set $1 + br $for-loop|0145 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5808 + i32.const 5552 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 1 - i32.sub + i32.const 3 + i32.shr_u local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - loop $for-loop|0388 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0147 + loop $for-loop|0148 local.get $0 - i32.const 0 - i32.ge_s + local.get $1 + i32.gt_s if - local.get $0 + local.get $1 + i32.const 3 + i32.shl local.get $2 i32.add - i32.load8_u + i64.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5808 + local.get $3 + i32.const 5552 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.01 - local.get $0 + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0147 + local.get $1 i32.const 1 - i32.sub - local.set $0 - br $for-loop|0388 + i32.add + local.set $1 + br $for-loop|0148 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53184,114 +54767,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $3 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $3 i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5840 + i32.const 5584 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 1 - i32.sub + i32.const 2 + i32.shr_u local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.089 - loop $for-loop|090 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + loop $for-loop|0150 local.get $0 - i32.const 0 - i32.ge_s + local.get $1 + i32.gt_s if - local.get $0 + local.get $1 + i32.const 2 + i32.shl local.get $2 i32.add - i32.load8_u + f32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5840 + local.get $3 + i32.const 5584 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.089 - local.get $0 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + local.get $1 i32.const 1 - i32.sub - local.set $0 - br $for-loop|090 + i32.add + local.set $1 + br $for-loop|0150 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5872 + i32.const 5616 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 1 - i32.sub + i32.const 2 + i32.shr_u local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0191 - loop $for-loop|0392 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0152 + loop $for-loop|0153 local.get $0 - i32.const 0 - i32.ge_s + local.get $1 + i32.gt_s if - local.get $0 + local.get $1 + i32.const 2 + i32.shl local.get $2 i32.add - i32.load8_u + f32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5872 + local.get $3 + i32.const 5616 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0191 - local.get $0 + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0152 + local.get $1 i32.const 1 - i32.sub - local.set $0 - br $for-loop|0392 + i32.add + local.set $1 + br $for-loop|0153 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53303,122 +54894,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $3 i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $3 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5904 + i32.const 5648 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - i32.const 1 - i32.sub local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - loop $for-loop|093 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + loop $for-loop|0155 local.get $0 - i32.const 0 - i32.ge_s + local.get $1 + i32.gt_s if - local.get $0 - i32.const 1 + local.get $1 + i32.const 3 i32.shl local.get $2 i32.add - i32.load16_s + f64.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5904 + local.get $3 + i32.const 5648 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $1 i32.const 1 - i32.sub - local.set $0 - br $for-loop|093 + i32.add + local.set $1 + br $for-loop|0155 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner8 global.get $~lib/memory/__stack_pointer - i32.const 5936 + i32.const 5680 i32.store offset=4 - local.get $1 + i32.const 0 + local.set $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 1 + i32.const 3 i32.shr_u - i32.const 1 - i32.sub local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - loop $for-loop|0394 + block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0157 + loop $for-loop|0158 local.get $0 - i32.const 0 - i32.ge_s + local.get $1 + i32.gt_s if - local.get $0 - i32.const 1 + local.get $1 + i32.const 3 i32.shl local.get $2 i32.add - i32.load16_s + f64.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5936 + local.get $3 + i32.const 5680 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.01 - local.get $0 + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0157 + local.get $1 i32.const 1 - i32.sub - local.set $0 - br $for-loop|0394 + i32.add + local.set $1 + br $for-loop|0158 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner9 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53430,122 +55021,114 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 + call $~lib/typedarray/Int8Array#__set + local.get $3 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 + call $~lib/typedarray/Int8Array#__set + local.get $3 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 5968 + i32.const 5712 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 i32.const 1 - i32.shr_u - i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - loop $for-loop|095 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + loop $for-loop|0160 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 1 - i32.shl + local.get $1 local.get $2 i32.add - i32.load16_u + i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 5968 + local.get $3 + i32.const 5712 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|095 + local.set $1 + br $for-loop|0160 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6000 + i32.const 5744 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - loop $for-loop|0396 - local.get $0 + i32.sub + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0162 + loop $for-loop|0163 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 1 - i32.shl + local.get $1 local.get $2 i32.add - i32.load16_u + i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6000 + local.get $3 + i32.const 5744 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.01 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0162 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0396 + local.set $1 + br $for-loop|0163 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53557,122 +55140,114 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint8Array#__set + local.get $3 i32.const 1 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 + call $~lib/typedarray/Uint8Array#__set + local.get $3 i32.const 2 i32.const 3 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6032 + i32.const 5776 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 2 - i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - loop $for-loop|097 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + loop $for-loop|0165 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 2 - i32.shl + local.get $1 local.get $2 i32.add - i32.load + i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6032 + local.get $3 + i32.const 5776 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|097 + local.set $1 + br $for-loop|0165 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6064 + i32.const 5808 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 2 - i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - loop $for-loop|0398 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0167 + loop $for-loop|0168 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 2 - i32.shl + local.get $1 local.get $2 i32.add - i32.load + i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6064 + local.get $3 + i32.const 5808 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.01 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0167 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0398 + local.set $1 + br $for-loop|0168 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53684,122 +55259,114 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 i32.const 2 i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 6096 + i32.const 5840 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 2 - i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - loop $for-loop|099 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0171 + loop $for-loop|0172 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 2 - i32.shl + local.get $1 local.get $2 i32.add - i32.load + i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6096 + local.get $3 + i32.const 5840 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0171 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|099 + local.set $1 + br $for-loop|0172 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6128 + i32.const 5872 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 2 - i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - loop $for-loop|03100 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0174 + loop $for-loop|0175 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 2 - i32.shl + local.get $1 local.get $2 i32.add - i32.load + i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6128 + local.get $3 + i32.const 5872 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.01 - local.get $0 + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0174 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|03100 + local.set $1 + br $for-loop|0175 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53811,122 +55378,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set + call $~lib/typedarray/Int16Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6160 + i32.const 5904 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - loop $for-loop|0101 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + loop $for-loop|0177 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 1 i32.shl local.get $2 i32.add - i64.load + i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6160 + local.get $3 + i32.const 5904 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0101 + local.set $1 + br $for-loop|0177 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6192 + i32.const 5936 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - loop $for-loop|03102 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0179 + loop $for-loop|0180 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 1 i32.shl local.get $2 i32.add - i64.load + i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6192 + local.get $3 + i32.const 5936 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.01 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0179 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|03102 + local.set $1 + br $for-loop|0180 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -53938,122 +55505,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 1 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Uint16Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6224 + i32.const 5968 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - loop $for-loop|0103 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + loop $for-loop|0182 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 1 i32.shl local.get $2 i32.add - i64.load + i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6224 + local.get $3 + i32.const 5968 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0103 + local.set $1 + br $for-loop|0182 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6256 + i32.const 6000 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - loop $for-loop|03104 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0184 + loop $for-loop|0185 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 1 i32.shl local.get $2 i32.add - i64.load + i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6256 + local.get $3 + i32.const 6000 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.01 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0184 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|03104 + local.set $1 + br $for-loop|0185 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -54065,122 +55632,122 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 1 i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + call $~lib/typedarray/Int32Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6288 + i32.const 6032 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - loop $for-loop|0105 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + loop $for-loop|0187 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl local.get $2 i32.add - f32.load + i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6288 + local.get $3 + i32.const 6032 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0105 + local.set $1 + br $for-loop|0187 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6320 + i32.const 6064 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - loop $for-loop|03106 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0189 + loop $for-loop|0190 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 i32.const 2 i32.shl local.get $2 i32.add - f32.load + i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6320 + local.get $3 + i32.const 6064 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.01 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0189 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|03106 + local.set $1 + br $for-loop|0190 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -54192,128 +55759,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 1 i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint32Array#__set + local.get $3 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6352 + i32.const 6096 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - loop $for-loop|0107 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + loop $for-loop|0192 + local.get $1 i32.const 0 i32.ge_s - if - local.get $0 - i32.const 3 + if + local.get $1 + i32.const 2 i32.shl local.get $2 i32.add - f64.load + i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6352 + local.get $3 + i32.const 6096 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|0107 + local.set $1 + br $for-loop|0192 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne - br_if $folding-inner13 + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6384 + i32.const 6128 i32.store offset=4 - local.get $1 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u i32.const 1 i32.sub - local.set $0 - block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - loop $for-loop|03108 - local.get $0 + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0194 + loop $for-loop|0195 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 - i32.const 3 + local.get $1 + i32.const 2 i32.shl local.get $2 i32.add - f64.load + i32.load i32.const 3 global.set $~argumentsLength - local.get $0 local.get $1 - i32.const 6384 + local.get $3 + i32.const 6128 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) - br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.01 - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0194 + local.get $1 i32.const 1 i32.sub - local.set $0 - br $for-loop|03108 + local.set $1 + br $for-loop|0195 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne - br_if $folding-inner14 + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54321,121 +55886,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 + call $~lib/typedarray/Int64Array#constructor + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $2 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6416 + i32.const 6160 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|0109 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 + loop $for-loop|0197 local.get $1 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $1 - local.get $3 + i32.const 3 + i32.shl + local.get $0 i32.add - i32.load8_s - local.set $5 + i64.load i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $5 local.get $1 - local.get $0 - i32.const 6416 + local.get $2 + i32.const 6160 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 - drop + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 local.get $1 i32.const 1 - i32.add + i32.sub local.set $1 - br $for-loop|0109 + br $for-loop|0197 end end - i32.const 1 + i32.const -1 + local.set $1 end - i32.eqz - br_if $folding-inner15 + local.get $1 + i32.const 1 + i32.ne + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6448 + i32.const 6192 i32.store offset=4 - i32.const 0 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|03110 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0199 + loop $for-loop|0200 local.get $1 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $1 - local.get $3 + i32.const 3 + i32.shl + local.get $0 i32.add - i32.load8_s - local.set $5 + i64.load i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $5 local.get $1 - local.get $0 - i32.const 6448 + local.get $2 + i32.const 6192 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.01 - drop + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0199 local.get $1 i32.const 1 - i32.add + i32.sub local.set $1 - br $for-loop|03110 + br $for-loop|0200 end end - i32.const 1 + i32.const -1 + local.set $1 end - br_if $folding-inner16 + local.get $1 + i32.const -1 + i32.ne + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54443,121 +56013,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $2 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $2 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6480 + i32.const 6224 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|0111 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 + loop $for-loop|0202 local.get $1 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $1 - local.get $3 + i32.const 3 + i32.shl + local.get $0 i32.add - i32.load8_u - local.set $5 + i64.load i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $5 local.get $1 - local.get $0 - i32.const 6480 + local.get $2 + i32.const 6224 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 - drop + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 local.get $1 i32.const 1 - i32.add + i32.sub local.set $1 - br $for-loop|0111 + br $for-loop|0202 end end - i32.const 1 + i32.const -1 + local.set $1 end - i32.eqz - br_if $folding-inner15 + local.get $1 + i32.const 1 + i32.ne + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6512 + i32.const 6256 i32.store offset=4 - i32.const 0 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|03112 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0204 + loop $for-loop|0205 local.get $1 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $1 - local.get $3 + i32.const 3 + i32.shl + local.get $0 i32.add - i32.load8_u - local.set $5 + i64.load i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $5 local.get $1 - local.get $0 - i32.const 6512 + local.get $2 + i32.const 6256 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01 - drop + call_indirect $0 (type $i64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0204 local.get $1 i32.const 1 - i32.add + i32.sub local.set $1 - br $for-loop|03112 + br $for-loop|0205 end end - i32.const 1 + i32.const -1 + local.set $1 end - br_if $folding-inner16 + local.get $1 + i32.const -1 + i32.ne + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54565,121 +56140,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + call $~lib/typedarray/Float32Array#constructor + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $2 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $2 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6544 + i32.const 6288 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0113 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|0114 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 + loop $for-loop|0207 local.get $1 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $1 - local.get $3 + i32.const 2 + i32.shl + local.get $0 i32.add - i32.load8_u - local.set $5 + f32.load i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $5 local.get $1 - local.get $0 - i32.const 6544 + local.get $2 + i32.const 6288 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0113 - drop + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $1 i32.const 1 - i32.add + i32.sub local.set $1 - br $for-loop|0114 + br $for-loop|0207 end end - i32.const 1 + i32.const -1 + local.set $1 end - i32.eqz - br_if $folding-inner15 + local.get $1 + i32.const 1 + i32.ne + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6576 + i32.const 6320 i32.store offset=4 - i32.const 0 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01115 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - local.set $4 - loop $for-loop|03116 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0209 + loop $for-loop|0210 local.get $1 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $1 - local.get $3 + i32.const 2 + i32.shl + local.get $0 i32.add - i32.load8_u - local.set $5 + f32.load i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $5 local.get $1 - local.get $0 - i32.const 6576 + local.get $2 + i32.const 6320 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.01115 - drop + call_indirect $0 (type $f32_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0209 local.get $1 i32.const 1 - i32.add + i32.sub local.set $1 - br $for-loop|03116 + br $for-loop|0210 end end - i32.const 1 + i32.const -1 + local.set $1 end - br_if $folding-inner16 + local.get $1 + i32.const -1 + i32.ne + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54687,129 +56267,126 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $2 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $2 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6608 + i32.const 6352 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|0117 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 + loop $for-loop|0212 local.get $1 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $1 - i32.const 1 + i32.const 3 i32.shl - local.get $3 + local.get $0 i32.add - i32.load16_s - local.set $5 + f64.load i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $5 local.get $1 - local.get $0 - i32.const 6608 + local.get $2 + i32.const 6352 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 - drop + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $1 i32.const 1 - i32.add + i32.sub local.set $1 - br $for-loop|0117 + br $for-loop|0212 end end - i32.const 1 + i32.const -1 + local.set $1 end - i32.eqz - br_if $folding-inner15 + local.get $1 + i32.const 1 + i32.ne + br_if $folding-inner10 global.get $~lib/memory/__stack_pointer - i32.const 6640 + i32.const 6384 i32.store offset=4 - i32.const 0 + local.get $2 + i32.load offset=4 + local.set $0 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 (result i32) - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|03118 + block $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0214 + loop $for-loop|0215 local.get $1 - local.get $4 - i32.lt_s + i32.const 0 + i32.ge_s if local.get $1 - i32.const 1 + i32.const 3 i32.shl - local.get $3 + local.get $0 i32.add - i32.load16_s - local.set $5 + f64.load i32.const 3 global.set $~argumentsLength - i32.const 0 - local.get $5 local.get $1 - local.get $0 - i32.const 6640 + local.get $2 + i32.const 6384 i32.load - call_indirect $0 (type $i32_i32_i32_=>_i32) - i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.01 - drop + call_indirect $0 (type $f64_i32_i32_=>_i32) + br_if $~lib/typedarray/FIND_LAST_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0214 local.get $1 i32.const 1 - i32.add + i32.sub local.set $1 - br $for-loop|03118 + br $for-loop|0215 end end - i32.const 1 + i32.const -1 + local.set $1 end - br_if $folding-inner16 + local.get $1 + i32.const -1 + i32.ne + br_if $folding-inner11 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54817,129 +56394,121 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 + call $~lib/typedarray/Int8Array#__set + local.get $4 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $0 + call $~lib/typedarray/Int8Array#__set + local.get $4 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6672 + i32.const 6416 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|0119 + local.set $1 + loop $for-loop|0217 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 1 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load16_u - local.set $5 + i32.load8_s + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $5 - local.get $1 local.get $0 - i32.const 6672 + local.get $6 + local.get $4 + i32.const 6416 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0119 + local.set $6 + br $for-loop|0217 end end i32.const 1 end i32.eqz - br_if $folding-inner15 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - i32.const 6704 + i32.const 6448 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - loop $for-loop|03120 + local.set $1 + loop $for-loop|0220 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 1 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load16_u - local.set $5 + i32.load8_s + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $5 - local.get $1 local.get $0 - i32.const 6704 + local.get $6 + local.get $4 + i32.const 6448 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0219 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|03120 + local.set $6 + br $for-loop|0220 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -54947,129 +56516,121 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 1 i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $0 + call $~lib/typedarray/Uint8Array#__set + local.get $4 i32.const 2 i32.const 6 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6736 + i32.const 6480 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|0121 + local.set $1 + loop $for-loop|0222 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 2 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load - local.set $5 + i32.load8_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $5 - local.get $1 local.get $0 - i32.const 6736 + local.get $6 + local.get $4 + i32.const 6480 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0121 + local.set $6 + br $for-loop|0222 end end i32.const 1 end i32.eqz - br_if $folding-inner15 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - i32.const 6768 + i32.const 6512 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|03122 + local.set $1 + loop $for-loop|0225 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 2 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load - local.set $5 + i32.load8_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $5 - local.get $1 local.get $0 - i32.const 6768 + local.get $6 + local.get $4 + i32.const 6512 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0224 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|03122 + local.set $6 + br $for-loop|0225 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55077,129 +56638,121 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 i32.const 1 i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $0 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $4 i32.const 2 i32.const 6 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 6800 + i32.const 6544 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|0123 + local.set $1 + loop $for-loop|0229 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 2 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load - local.set $5 + i32.load8_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $5 - local.get $1 local.get $0 - i32.const 6800 + local.get $6 + local.get $4 + i32.const 6544 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0228 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0123 + local.set $6 + br $for-loop|0229 end end i32.const 1 end i32.eqz - br_if $folding-inner15 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - i32.const 6832 + i32.const 6576 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $4 - loop $for-loop|03124 + local.set $1 + loop $for-loop|0232 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 2 - i32.shl - local.get $3 + local.get $2 + local.get $6 i32.add - i32.load - local.set $5 + i32.load8_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $5 - local.get $1 local.get $0 - i32.const 6832 + local.get $6 + local.get $4 + i32.const 6576 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0231 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|03124 + local.set $6 + br $for-loop|0232 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55207,129 +56760,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 + call $~lib/typedarray/Int16Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $4 i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $0 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $4 i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set + i32.const 6 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6864 + i32.const 6608 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|0125 + local.set $1 + loop $for-loop|0234 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add - i64.load - local.set $6 + i32.load16_s + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 - local.get $1 local.get $0 - i32.const 6864 + local.get $6 + local.get $4 + i32.const 6608 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0125 + local.set $6 + br $for-loop|0234 end end i32.const 1 end i32.eqz - br_if $folding-inner15 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - i32.const 6896 + i32.const 6640 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|03126 + local.set $1 + loop $for-loop|0237 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add - i64.load - local.set $6 + i32.load16_s + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 - local.get $1 local.get $0 - i32.const 6896 + local.get $6 + local.get $4 + i32.const 6640 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0236 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|03126 + local.set $6 + br $for-loop|0237 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55337,129 +56890,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + call $~lib/typedarray/Uint16Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $4 i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $0 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $4 i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set + i32.const 6 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6928 + i32.const 6672 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|0127 + local.set $1 + loop $for-loop|0239 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add - i64.load - local.set $6 + i32.load16_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 - local.get $1 local.get $0 - i32.const 6928 + local.get $6 + local.get $4 + i32.const 6672 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0127 + local.set $6 + br $for-loop|0239 end end i32.const 1 end i32.eqz - br_if $folding-inner15 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - i32.const 6960 + i32.const 6704 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $4 - loop $for-loop|03128 + local.set $1 + loop $for-loop|0242 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 1 i32.shl - local.get $3 + local.get $2 i32.add - i64.load - local.set $6 + i32.load16_u + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $6 - local.get $1 local.get $0 - i32.const 6960 + local.get $6 + local.get $4 + i32.const 6704 i32.load - call_indirect $0 (type $i64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0241 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|03128 + local.set $6 + br $for-loop|0242 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55467,129 +57020,129 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 + call $~lib/typedarray/Int32Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $4 i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $0 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $4 i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set + i32.const 6 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6992 + i32.const 6736 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|0129 + local.set $1 + loop $for-loop|0244 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 + local.get $6 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - f32.load - local.set $9 + i32.load + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $9 - local.get $1 local.get $0 - i32.const 6992 + local.get $6 + local.get $4 + i32.const 6736 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0129 + local.set $6 + br $for-loop|0244 end end i32.const 1 end i32.eqz - br_if $folding-inner15 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 6768 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|03130 + local.set $1 + loop $for-loop|0247 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 + local.get $6 i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - f32.load - local.set $9 + i32.load + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $9 - local.get $1 local.get $0 - i32.const 7024 + local.get $6 + local.get $4 + i32.const 6768 i32.load - call_indirect $0 (type $f32_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0246 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|03130 + local.set $6 + br $for-loop|0247 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -55597,719 +57150,647 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 + call $~lib/typedarray/Uint32Array#constructor + local.tee $4 i32.store - local.get $0 + local.get $4 i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $4 i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $0 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $4 i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set + i32.const 6 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7056 + i32.const 6800 i32.store offset=4 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $0 + i32.const 0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|0131 + local.set $1 + loop $for-loop|0249 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - f64.load - local.set $10 + i32.load + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $1 local.get $0 - i32.const 7056 + local.get $6 + local.get $4 + i32.const 6800 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|0131 + local.set $6 + br $for-loop|0249 end end i32.const 1 end i32.eqz - br_if $folding-inner15 + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - i32.const 7088 + i32.const 6832 i32.store offset=4 i32.const 0 - local.set $1 - block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 (result i32) - local.get $0 + local.set $6 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 (result i32) + local.get $4 i32.load offset=4 - local.set $3 - local.get $0 + local.set $2 + local.get $4 i32.load offset=8 - i32.const 3 + i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|03132 + local.set $1 + loop $for-loop|0252 local.get $1 - local.get $4 - i32.lt_s + local.get $6 + i32.gt_s if - local.get $1 - i32.const 3 + local.get $6 + i32.const 2 i32.shl - local.get $3 + local.get $2 i32.add - f64.load - local.set $10 + i32.load + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $10 - local.get $1 local.get $0 - i32.const 7088 + local.get $6 + local.get $4 + i32.const 6832 i32.load - call_indirect $0 (type $f64_i32_i32_=>_i32) + call_indirect $0 (type $i32_i32_i32_=>_i32) i32.eqz - br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.01 + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0251 drop - local.get $1 + local.get $6 i32.const 1 i32.add - local.set $1 - br $for-loop|03132 + local.set $6 + br $for-loop|0252 end end i32.const 1 end - br_if $folding-inner16 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 + call $~lib/typedarray/Int64Array#constructor + local.tee $3 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 7152 + local.get $3 i32.const 0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 7152 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 1 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 7152 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $3 i32.const 2 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7200 - i32.store offset=8 - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - local.set $3 - loop $for-loop|073133 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $1 - local.get $2 - i32.add - i32.load8_s - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $0 - i32.const 7200 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|073133 - end - end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + i64.const 6 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7152 + i32.const 6864 i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7232 - i32.store offset=8 i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - local.set $3 - loop $for-loop|076 - local.get $2 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $3 - i32.lt_s - if - local.get $1 - local.get $2 - i32.add - i32.load8_u - i32.const 3 - global.set $~argumentsLength - local.get $2 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0254 local.get $0 - i32.const 7232 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|076 - end - end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set + local.get $5 + i32.gt_s + if + local.get $5 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $9 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $9 + local.get $5 + local.get $3 + i32.const 6864 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0254 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - i32.const 7264 - i32.store offset=8 + i32.const 6896 + i32.store offset=4 i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - local.set $3 - loop $for-loop|080 - local.get $2 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 (result i32) local.get $3 - i32.lt_s - if - local.get $1 - local.get $2 - i32.add - i32.load8_u - i32.const 3 - global.set $~argumentsLength - local.get $2 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0257 local.get $0 - i32.const 7264 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|080 + local.get $5 + i32.gt_s + if + local.get $5 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $9 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $9 + local.get $5 + local.get $3 + i32.const 6896 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0256 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0257 + end end + i32.const 1 end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner17 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 + call $~lib/typedarray/Uint64Array#constructor + local.tee $3 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 7152 + local.get $3 i32.const 0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 7152 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $3 i32.const 1 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7152 + i32.const 6928 i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set + i32.const 0 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0259 + local.get $0 + local.get $5 + i32.gt_s + if + local.get $5 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $9 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $9 + local.get $5 + local.get $3 + i32.const 6928 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0259 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - i32.const 7296 - i32.store offset=8 + i32.const 6960 + i32.store offset=4 i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $3 - loop $for-loop|083134 - local.get $2 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 (result i32) local.get $3 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.load16_s - i32.const 3 - global.set $~argumentsLength - local.get $2 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0262 local.get $0 - i32.const 7296 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|083134 + local.get $5 + i32.gt_s + if + local.get $5 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + local.set $9 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $9 + local.get $5 + local.get $3 + i32.const 6960 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0261 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0262 + end end + i32.const 1 end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner17 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + call $~lib/typedarray/Float32Array#constructor + local.tee $3 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 7152 + local.get $3 i32.const 0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 7152 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $3 i32.const 1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $3 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7152 + i32.const 6992 i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set + i32.const 0 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + loop $for-loop|0264 + local.get $0 + local.get $5 + i32.gt_s + if + local.get $5 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + local.set $11 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $11 + local.get $5 + local.get $3 + i32.const 6992 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0264 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - i32.const 7328 - i32.store offset=8 + i32.const 7024 + i32.store offset=4 i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $3 - loop $for-loop|086 - local.get $2 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 (result i32) local.get $3 - i32.lt_s - if - local.get $2 - i32.const 1 - i32.shl - local.get $1 - i32.add - i32.load16_u - i32.const 3 - global.set $~argumentsLength - local.get $2 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $0 + loop $for-loop|0267 local.get $0 - i32.const 7328 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|086 + local.get $5 + i32.gt_s + if + local.get $5 + i32.const 2 + i32.shl + local.get $1 + i32.add + f32.load + local.set $11 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $11 + local.get $5 + local.get $3 + i32.const 7024 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0266 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0267 + end end + i32.const 1 end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner17 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 i64.store local.get $0 - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - local.get $0 i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 + call $~lib/typedarray/Float64Array#constructor + local.tee $3 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 7152 + local.get $3 i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 7152 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $3 i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 7152 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $3 i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set + f64.const 6 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7360 - i32.store offset=8 + i32.const 7056 + i32.store offset=4 i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|089 - local.get $2 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + local.get $3 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0269 + local.get $0 + local.get $5 + i32.gt_s + if + local.get $5 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + local.set $12 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $12 + local.get $5 + local.get $3 + i32.const 7056 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0269 + end + end + i32.const 1 + end + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + i32.const 7088 + i32.store offset=4 + i32.const 0 + local.set $5 + block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 (result i32) local.get $3 - i32.lt_s - if - local.get $2 - i32.const 2 - i32.shl - local.get $1 - i32.add - i32.load - i32.const 3 - global.set $~argumentsLength - local.get $2 + i32.load offset=4 + local.set $1 + local.get $3 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|0272 local.get $0 - i32.const 7360 - i32.load - call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|089 + local.get $5 + i32.gt_s + if + local.get $5 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + local.set $12 + i32.const 3 + global.set $~argumentsLength + i32.const 0 + local.get $12 + local.get $5 + local.get $3 + i32.const 7088 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_i32) + i32.eqz + br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0271 + drop + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|0272 + end end + i32.const 1 end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner17 + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -56319,7 +57800,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56331,80 +57812,79 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $3 i32.store - local.get $0 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $0 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i32.extend8_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $0 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i32.extend8_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $0 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i32.extend8_s + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7392 + i32.const 7200 i32.store offset=8 i32.const 0 - local.set $2 - local.get $0 + local.set $5 + local.get $3 i32.load offset=4 - local.set $1 - local.get $0 + local.set $2 + local.get $3 i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $3 - loop $for-loop|092 - local.get $2 - local.get $3 - i32.lt_s + local.set $1 + loop $for-loop|054274 + local.get $1 + local.get $5 + i32.gt_s if local.get $2 - i32.const 2 - i32.shl - local.get $1 + local.get $5 i32.add - i32.load + i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $0 - i32.const 7392 + local.get $5 + local.get $3 + i32.const 7200 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $2 + local.get $5 i32.const 1 i32.add - local.set $2 - br $for-loop|092 + local.set $5 + br $for-loop|054274 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56416,7 +57896,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56428,83 +57908,82 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7424 + i32.const 7232 i32.store offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $3 - loop $for-loop|095135 - local.get $0 - local.get $3 - i32.lt_s + local.set $1 + loop $for-loop|056 + local.get $1 + local.get $5 + i32.gt_s if - local.get $0 - i32.const 3 - i32.shl local.get $2 + local.get $5 i32.add - i64.load + i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 7424 + local.get $5 + local.get $3 + i32.const 7232 i32.load - call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|095135 + local.set $5 + br $for-loop|056 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56516,7 +57995,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56528,83 +58007,82 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 7456 + i32.const 7264 i32.store offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $3 - loop $for-loop|098 - local.get $0 - local.get $3 - i32.lt_s + local.set $1 + loop $for-loop|059 + local.get $1 + local.get $5 + i32.gt_s if - local.get $0 - i32.const 3 - i32.shl local.get $2 + local.get $5 i32.add - i64.load + i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 7456 + local.get $5 + local.get $3 + i32.const 7264 i32.load - call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|098 + local.set $5 + br $for-loop|059 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56616,7 +58094,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56628,83 +58106,83 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.extend16_s + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7488 + i32.const 7296 i32.store offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 2 + i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|0101136 - local.get $0 - local.get $3 - i32.lt_s + local.set $1 + loop $for-loop|061278 + local.get $1 + local.get $5 + i32.gt_s if - local.get $0 - i32.const 2 + local.get $5 + i32.const 1 i32.shl local.get $2 i32.add - f32.load + i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 7488 + local.get $5 + local.get $3 + i32.const 7296 i32.load - call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $0 + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|0101136 + local.set $5 + br $for-loop|061278 end end global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner17 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -56716,7 +58194,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -56728,990 +58206,686 @@ global.set $std/typedarray/forEachCallCount local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $3 i32.store - local.get $1 + local.get $3 global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 0 i32.const 7152 i32.const 0 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 1 i32.const 7152 i32.const 1 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 7152 i32.store offset=4 - local.get $1 + local.get $3 i32.const 2 i32.const 7152 i32.const 2 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - i32.const 7520 + i32.const 7328 i32.store offset=8 i32.const 0 - local.set $0 - local.get $1 + local.set $5 + local.get $3 i32.load offset=4 local.set $2 - local.get $1 + local.get $3 i32.load offset=8 - i32.const 3 + i32.const 1 i32.shr_u - local.set $3 - loop $for-loop|0104 - local.get $0 - local.get $3 - i32.lt_s - if - local.get $0 - i32.const 3 - i32.shl - local.get $2 - i32.add - f64.load - i32.const 3 - global.set $~argumentsLength - local.get $0 - local.get $1 - i32.const 7520 - i32.load - call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0104 - end - end - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Int8Array#constructor - local.tee $3 - i32.store offset=8 - loop $for-loop|0106 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0106 - end - end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 + local.set $1 + loop $for-loop|063280 local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - call $~lib/typedarray/Int8Array#__get - i32.const 7616 - local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.extend8_s - i32.ne - br_if $folding-inner18 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int8Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 8 - i32.ne - br_if $folding-inner19 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 7 - i32.ne - br_if $folding-inner20 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 6 - i32.ne - br_if $folding-inner21 - local.get $0 + local.get $5 + i32.gt_s + if + local.get $5 + i32.const 1 + i32.shl + local.get $2 + i32.add + i32.load16_u + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $3 + i32.const 7328 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|063280 + end + end + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Int8Array#__get - i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $3 i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $2 + local.get $3 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint8Array#constructor - local.tee $3 + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7360 i32.store offset=8 - loop $for-loop|020137 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|020137 - end - end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop i32.const 0 - local.set $0 - loop $for-loop|121 - local.get $0 + local.set $5 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|065 local.get $1 - i32.lt_s + local.get $5 + i32.gt_s if + local.get $5 + i32.const 2 + i32.shl local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - i32.const 7616 - local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - br_if $folding-inner18 - local.get $0 + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $3 + i32.const 7360 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|121 + local.set $5 + br $for-loop|065 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 8 - call $~lib/typedarray/Uint8Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 8 - i32.ne - br_if $folding-inner19 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 7 - i32.ne - br_if $folding-inner20 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 6 - i32.ne - br_if $folding-inner21 - local.get $0 + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Uint8Array#__get - i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $3 i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.get $3 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 i32.store offset=4 + local.get $3 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $3 + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $3 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7392 i32.store offset=8 - loop $for-loop|024108 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|024108 - end - end - local.get $2 - call $~lib/typedarray/Int8Array#reverse - drop i32.const 0 - local.set $0 - loop $for-loop|125 - local.get $0 + local.set $5 + local.get $3 + i32.load offset=4 + local.set $2 + local.get $3 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $1 + loop $for-loop|067 local.get $1 - i32.lt_s + local.get $5 + i32.gt_s if + local.get $5 + i32.const 2 + i32.shl local.get $2 - local.get $0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7616 - local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 255 - i32.and - i32.ne - br_if $folding-inner18 - local.get $0 + i32.add + i32.load + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $3 + i32.const 7392 + i32.load + call_indirect $0 (type $i32_i32_i32_=>_none) + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|125 + local.set $5 + br $for-loop|067 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 8 - call $~lib/typedarray/Uint8ClampedArray#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Int8Array#reverse - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 8 - i32.ne - br_if $folding-inner19 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 7 - i32.ne - br_if $folding-inner20 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 6 - i32.ne - br_if $folding-inner21 - local.get $0 + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $1 - call $~lib/typedarray/Int16Array#constructor + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor local.tee $2 - i32.store offset=4 + i32.store + local.get $2 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Int16Array#constructor - local.tee $3 - i32.store offset=8 - loop $for-loop|028138 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|028138 - end - end + i32.const 7152 + i32.store offset=4 local.get $2 - call $~lib/typedarray/Int16Array#reverse - drop i32.const 0 - local.set $0 - loop $for-loop|129 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - call $~lib/typedarray/Int16Array#__get - i32.const 7616 - local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.extend16_s - i32.ne - br_if $folding-inner18 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|129 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 8 - call $~lib/typedarray/Int16Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 - i32.store offset=16 - local.get $0 + i32.const 7152 i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 8 - i32.ne - br_if $folding-inner19 - local.get $0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 7 - i32.ne - br_if $folding-inner20 - local.get $0 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 6 - i32.ne - br_if $folding-inner21 - local.get $0 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=8 + i32.const 0 + local.set $5 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $0 + loop $for-loop|069 + local.get $0 + local.get $5 + i32.gt_s + if + local.get $5 + i32.const 3 + i32.shl + local.get $1 + i32.add + i64.load + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + i32.const 7424 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|069 + end + end + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Int16Array#__get - i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7628 - i32.load - local.tee $1 - call $~lib/typedarray/Uint16Array#constructor + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor local.tee $2 + i32.store + local.get $2 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/typedarray/Uint16Array#constructor - local.tee $3 - i32.store offset=8 - loop $for-loop|032 - local.get $0 - local.get $1 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|032 - end - end + i32.const 7152 + i32.store offset=4 local.get $2 - call $~lib/typedarray/Int16Array#reverse - drop + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 i32.const 0 + local.set $5 + local.get $2 + i32.load offset=4 + local.set $1 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u local.set $0 - loop $for-loop|133 + loop $for-loop|071285 local.get $0 - local.get $1 - i32.lt_s + local.get $5 + i32.gt_s if - local.get $2 - local.get $0 - call $~lib/typedarray/Uint16Array#__get - i32.const 7616 + local.get $5 + i32.const 3 + i32.shl local.get $1 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.const 65535 - i32.and - i32.ne - br_if $folding-inner18 - local.get $0 + i32.add + i64.load + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + i32.const 7456 + i32.load + call_indirect $0 (type $i64_i32_i32_=>_none) + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|133 + local.set $5 + br $for-loop|071285 end end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 8 - call $~lib/typedarray/Uint16Array#subarray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Int16Array#reverse - local.tee $0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 8 - i32.ne - br_if $folding-inner19 - local.get $0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 7 - i32.ne - br_if $folding-inner20 - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 6 - i32.ne - br_if $folding-inner21 - local.get $0 + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Uint16Array#__get - i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 - i32.store offset=16 - local.get $1 - i32.const 7616 - i32.store - local.get $1 - i32.const 7628 - i32.load + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + local.get $0 + i32.const 3 + call $~lib/typedarray/Float32Array#constructor local.tee $2 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 + i32.store + local.get $2 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 local.get $2 - call $~lib/typedarray/Int32Array#constructor - local.tee $3 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7488 i32.store offset=8 - loop $for-loop|036 - local.get $0 - local.get $2 - i32.lt_s - if - local.get $1 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $3 - local.get $0 - i32.const 7616 - local.get $0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|036 - end - end i32.const 0 - local.set $0 - local.get $1 + local.set $5 + local.get $2 i32.load offset=4 - local.set $4 - local.get $1 + local.set $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $7 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0 - local.get $0 - local.get $7 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - local.get $4 - i32.add - local.tee $8 - i32.load - local.set $11 - local.get $8 - local.get $5 - local.get $0 - i32.sub - i32.const 2 - i32.shl - local.get $4 - i32.add - local.tee $8 - i32.load - i32.store - local.get $8 - local.get $11 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - end - i32.const 0 local.set $0 - loop $for-loop|137 + loop $for-loop|073287 local.get $0 - local.get $2 - i32.lt_s + local.get $5 + i32.gt_s if + local.get $5 + i32.const 2 + i32.shl local.get $1 - local.get $0 - call $~lib/typedarray/Int32Array#__get - i32.const 7616 + i32.add + f32.load + i32.const 3 + global.set $~argumentsLength + local.get $5 local.get $2 - i32.const 1 - i32.sub - local.get $0 - i32.sub - call $~lib/array/Array#__get - i32.ne - br_if $folding-inner18 - local.get $0 + i32.const 7488 + i32.load + call_indirect $0 (type $f32_i32_i32_=>_none) + local.get $5 i32.const 1 i32.add - local.set $0 - br $for-loop|137 + local.set $5 + br $for-loop|073287 end end + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 4 - i32.const 8 - call $~lib/typedarray/Int32Array#subarray - local.set $0 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store local.get $0 - i32.store offset=12 i32.const 0 - local.set $2 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount local.get $0 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $2 + i32.store + local.get $2 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 7520 + i32.store offset=8 + i32.const 0 + local.set $5 + local.get $2 i32.load offset=4 - local.set $3 - local.get $0 + local.set $1 + local.get $2 i32.load offset=8 - i32.const 2 + i32.const 3 i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0140 - local.get $2 + local.set $0 + loop $for-loop|075 + local.get $0 + local.get $5 + i32.gt_s + if local.get $5 - i32.lt_u - if - local.get $2 - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - i32.load - local.set $8 - local.get $7 - local.get $4 - local.get $2 - i32.sub - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - i32.load - i32.store - local.get $7 - local.get $8 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0140 - end - end - end - local.get $0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 8 - i32.ne - br_if $folding-inner19 - local.get $0 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 7 - i32.ne - br_if $folding-inner20 - local.get $0 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 6 - i32.ne - br_if $folding-inner21 - local.get $0 + i32.const 3 + i32.shl + local.get $1 + i32.add + f64.load + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $2 + i32.const 7520 + i32.load + call_indirect $0 (type $f64_i32_i32_=>_none) + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|075 + end + end + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Int32Array#__get - i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57719,234 +58893,131 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 7616 i32.store - local.get $1 + local.get $0 i32.const 7628 i32.load local.tee $2 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Uint32Array#constructor - local.tee $3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 i32.store offset=8 - loop $for-loop|040141 - local.get $0 + loop $for-loop|028 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 local.get $0 + local.get $3 i32.const 7616 - local.get $0 + local.get $3 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $1 local.get $3 - local.get $0 i32.const 7616 - local.get $0 + local.get $3 call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - local.get $0 + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|040141 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $4 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $7 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0143 - local.get $0 - local.get $7 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - local.get $4 - i32.add - local.tee $8 - i32.load - local.set $11 - local.get $8 - local.get $5 - local.get $0 - i32.sub - i32.const 2 - i32.shl - local.get $4 - i32.add - local.tee $8 - i32.load - i32.store - local.get $8 - local.get $11 - i32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0143 - end + local.set $3 + br $for-loop|028 end end + local.get $0 + call $~lib/typedarray/Int8Array#reverse + drop i32.const 0 - local.set $0 - loop $for-loop|141 - local.get $0 + local.set $3 + loop $for-loop|1 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 local.get $0 - call $~lib/typedarray/Uint32Array#__get + local.get $3 + call $~lib/typedarray/Int8Array#__get i32.const 7616 local.get $2 i32.const 1 i32.sub - local.get $0 + local.get $3 i32.sub call $~lib/array/Array#__get + i32.extend8_s i32.ne - br_if $folding-inner18 - local.get $0 + br_if $folding-inner24 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|141 + local.set $3 + br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 + i32.const 4 i32.const 8 - call $~lib/typedarray/Uint32Array#subarray - local.set $0 + call $~lib/typedarray/Int8Array#subarray + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0145 - local.get $2 - local.get $5 - i32.lt_u - if - local.get $2 - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - i32.load - local.set $8 - local.get $7 - local.get $4 - local.get $2 - i32.sub - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - i32.load - i32.store - local.get $7 - local.get $8 - i32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0145 - end - end - end - local.get $0 + local.get $1 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 8 i32.ne - br_if $folding-inner19 + br_if $folding-inner25 local.get $0 i32.const 1 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 7 i32.ne - br_if $folding-inner20 + br_if $folding-inner26 local.get $0 i32.const 2 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 6 i32.ne - br_if $folding-inner21 + br_if $folding-inner27 local.get $0 i32.const 3 - call $~lib/typedarray/Uint32Array#__get + call $~lib/typedarray/Int8Array#__get i32.const 5 i32.ne - br_if $folding-inner22 + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57954,237 +59025,133 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 7616 i32.store - local.get $1 + local.get $0 i32.const 7628 i32.load local.tee $2 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Int64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store offset=8 - loop $for-loop|044 - local.get $0 + loop $for-loop|030 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 local.get $0 + local.get $3 i32.const 7616 - local.get $0 + local.get $3 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $1 local.get $3 - local.get $0 i32.const 7616 - local.get $0 + local.get $3 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - local.get $0 + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|044 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $4 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $7 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0146 - local.get $0 - local.get $7 - i32.lt_u - if - local.get $0 - i32.const 3 - i32.shl - local.get $4 - i32.add - local.tee $8 - i64.load - local.set $6 - local.get $8 - local.get $5 - local.get $0 - i32.sub - i32.const 3 - i32.shl - local.get $4 - i32.add - local.tee $8 - i64.load - i64.store - local.get $8 - local.get $6 - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0146 - end + local.set $3 + br $for-loop|030 end end + local.get $0 + call $~lib/typedarray/Int8Array#reverse + drop i32.const 0 - local.set $0 - loop $for-loop|145 - local.get $0 + local.set $3 + loop $for-loop|131 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 local.get $0 - call $~lib/typedarray/Int64Array#__get + local.get $3 + call $~lib/typedarray/Uint8Array#__get i32.const 7616 local.get $2 i32.const 1 i32.sub - local.get $0 + local.get $3 i32.sub call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - br_if $folding-inner18 - local.get $0 + i32.const 255 + i32.and + i32.ne + br_if $folding-inner24 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|145 + local.set $3 + br $for-loop|131 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 8 - call $~lib/typedarray/Int64Array#subarray - local.set $0 + call $~lib/typedarray/Uint8Array#subarray + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0148 - local.get $2 - local.get $5 - i32.lt_u - if - local.get $2 - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - i64.load - local.set $6 - local.get $7 - local.get $4 - local.get $2 - i32.sub - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - i64.load - i64.store - local.get $7 - local.get $6 - i64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0148 - end - end - end - local.get $0 + local.get $1 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 8 - i64.ne - br_if $folding-inner19 + call $~lib/typedarray/Uint8Array#__get + i32.const 8 + i32.ne + br_if $folding-inner25 local.get $0 i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 7 - i64.ne - br_if $folding-inner20 + call $~lib/typedarray/Uint8Array#__get + i32.const 7 + i32.ne + br_if $folding-inner26 local.get $0 i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 6 - i64.ne - br_if $folding-inner21 + call $~lib/typedarray/Uint8Array#__get + i32.const 6 + i32.ne + br_if $folding-inner27 local.get $0 i32.const 3 - call $~lib/typedarray/Int64Array#__get - i64.const 5 - i64.ne - br_if $folding-inner22 + call $~lib/typedarray/Uint8Array#__get + i32.const 5 + i32.ne + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58192,237 +59159,133 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 7616 i32.store - local.get $1 + local.get $0 i32.const 7628 i32.load local.tee $2 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Uint64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 i32.store offset=8 - loop $for-loop|048 - local.get $0 + loop $for-loop|032 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 local.get $0 + local.get $3 i32.const 7616 - local.get $0 + local.get $3 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 local.get $3 - local.get $0 i32.const 7616 - local.get $0 + local.get $3 call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $0 + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|048 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $4 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $7 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0150 - local.get $0 - local.get $7 - i32.lt_u - if - local.get $0 - i32.const 3 - i32.shl - local.get $4 - i32.add - local.tee $8 - i64.load - local.set $6 - local.get $8 - local.get $5 - local.get $0 - i32.sub - i32.const 3 - i32.shl - local.get $4 - i32.add - local.tee $8 - i64.load - i64.store - local.get $8 - local.get $6 - i64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0150 - end + local.set $3 + br $for-loop|032 end end + local.get $0 + call $~lib/typedarray/Int8Array#reverse + drop i32.const 0 - local.set $0 - loop $for-loop|149 - local.get $0 + local.set $3 + loop $for-loop|133 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 local.get $0 - call $~lib/typedarray/Uint64Array#__get + local.get $3 + call $~lib/typedarray/Uint8ClampedArray#__get i32.const 7616 local.get $2 i32.const 1 i32.sub - local.get $0 + local.get $3 i32.sub call $~lib/array/Array#__get - i64.extend_i32_s - i64.ne - br_if $folding-inner18 - local.get $0 + i32.const 255 + i32.and + i32.ne + br_if $folding-inner24 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|149 + local.set $3 + br $for-loop|133 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 8 - call $~lib/typedarray/Uint64Array#subarray - local.set $0 + call $~lib/typedarray/Uint8ClampedArray#subarray + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0152 - local.get $2 - local.get $5 - i32.lt_u - if - local.get $2 - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - i64.load - local.set $6 - local.get $7 - local.get $4 - local.get $2 - i32.sub - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - i64.load - i64.store - local.get $7 - local.get $6 - i64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0152 - end - end - end - local.get $0 + local.get $1 + call $~lib/typedarray/Int8Array#reverse + local.tee $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 8 - i64.ne - br_if $folding-inner19 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 8 + i32.ne + br_if $folding-inner25 local.get $0 i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 7 - i64.ne - br_if $folding-inner20 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 7 + i32.ne + br_if $folding-inner26 local.get $0 i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 6 - i64.ne - br_if $folding-inner21 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 6 + i32.ne + br_if $folding-inner27 local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#__get - i64.const 5 - i64.ne - br_if $folding-inner22 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 5 + i32.ne + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58430,237 +59293,130 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 7616 i32.store - local.get $1 + local.get $0 i32.const 7628 i32.load local.tee $2 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Float32Array#constructor - local.tee $3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 i32.store offset=8 - loop $for-loop|052110 - local.get $0 + loop $for-loop|034 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 local.get $0 + local.get $3 i32.const 7616 - local.get $0 + local.get $3 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $1 local.get $3 - local.get $0 i32.const 7616 - local.get $0 + local.get $3 call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - local.get $0 + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|052110 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $4 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $7 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0153 - local.get $0 - local.get $7 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - local.get $4 - i32.add - local.tee $8 - f32.load - local.set $9 - local.get $8 - local.get $5 - local.get $0 - i32.sub - i32.const 2 - i32.shl - local.get $4 - i32.add - local.tee $8 - f32.load - f32.store - local.get $8 - local.get $9 - f32.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0153 - end + local.set $3 + br $for-loop|034 end end + local.get $0 + call $~lib/typedarray/Int16Array#reverse + drop i32.const 0 - local.set $0 - loop $for-loop|153 - local.get $0 + local.set $3 + loop $for-loop|135 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 local.get $0 - call $~lib/typedarray/Float32Array#__get + local.get $3 + call $~lib/typedarray/Int16Array#__get i32.const 7616 local.get $2 i32.const 1 i32.sub - local.get $0 + local.get $3 i32.sub call $~lib/array/Array#__get - f32.convert_i32_s - f32.ne - br_if $folding-inner18 - local.get $0 + i32.extend16_s + i32.ne + br_if $folding-inner24 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|153 + local.set $3 + br $for-loop|135 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $1 i32.const 8 - call $~lib/typedarray/Float32Array#subarray - local.set $0 + call $~lib/typedarray/Int16Array#subarray + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0155 - local.get $2 - local.get $5 - i32.lt_u - if - local.get $2 - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - f32.load - local.set $9 - local.get $7 - local.get $4 - local.get $2 - i32.sub - i32.const 2 - i32.shl - local.get $3 - i32.add - local.tee $7 - f32.load - f32.store - local.get $7 - local.get $9 - f32.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0155 - end - end - end - local.get $0 + local.get $1 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 8 - f32.ne - br_if $folding-inner19 + call $~lib/typedarray/Int16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner25 local.get $0 i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 7 - f32.ne - br_if $folding-inner20 + call $~lib/typedarray/Int16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner26 local.get $0 i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 6 - f32.ne - br_if $folding-inner21 + call $~lib/typedarray/Int16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner27 local.get $0 i32.const 3 - call $~lib/typedarray/Float32Array#__get - f32.const 5 - f32.ne - br_if $folding-inner22 + call $~lib/typedarray/Int16Array#__get + i32.const 5 + i32.ne + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $3 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -58668,236 +59424,137 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 7616 i32.store - local.get $1 + local.get $0 i32.const 7628 i32.load local.tee $2 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 - call $~lib/typedarray/Float64Array#constructor - local.tee $3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 i32.store offset=8 - loop $for-loop|056156 - local.get $0 + loop $for-loop|037 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 local.get $0 + local.get $3 i32.const 7616 - local.get $0 + local.get $3 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $1 local.get $3 - local.get $0 i32.const 7616 - local.get $0 + local.get $3 call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - local.get $0 + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|056156 - end - end - i32.const 0 - local.set $0 - local.get $1 - i32.load offset=4 - local.set $4 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $5 - i32.const 1 - i32.gt_u - if - local.get $5 - i32.const 1 - i32.shr_u - local.set $7 - local.get $5 - i32.const 1 - i32.sub - local.set $5 - loop $while-continue|0157 - local.get $0 - local.get $7 - i32.lt_u - if - local.get $0 - i32.const 3 - i32.shl - local.get $4 - i32.add - local.tee $8 - f64.load - local.set $10 - local.get $8 - local.get $5 - local.get $0 - i32.sub - i32.const 3 - i32.shl - local.get $4 - i32.add - local.tee $8 - f64.load - f64.store - local.get $8 - local.get $10 - f64.store - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0157 - end + local.set $3 + br $for-loop|037 end end + local.get $0 + call $~lib/typedarray/Int16Array#reverse + drop i32.const 0 - local.set $0 - loop $for-loop|157 - local.get $0 + local.set $3 + loop $for-loop|138 local.get $2 - i32.lt_s + local.get $3 + i32.gt_s if - local.get $1 local.get $0 - call $~lib/typedarray/Float64Array#__get + local.get $3 + call $~lib/typedarray/Uint16Array#__get i32.const 7616 local.get $2 i32.const 1 i32.sub - local.get $0 + local.get $3 i32.sub call $~lib/array/Array#__get - f64.convert_i32_s - f64.ne - br_if $folding-inner18 - local.get $0 + i32.const 65535 + i32.and + i32.ne + br_if $folding-inner24 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|157 + local.set $3 + br $for-loop|138 end end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 4 + local.get $1 i32.const 8 - call $~lib/typedarray/Float64Array#subarray - local.set $0 + call $~lib/typedarray/Uint16Array#subarray + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=12 - i32.const 0 - local.set $2 - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $4 - i32.const 1 - i32.gt_u - if - local.get $4 - i32.const 1 - i32.shr_u - local.set $5 - local.get $4 - i32.const 1 - i32.sub - local.set $4 - loop $while-continue|0159 - local.get $2 - local.get $5 - i32.lt_u - if - local.get $2 - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - f64.load - local.set $10 - local.get $7 - local.get $4 - local.get $2 - i32.sub - i32.const 3 - i32.shl - local.get $3 - i32.add - local.tee $7 - f64.load - f64.store - local.get $7 - local.get $10 - f64.store - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0159 - end - end - end - local.get $0 + local.get $1 + call $~lib/typedarray/Int16Array#reverse + local.tee $0 i32.store offset=16 local.get $0 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 8 - f64.ne - br_if $folding-inner19 + call $~lib/typedarray/Uint16Array#__get + i32.const 8 + i32.ne + br_if $folding-inner25 local.get $0 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.ne - br_if $folding-inner20 + call $~lib/typedarray/Uint16Array#__get + i32.const 7 + i32.ne + br_if $folding-inner26 local.get $0 i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.ne - br_if $folding-inner21 + call $~lib/typedarray/Uint16Array#__get + i32.const 6 + i32.ne + br_if $folding-inner27 local.get $0 i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.ne - br_if $folding-inner22 + call $~lib/typedarray/Uint16Array#__get + i32.const 5 + i32.ne + br_if $folding-inner28 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer + call $std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64> call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8> call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8> call $std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8> @@ -58912,18 +59569,18 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float64Array#constructor - local.tee $2 + local.tee $4 i32.store offset=12 - local.get $2 + local.get $4 i32.const 0 f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u @@ -58933,35 +59590,35 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|0160 - local.get $1 + local.set $2 + loop $while-continue|0 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl - local.get $4 + local.get $2 i32.add f64.load f64.const nan:0x8000000000000 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|0160 + local.set $0 + br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -58973,50 +59630,50 @@ unreachable end i32.const 0 - local.set $1 + local.set $5 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) i32.const 0 - local.get $2 + local.get $4 i32.load offset=8 i32.const 3 i32.shr_u - local.tee $3 + local.tee $1 i32.const 0 - local.get $3 + local.get $1 select i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $2 + local.get $4 i32.load offset=4 - local.set $2 - loop $while-continue|060 + local.set $0 + loop $while-continue|0289 local.get $1 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if i32.const 1 i32.const 1 - local.get $1 + local.get $5 i32.const 3 i32.shl - local.get $2 + local.get $0 i32.add f64.load - local.tee $10 - local.get $10 + local.tee $12 + local.get $12 f64.ne - local.get $10 + local.get $12 f64.const nan:0x8000000000000 f64.eq select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $1 + local.get $5 i32.const 1 i32.add - local.set $1 - br $while-continue|060 + local.set $5 + br $while-continue|0289 end end i32.const 0 @@ -59033,18 +59690,18 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/typedarray/Float32Array#constructor - local.tee $2 + local.tee $4 i32.store offset=24 - local.get $2 + local.get $4 i32.const 0 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u @@ -59054,35 +59711,35 @@ select i32.eqz br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $2 + local.get $4 i32.load offset=4 - local.set $4 - loop $while-continue|062 - local.get $1 + local.set $2 + loop $while-continue|0290 + local.get $0 local.get $3 i32.lt_s if - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl - local.get $4 + local.get $2 i32.add f32.load f32.const nan:0x400000 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 - br $while-continue|062 + local.set $0 + br $while-continue|0290 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -59094,50 +59751,50 @@ unreachable end i32.const 0 - local.set $1 + local.set $5 block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) i32.const 0 - local.get $2 + local.get $4 i32.load offset=8 i32.const 2 i32.shr_u - local.tee $3 + local.tee $1 i32.const 0 - local.get $3 + local.get $1 select i32.eqz br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $2 + local.get $4 i32.load offset=4 - local.set $2 - loop $while-continue|064 + local.set $0 + loop $while-continue|078 local.get $1 - local.get $3 - i32.lt_s + local.get $5 + i32.gt_s if i32.const 1 i32.const 1 - local.get $1 + local.get $5 i32.const 2 i32.shl - local.get $2 + local.get $0 i32.add f32.load - local.tee $9 - local.get $9 + local.tee $11 + local.get $11 f32.ne - local.get $9 + local.get $11 f32.const nan:0x400000 f32.eq select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $1 + local.get $5 i32.const 1 i32.add - local.set $1 - br $while-continue|064 + local.set $5 + br $while-continue|078 end end i32.const 0 @@ -59158,7 +59815,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59169,45 +59826,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int8Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Int8Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59215,33 +59872,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9584 i32.store - local.get $0 + local.get $1 call $~lib/typedarray/Int8Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59253,7 +59910,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59264,60 +59921,60 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Uint8Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 - local.get $0 + br_if $folding-inner15 + local.get $1 call $~lib/typedarray/Uint8Array#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59329,7 +59986,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59340,60 +59997,60 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Uint8Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 - local.get $0 + br_if $folding-inner15 + local.get $1 call $~lib/typedarray/Uint8Array#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59405,7 +60062,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59416,45 +60073,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int16Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Int16Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59462,33 +60119,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9584 i32.store - local.get $0 + local.get $1 call $~lib/typedarray/Int16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59500,7 +60157,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59511,45 +60168,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Uint16Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59557,33 +60214,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9584 i32.store - local.get $0 + local.get $1 call $~lib/typedarray/Uint16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59595,7 +60252,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59606,45 +60263,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Int32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59652,33 +60309,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9584 i32.store - local.get $0 + local.get $1 call $~lib/typedarray/Int32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59690,7 +60347,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59701,45 +60358,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint32Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 3 i32.const 4 call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 4 i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Uint32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59747,33 +60404,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9584 i32.store - local.get $0 + local.get $1 call $~lib/typedarray/Uint32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59785,7 +60442,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59796,45 +60453,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Int64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $1 i32.const 3 i64.const 4 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $1 i32.const 4 i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59842,33 +60499,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9584 i32.store - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59880,7 +60537,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59891,45 +60548,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $1 i32.const 3 i64.const 4 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $1 i32.const 4 i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Uint64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 9616 i32.store offset=8 - local.get $1 + local.get $0 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner23 + br_if $folding-inner15 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -59937,33 +60594,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9584 i32.store - local.get $0 + local.get $1 call $~lib/typedarray/Uint64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 9616 i32.store offset=8 - local.get $0 + local.get $1 i32.const 9616 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner24 + br_if $folding-inner16 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -59975,7 +60632,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -59986,45 +60643,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Float32Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 3 f32.const 4 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 4 f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Float32Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner25 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60032,33 +60689,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9584 i32.store - local.get $0 + local.get $1 call $~lib/typedarray/Float32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 10800 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner26 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60070,7 +60727,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -60081,45 +60738,45 @@ local.get $0 i32.const 5 call $~lib/typedarray/Float64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 3 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 4 f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store offset=12 - local.get $0 + local.get $1 call $~lib/typedarray/Float64Array#join - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10800 i32.store offset=8 - local.get $1 + local.get $0 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner25 + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -60127,33 +60784,33 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 9584 i32.store - local.get $0 + local.get $1 call $~lib/typedarray/Float64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 10800 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10800 call $~lib/string/String.__eq i32.eqz - br_if $folding-inner26 + br_if $folding-inner18 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -60205,7 +60862,7 @@ unreachable end i32.const 0 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60213,66 +60870,66 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Int8Array#constructor - local.tee $2 + local.tee $6 i32.store offset=4 - loop $for-loop|069 - local.get $0 - local.get $4 + loop $for-loop|041 + local.get $2 + local.get $3 i32.lt_s if + local.get $6 local.get $2 - local.get $0 i32.const 10928 - local.get $0 + local.get $2 call $~lib/array/Array#__get i32.extend8_s call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|069 + local.set $2 + br $for-loop|041 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load local.tee $1 + local.get $6 + i32.load + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.load offset=4 - local.get $2 + local.get $6 i32.load i32.sub local.tee $0 - local.get $2 + local.get $6 i32.load offset=8 local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -60284,12 +60941,12 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -60301,16 +60958,16 @@ local.tee $1 i32.store local.get $1 - local.get $3 + local.get $4 i32.store local.get $1 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -60319,25 +60976,25 @@ local.get $1 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|171 - local.get $0 - local.get $4 + local.set $2 + loop $for-loop|142 + local.get $2 + local.get $3 i32.lt_s if + local.get $6 local.get $2 - local.get $0 call $~lib/typedarray/Int8Array#__get local.get $1 - local.get $0 + local.get $2 call $~lib/typedarray/Int8Array#__get i32.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|171 + local.set $2 + br $for-loop|142 end end global.get $~lib/memory/__stack_pointer @@ -60345,7 +61002,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60353,64 +61010,64 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load local.tee $2 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $3 i32.store offset=4 - loop $for-loop|074 - local.get $0 + loop $for-loop|043 + local.get $1 local.get $2 i32.lt_s if + local.get $3 local.get $1 - local.get $0 i32.const 10928 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|074 + local.set $1 + br $for-loop|043 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 + local.tee $1 + local.get $3 i32.load - local.tee $3 + local.tee $0 i32.store offset=8 + local.get $1 local.get $0 local.get $3 - local.get $1 i32.load offset=4 - local.get $1 + local.get $3 i32.load i32.sub local.tee $0 - local.get $1 - i32.load offset=8 local.get $0 + local.get $3 + i32.load offset=8 i32.add call $~lib/arraybuffer/ArrayBuffer#slice local.tee $0 @@ -60421,28 +61078,28 @@ local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $3 + local.tee $0 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|177 - local.get $0 + local.set $1 + loop $for-loop|144 + local.get $1 local.get $2 i32.lt_s if + local.get $3 local.get $1 - local.get $0 call $~lib/typedarray/Uint8Array#__get - local.get $3 local.get $0 + local.get $1 call $~lib/typedarray/Uint8Array#__get i32.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|177 + local.set $1 + br $for-loop|144 end end global.get $~lib/memory/__stack_pointer @@ -60450,7 +61107,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60458,67 +61115,67 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load - local.tee $4 + local.tee $3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $2 + local.tee $6 i32.store offset=4 - loop $for-loop|080131 - local.get $0 - local.get $4 + loop $for-loop|047 + local.get $2 + local.get $3 i32.lt_s if + local.get $6 local.get $2 - local.get $0 i32.const 10928 - local.get $0 + local.get $2 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|080131 + local.set $2 + br $for-loop|047 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load local.tee $1 + local.get $6 + i32.load + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.load offset=4 - local.get $2 + local.get $6 i32.load i32.sub local.tee $0 - local.get $2 + local.get $6 i32.load offset=8 local.get $0 i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $3 + local.tee $4 i32.store offset=12 i32.const 1 global.set $~argumentsLength @@ -60530,12 +61187,12 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store - local.get $3 + local.get $4 i32.const 20 i32.sub i32.load offset=16 @@ -60547,16 +61204,16 @@ local.tee $1 i32.store local.get $1 - local.get $3 + local.get $4 i32.store local.get $1 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $1 local.get $0 i32.store offset=8 local.get $1 - local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -60565,25 +61222,25 @@ local.get $1 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|183 - local.get $0 - local.get $4 + local.set $2 + loop $for-loop|148 + local.get $2 + local.get $3 i32.lt_s if + local.get $6 local.get $2 - local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get local.get $1 - local.get $0 + local.get $2 call $~lib/typedarray/Uint8ClampedArray#__get i32.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|183 + local.set $2 + br $for-loop|148 end end global.get $~lib/memory/__stack_pointer @@ -60591,7 +61248,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60599,61 +61256,61 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load - local.tee $4 - call $~lib/typedarray/Int16Array#constructor local.tee $2 + call $~lib/typedarray/Int16Array#constructor + local.tee $6 i32.store offset=4 - loop $for-loop|086138 - local.get $0 - local.get $4 + loop $for-loop|053 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 i32.const 10928 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|086138 + local.set $1 + br $for-loop|053 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load local.tee $1 + local.get $6 + i32.load + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.load offset=4 - local.get $2 + local.get $6 i32.load i32.sub local.tee $0 - local.get $2 + local.get $6 i32.load offset=8 local.get $0 i32.add @@ -60670,7 +61327,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -60681,51 +61338,51 @@ local.tee $0 i32.const 1 i32.and - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 local.get $3 i32.store - local.get $1 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 local.get $0 i32.store offset=8 - local.get $1 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|189 - local.get $0 - local.get $4 + local.set $1 + loop $for-loop|154 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/typedarray/Int16Array#__get + local.get $4 local.get $1 - local.get $0 call $~lib/typedarray/Int16Array#__get i32.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|189 + local.set $1 + br $for-loop|154 end end global.get $~lib/memory/__stack_pointer @@ -60733,7 +61390,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60741,62 +61398,62 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load - local.tee $4 - call $~lib/typedarray/Uint16Array#constructor local.tee $2 + call $~lib/typedarray/Uint16Array#constructor + local.tee $6 i32.store offset=4 - loop $for-loop|092145 - local.get $0 - local.get $4 + loop $for-loop|057 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 i32.const 10928 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|092145 + local.set $1 + br $for-loop|057 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load local.tee $1 + local.get $6 + i32.load + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.load offset=4 - local.get $2 + local.get $6 i32.load i32.sub local.tee $0 - local.get $2 + local.get $6 i32.load offset=8 local.get $0 i32.add @@ -60813,7 +61470,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -60824,51 +61481,51 @@ local.tee $0 i32.const 1 i32.and - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 7 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 local.get $3 i32.store - local.get $1 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 local.get $0 i32.store offset=8 - local.get $1 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|195 - local.get $0 - local.get $4 + local.set $1 + loop $for-loop|158 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/typedarray/Uint16Array#__get + local.get $4 local.get $1 - local.get $0 call $~lib/typedarray/Uint16Array#__get i32.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|195 + local.set $1 + br $for-loop|158 end end global.get $~lib/memory/__stack_pointer @@ -60876,7 +61533,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -60884,60 +61541,60 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load - local.tee $4 - call $~lib/typedarray/Int32Array#constructor local.tee $2 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 i32.store offset=4 - loop $for-loop|098152 - local.get $0 - local.get $4 + loop $for-loop|060 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 i32.const 10928 - local.get $0 + local.get $1 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|098152 + local.set $1 + br $for-loop|060 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load local.tee $1 + local.get $6 + i32.load + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.load offset=4 - local.get $2 + local.get $6 i32.load i32.sub local.tee $0 - local.get $2 + local.get $6 i32.load offset=8 local.get $0 i32.add @@ -60954,7 +61611,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -60965,51 +61622,51 @@ local.tee $0 i32.const 3 i32.and - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 8 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 local.get $3 i32.store - local.get $1 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 local.get $0 i32.store offset=8 - local.get $1 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|1101 - local.get $0 - local.get $4 + local.set $1 + loop $for-loop|161 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/typedarray/Int32Array#__get + local.get $4 local.get $1 - local.get $0 call $~lib/typedarray/Int32Array#__get i32.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|1101 + local.set $1 + br $for-loop|161 end end global.get $~lib/memory/__stack_pointer @@ -61017,7 +61674,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61025,60 +61682,60 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load - local.tee $4 - call $~lib/typedarray/Uint32Array#constructor local.tee $2 + call $~lib/typedarray/Uint32Array#constructor + local.tee $6 i32.store offset=4 - loop $for-loop|0104159 - local.get $0 - local.get $4 + loop $for-loop|064 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 i32.const 10928 - local.get $0 + local.get $1 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0104159 + local.set $1 + br $for-loop|064 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load local.tee $1 + local.get $6 + i32.load + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.load offset=4 - local.get $2 + local.get $6 i32.load i32.sub local.tee $0 - local.get $2 + local.get $6 i32.load offset=8 local.get $0 i32.add @@ -61095,7 +61752,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61106,51 +61763,51 @@ local.tee $0 i32.const 3 i32.and - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 9 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 local.get $3 i32.store - local.get $1 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 local.get $0 i32.store offset=8 - local.get $1 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|1107 - local.get $0 - local.get $4 + local.set $1 + loop $for-loop|165 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/typedarray/Uint32Array#__get + local.get $4 local.get $1 - local.get $0 call $~lib/typedarray/Uint32Array#__get i32.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|1107 + local.set $1 + br $for-loop|165 end end global.get $~lib/memory/__stack_pointer @@ -61158,7 +61815,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61166,61 +61823,61 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load - local.tee $4 - call $~lib/typedarray/Int64Array#constructor local.tee $2 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 i32.store offset=4 - loop $for-loop|0110 - local.get $0 - local.get $4 + loop $for-loop|070 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 i32.const 10928 - local.get $0 + local.get $1 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0110 + local.set $1 + br $for-loop|070 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load local.tee $1 + local.get $6 + i32.load + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.load offset=4 - local.get $2 + local.get $6 i32.load i32.sub local.tee $0 - local.get $2 + local.get $6 i32.load offset=8 local.get $0 i32.add @@ -61237,7 +61894,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61248,51 +61905,51 @@ local.tee $0 i32.const 7 i32.and - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 10 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 local.get $3 i32.store - local.get $1 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 local.get $0 i32.store offset=8 - local.get $1 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|1113 - local.get $0 - local.get $4 + local.set $1 + loop $for-loop|171 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/typedarray/Int64Array#__get + local.get $4 local.get $1 - local.get $0 call $~lib/typedarray/Int64Array#__get i64.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|1113 + local.set $1 + br $for-loop|171 end end global.get $~lib/memory/__stack_pointer @@ -61300,7 +61957,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61308,61 +61965,61 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load - local.tee $4 - call $~lib/typedarray/Uint64Array#constructor local.tee $2 + call $~lib/typedarray/Uint64Array#constructor + local.tee $6 i32.store offset=4 - loop $for-loop|0116 - local.get $0 - local.get $4 + loop $for-loop|074 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 i32.const 10928 - local.get $0 + local.get $1 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0116 + local.set $1 + br $for-loop|074 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load local.tee $1 + local.get $6 + i32.load + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.load offset=4 - local.get $2 + local.get $6 i32.load i32.sub local.tee $0 - local.get $2 + local.get $6 i32.load offset=8 local.get $0 i32.add @@ -61379,7 +62036,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61390,51 +62047,51 @@ local.tee $0 i32.const 7 i32.and - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 11 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 local.get $3 i32.store - local.get $1 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 local.get $0 i32.store offset=8 - local.get $1 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|1119 - local.get $0 - local.get $4 + local.set $1 + loop $for-loop|175 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/typedarray/Uint64Array#__get + local.get $4 local.get $1 - local.get $0 call $~lib/typedarray/Uint64Array#__get i64.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|1119 + local.set $1 + br $for-loop|175 end end global.get $~lib/memory/__stack_pointer @@ -61442,7 +62099,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61450,61 +62107,61 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load - local.tee $4 - call $~lib/typedarray/Float32Array#constructor local.tee $2 + call $~lib/typedarray/Float32Array#constructor + local.tee $6 i32.store offset=4 - loop $for-loop|0122 - local.get $0 - local.get $4 + loop $for-loop|077 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 i32.const 10928 - local.get $0 + local.get $1 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0122 + local.set $1 + br $for-loop|077 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load local.tee $1 + local.get $6 + i32.load + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.load offset=4 - local.get $2 + local.get $6 i32.load i32.sub local.tee $0 - local.get $2 + local.get $6 i32.load offset=8 local.get $0 i32.add @@ -61521,7 +62178,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61532,51 +62189,51 @@ local.tee $0 i32.const 3 i32.and - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 12 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 local.get $3 i32.store - local.get $1 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 local.get $0 i32.store offset=8 - local.get $1 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|1125 - local.get $0 - local.get $4 + local.set $1 + loop $for-loop|178 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/typedarray/Float32Array#__get + local.get $4 local.get $1 - local.get $0 call $~lib/typedarray/Float32Array#__get f32.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|1125 + local.set $1 + br $for-loop|178 end end global.get $~lib/memory/__stack_pointer @@ -61584,7 +62241,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -61592,61 +62249,61 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10928 i32.store - local.get $1 + local.get $0 i32.const 10940 i32.load - local.tee $4 - call $~lib/typedarray/Float64Array#constructor local.tee $2 + call $~lib/typedarray/Float64Array#constructor + local.tee $6 i32.store offset=4 - loop $for-loop|0128 - local.get $0 - local.get $4 + loop $for-loop|080 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 i32.const 10928 - local.get $0 + local.get $1 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|0128 + local.set $1 + br $for-loop|080 end end global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 - i32.load local.tee $1 + local.get $6 + i32.load + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 - local.get $2 + local.get $0 + local.get $6 i32.load offset=4 - local.get $2 + local.get $6 i32.load i32.sub local.tee $0 - local.get $2 + local.get $6 i32.load offset=8 local.get $0 i32.add @@ -61663,7 +62320,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -61674,51 +62331,51 @@ local.tee $0 i32.const 7 i32.and - br_if $folding-inner28 + br_if $folding-inner30 global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 13 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store - local.get $1 + local.get $4 local.get $3 i32.store - local.get $1 + local.get $4 local.get $3 call $~lib/rt/itcms/__link - local.get $1 + local.get $4 local.get $0 i32.store offset=8 - local.get $1 + local.get $4 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=16 i32.const 0 - local.set $0 - loop $for-loop|1131 - local.get $0 - local.get $4 + local.set $1 + loop $for-loop|181 + local.get $1 + local.get $2 i32.lt_s if - local.get $2 - local.get $0 + local.get $6 + local.get $1 call $~lib/typedarray/Float64Array#__get + local.get $4 local.get $1 - local.get $0 call $~lib/typedarray/Float64Array#__get f64.ne - br_if $folding-inner27 - local.get $0 + br_if $folding-inner29 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|1131 + local.set $1 + br $for-loop|181 end end global.get $~lib/memory/__stack_pointer @@ -61739,7 +62396,7 @@ global.get $~lib/memory/__stack_pointer i32.const 10 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + local.tee $7 i32.store offset=24 global.get $~lib/memory/__stack_pointer i32.const 3 @@ -61761,38 +62418,38 @@ global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int64Array#constructor - local.tee $2 + local.tee $5 i32.store offset=8 - local.get $2 + local.get $5 i32.const 0 i64.const -10 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $5 i32.const 1 i64.const 100 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $5 i32.const 2 i64.const 10 call $~lib/typedarray/Int64Array#__set - local.get $2 + local.get $5 i32.const 3 i64.const 300 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/typedarray/Int32Array#constructor - local.tee $4 + local.tee $0 i32.store offset=16 - local.get $4 + local.get $0 i32.const 0 i32.const 300 call $~lib/typedarray/Int32Array#__set - local.get $4 + local.get $0 i32.const 1 i32.const -1 call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $7 i32.load offset=8 local.get $1 i32.load offset=8 @@ -61801,43 +62458,43 @@ i32.const 1 i32.add i32.lt_s - br_if $folding-inner29 - local.get $0 + br_if $folding-inner19 + local.get $7 i32.load offset=4 i32.const 1 i32.add - local.set $3 + local.set $4 local.get $1 i32.load offset=4 - local.set $5 + local.set $3 local.get $1 i32.load offset=8 i32.const 2 i32.shr_u - local.set $7 - loop $for-loop|0135 - local.get $7 - local.get $12 + local.set $2 + loop $for-loop|082 + local.get $2 + local.get $16 i32.gt_s if - local.get $3 - local.get $12 + local.get $4 + local.get $16 i32.add - local.get $12 + local.get $16 i32.const 2 i32.shl - local.get $5 + local.get $3 i32.add f32.load - local.tee $9 - local.get $9 + local.tee $11 + local.get $11 f32.sub f32.const 0 f32.eq if (result i32) f32.const 0 f32.const 255 - local.get $9 + local.get $11 f32.min f32.max i32.trunc_f32_u @@ -61845,75 +62502,75 @@ i32.const 0 end i32.store8 - local.get $12 + local.get $16 i32.const 1 i32.add - local.set $12 - br $for-loop|0135 + local.set $16 + br $for-loop|082 end end - local.get $0 - local.get $2 + local.get $7 + local.get $5 i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 0 - local.set $3 - local.get $0 + local.set $6 + local.get $7 i32.load offset=8 - local.get $4 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.const 8 i32.add i32.lt_s - br_if $folding-inner29 - local.get $0 + br_if $folding-inner19 + local.get $7 i32.load offset=4 i32.const 8 i32.add local.set $2 - local.get $4 + local.get $0 i32.load offset=4 - local.set $12 - local.get $4 + local.set $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - loop $for-loop|0139 - local.get $3 - local.get $4 - i32.lt_s + local.set $0 + loop $for-loop|086311 + local.get $0 + local.get $6 + i32.gt_s if local.get $2 - local.get $3 + local.get $6 i32.add - i32.const 255 - local.get $3 + local.get $6 i32.const 2 i32.shl - local.get $12 + local.get $1 i32.add i32.load - local.tee $1 + local.tee $3 + i32.const 255 + local.get $3 i32.sub i32.const 31 i32.shr_s - local.get $1 i32.or - local.get $1 + local.get $3 i32.const 31 i32.shr_s i32.const -1 i32.xor i32.and i32.store8 - local.get $3 + local.get $6 i32.const 1 i32.add - local.set $3 - br $for-loop|0139 + local.set $6 + br $for-loop|086311 end end i32.const 10 @@ -61921,106 +62578,106 @@ i32.const 63 i32.const 15280 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $7 local.get $0 - local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + local.tee $0 i32.store offset=28 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 300 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 100 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const -1 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Int16Array#constructor - local.tee $2 + local.tee $4 i32.store - local.get $2 + local.get $4 i32.const 0 i32.const -10 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $4 i32.const 1 i32.const 100 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $4 i32.const 2 i32.const 10 call $~lib/typedarray/Int16Array#__set - local.get $2 + local.get $4 i32.const 3 i32.const 300 call $~lib/typedarray/Int16Array#__set i32.const 0 - local.set $12 - local.get $0 + local.set $6 + local.get $7 i32.load offset=8 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u i32.lt_s - br_if $folding-inner29 - local.get $0 + br_if $folding-inner19 + local.get $7 i32.load offset=4 local.set $3 - local.get $1 + local.get $0 i32.load offset=4 - local.set $4 - local.get $1 + local.set $2 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u local.set $1 - loop $for-loop|0143 + loop $for-loop|090 local.get $1 - local.get $12 + local.get $6 i32.gt_s if local.get $3 - local.get $12 + local.get $6 i32.add i32.const 255 - local.get $12 + local.get $6 i32.const 2 i32.shl - local.get $4 + local.get $2 i32.add i32.load - local.tee $5 - local.get $5 + local.tee $0 + local.get $0 i32.const 255 i32.gt_u select i32.store8 - local.get $12 + local.get $6 i32.const 1 i32.add - local.set $12 - br $for-loop|0143 + local.set $6 + br $for-loop|090 end end - local.get $0 - local.get $2 + local.get $7 + local.get $4 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> i32.const 10 @@ -62028,12 +62685,12 @@ i32.const 63 i32.const 15312 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $7 local.get $0 - local.get $1 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 local.set $1 @@ -62044,7 +62701,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62055,17 +62712,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $0 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Int8Array#__set @@ -62079,7 +62736,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -62097,9 +62754,9 @@ i32.const 15344 i32.store end - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 local.get $1 call $~lib/util/sort/SORT @@ -62107,53 +62764,53 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner30 - local.get $0 + br_if $folding-inner31 + local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner31 - local.get $0 + br_if $folding-inner32 + local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15376 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 15376 call $~lib/util/sort/SORT - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne - br_if $folding-inner33 - local.get $0 + br_if $folding-inner34 + local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne - br_if $folding-inner34 - local.get $0 + br_if $folding-inner35 + local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62167,7 +62824,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62178,17 +62835,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Uint8Array#__set @@ -62202,15 +62859,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1161 - block $0of1162 - block $outOfRange163 + block $1of184 + block $0of185 + block $outOfRange86 global.get $~argumentsLength - br_table $0of1162 $1of1161 $outOfRange163 + br_table $0of185 $1of184 $outOfRange86 end unreachable end @@ -62220,9 +62877,9 @@ i32.const 15408 i32.store end - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 local.get $1 call $~lib/util/sort/SORT @@ -62230,53 +62887,53 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner30 - local.get $0 + br_if $folding-inner31 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner31 - local.get $0 + br_if $folding-inner32 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15440 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 15440 call $~lib/util/sort/SORT - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne - br_if $folding-inner33 - local.get $0 + br_if $folding-inner34 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne - br_if $folding-inner34 - local.get $0 + br_if $folding-inner35 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -62290,7 +62947,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62301,17 +62958,17 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set @@ -62325,15 +62982,15 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1164 - block $0of1165 - block $outOfRange166 + block $1of188 + block $0of189 + block $outOfRange90 global.get $~argumentsLength - br_table $0of1165 $1of1164 $outOfRange166 + br_table $0of189 $1of188 $outOfRange90 end unreachable end @@ -62343,9 +63000,9 @@ i32.const 15472 i32.store end - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 local.get $1 call $~lib/util/sort/SORT @@ -62353,57 +63010,59 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner30 - local.get $0 + br_if $folding-inner31 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner31 - local.get $0 + br_if $folding-inner32 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15504 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 15504 call $~lib/util/sort/SORT - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne - br_if $folding-inner33 - local.get $0 + br_if $folding-inner34 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne - br_if $folding-inner34 - local.get $0 + br_if $folding-inner35 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62411,7 +63070,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62422,25 +63081,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Int16Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62448,90 +63105,91 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1167 - block $0of1168 - block $outOfRange190 + block $1of192 + block $0of193 + block $outOfRange94 global.get $~argumentsLength - br_table $0of1168 $1of1167 $outOfRange190 + br_table $0of193 $1of192 $outOfRange94 end unreachable end i32.const 15536 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15536 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner30 - local.get $0 + br_if $folding-inner31 + local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner31 - local.get $0 + br_if $folding-inner32 + local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15568 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u i32.const 15568 call $~lib/util/sort/SORT - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne - br_if $folding-inner33 - local.get $0 + br_if $folding-inner34 + local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne - br_if $folding-inner34 - local.get $0 + br_if $folding-inner35 + local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62539,7 +63197,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62550,25 +63208,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Uint16Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62576,90 +63232,91 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1193 - block $0of1194 - block $outOfRange195 + block $1of196 + block $0of197 + block $outOfRange98 global.get $~argumentsLength - br_table $0of1194 $1of1193 $outOfRange195 + br_table $0of197 $1of196 $outOfRange98 end unreachable end i32.const 15600 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15600 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner30 - local.get $0 + br_if $folding-inner31 + local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner31 - local.get $0 + br_if $folding-inner32 + local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15632 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 1 i32.shr_u i32.const 15632 call $~lib/util/sort/SORT - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne - br_if $folding-inner33 - local.get $0 + br_if $folding-inner34 + local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne - br_if $folding-inner34 - local.get $0 + br_if $folding-inner35 + local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62667,7 +63324,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62678,25 +63335,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Int32Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62704,90 +63359,91 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1198 - block $0of1199 - block $outOfRange200 + block $1of1100 + block $0of1101 + block $outOfRange102 global.get $~argumentsLength - br_table $0of1199 $1of1198 $outOfRange200 + br_table $0of1101 $1of1100 $outOfRange102 end unreachable end i32.const 15664 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15664 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner30 - local.get $0 + br_if $folding-inner31 + local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner31 - local.get $0 + br_if $folding-inner32 + local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15696 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 15696 call $~lib/util/sort/SORT - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne - br_if $folding-inner33 - local.get $0 + br_if $folding-inner34 + local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne - br_if $folding-inner34 - local.get $0 + br_if $folding-inner35 + local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62795,7 +63451,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62806,25 +63462,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $2 i32.const 0 i32.const 3 call $~lib/typedarray/Uint32Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62832,90 +63486,91 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1203 - block $0of1204 - block $outOfRange205 + block $1of1104 + block $0of1105 + block $outOfRange106 global.get $~argumentsLength - br_table $0of1204 $1of1203 $outOfRange205 + br_table $0of1105 $1of1104 $outOfRange106 end unreachable end i32.const 15728 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15728 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner30 - local.get $0 + br_if $folding-inner31 + local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner31 - local.get $0 + br_if $folding-inner32 + local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15760 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 15760 call $~lib/util/sort/SORT - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne - br_if $folding-inner33 - local.get $0 + br_if $folding-inner34 + local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne - br_if $folding-inner34 - local.get $0 + br_if $folding-inner35 + local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62923,7 +63578,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -62934,25 +63589,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $2 i32.const 0 i64.const 3 call $~lib/typedarray/Int64Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -62960,90 +63613,91 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1208 - block $0of1209 - block $outOfRange210 + block $1of1108 + block $0of1109 + block $outOfRange110 global.get $~argumentsLength - br_table $0of1209 $1of1208 $outOfRange210 + br_table $0of1109 $1of1108 $outOfRange110 end unreachable end i32.const 15792 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15792 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner30 - local.get $0 + br_if $folding-inner31 + local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner31 - local.get $0 + br_if $folding-inner32 + local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15824 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 15824 call $~lib/util/sort/SORT - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne - br_if $folding-inner33 - local.get $0 + br_if $folding-inner34 + local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne - br_if $folding-inner34 - local.get $0 + br_if $folding-inner35 + local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -63051,7 +63705,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63062,25 +63716,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $2 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $2 i32.const 0 i64.const 3 call $~lib/typedarray/Uint64Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63088,90 +63740,91 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1213 - block $0of1214 - block $outOfRange215 + block $1of1112 + block $0of1113 + block $outOfRange114 global.get $~argumentsLength - br_table $0of1214 $1of1213 $outOfRange215 + br_table $0of1113 $1of1112 $outOfRange114 end unreachable end i32.const 15856 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15856 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner30 - local.get $0 + br_if $folding-inner31 + local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner31 - local.get $0 + br_if $folding-inner32 + local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15888 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 3 i32.shr_u i32.const 15888 call $~lib/util/sort/SORT - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne - br_if $folding-inner33 - local.get $0 + br_if $folding-inner34 + local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne - br_if $folding-inner34 - local.get $0 + br_if $folding-inner35 + local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -63179,7 +63832,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63190,25 +63843,23 @@ local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $2 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $2 i32.const 0 f32.const 3 call $~lib/typedarray/Float32Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -63216,86 +63867,85 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of1218 - block $0of1219 - block $outOfRange220 + block $1of1116 + block $0of1117 + block $outOfRange118 global.get $~argumentsLength - br_table $0of1219 $1of1218 $outOfRange220 + br_table $0of1117 $1of1116 $outOfRange118 end unreachable end i32.const 15920 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15920 i32.store end - local.get $1 + local.get $2 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u - local.get $0 + local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.tee $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner30 - local.get $0 + br_if $folding-inner31 + local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner31 - local.get $0 + br_if $folding-inner32 + local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15952 i32.store offset=8 - local.get $0 + local.get $2 i32.load offset=4 - local.get $0 + local.get $2 i32.load offset=8 i32.const 2 i32.shr_u i32.const 15952 call $~lib/util/sort/SORT - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne - br_if $folding-inner33 - local.get $0 + br_if $folding-inner34 + local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne - br_if $folding-inner34 - local.get $0 + br_if $folding-inner35 + local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63307,7 +63957,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16628 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer local.tee $0 i64.const 0 @@ -63344,19 +63994,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner30 + br_if $folding-inner31 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner31 + br_if $folding-inner32 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner32 + br_if $folding-inner33 global.get $~lib/memory/__stack_pointer i32.const 15984 i32.store offset=8 @@ -63373,19 +64023,19 @@ call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne - br_if $folding-inner33 + br_if $folding-inner34 local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne - br_if $folding-inner34 + br_if $folding-inner35 local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne - br_if $folding-inner35 + br_if $folding-inner36 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -63396,12 +64046,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|0145176 + loop $while-continue|091 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0145176 + br $while-continue|091 end end end @@ -63431,213 +64081,213 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 + i32.const 0 + i32.const 1568 + i32.const 323 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 323 + i32.const 344 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 344 + i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 345 + i32.const 346 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 346 + i32.const 367 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 367 + i32.const 438 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 388 + i32.const 440 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 389 + i32.const 461 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 390 + i32.const 463 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 438 + i32.const 484 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 440 + i32.const 486 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 461 + i32.const 507 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 463 + i32.const 509 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 484 + i32.const 541 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 486 - i32.const 3 + i32.const 675 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 507 - i32.const 3 + i32.const 676 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 509 - i32.const 3 + i32.const 672 + i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 541 - i32.const 3 + i32.const 673 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 570 - i32.const 5 + i32.const 1360 + i32.const 1632 + i32.const 1909 + i32.const 47 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 575 + i32.const 388 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 576 + i32.const 389 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 577 + i32.const 390 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 578 - i32.const 3 + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 675 + i32.const 570 i32.const 5 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 676 - i32.const 5 + i32.const 575 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 672 - i32.const 5 + i32.const 576 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 673 - i32.const 5 + i32.const 577 + i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 730 - i32.const 5 + i32.const 578 + i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 1056 - i32.const 1632 - i32.const 1875 - i32.const 9 + i32.const 0 + i32.const 1568 + i32.const 730 + i32.const 5 call $~lib/builtins/abort unreachable end - i32.const 1360 + i32.const 1056 i32.const 1632 - i32.const 1909 - i32.const 47 + i32.const 1875 + i32.const 9 call $~lib/builtins/abort unreachable end @@ -64481,6 +65131,7 @@ (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) + (local $6 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -64500,40 +65151,39 @@ local.tee $5 i32.const 0 i32.store - local.get $5 local.get $0 local.get $1 i32.shl - local.tee $1 - local.set $5 - local.get $1 + local.tee $4 + local.set $6 + local.get $4 i32.const 0 call $~lib/rt/itcms/__new - local.set $4 + local.set $1 local.get $3 if - local.get $4 + local.get $1 local.get $3 - local.get $5 + local.get $6 call $~lib/memory/memory.copy end - local.get $4 - local.tee $3 + local.get $5 + local.get $1 i32.store i32.const 16 local.get $2 call $~lib/rt/itcms/__new local.tee $2 - local.get $3 + local.get $1 i32.store local.get $2 - local.get $3 + local.get $1 call $~lib/rt/itcms/__link local.get $2 - local.get $3 + local.get $1 i32.store offset=4 local.get $2 - local.get $1 + local.get $4 i32.store offset=8 local.get $2 local.get $0 @@ -64790,105 +65440,15 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $2 - i32.load offset=4 i32.const 4 local.get $4 local.get $4 i32.const 4 i32.gt_s select - local.tee $2 - i32.add - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select - end - local.tee $1 - local.get $2 - local.get $1 - local.get $2 - i32.gt_s - select - local.get $2 - i32.sub - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $3 - i32.const 0 - i32.store - local.get $0 - local.tee $2 - i32.load offset=8 - local.set $4 - local.get $3 - i32.const 12 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - i32.load local.tee $3 - i32.store - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - local.get $0 local.get $2 i32.load offset=4 - i32.const 4 - local.get $4 - local.get $4 - i32.const 4 - i32.gt_s - select - local.tee $2 i32.add i32.store offset=4 local.get $0 @@ -64914,12 +65474,12 @@ select end local.tee $1 - local.get $2 + local.get $3 local.get $1 - local.get $2 + local.get $3 i32.gt_s select - local.get $2 + local.get $3 i32.sub i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -64928,7 +65488,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8ClampedArray#subarray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -64954,12 +65514,10 @@ local.get $0 local.tee $2 i32.load offset=8 - i32.const 1 - i32.shr_u local.set $4 local.get $3 i32.const 12 - i32.const 6 + i32.const 5 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -64972,113 +65530,15 @@ local.get $3 call $~lib/rt/itcms/__link local.get $0 - local.get $2 - i32.load offset=4 i32.const 4 local.get $4 local.get $4 i32.const 4 - i32.gt_u - select - local.tee $2 - i32.const 1 - i32.shl - i32.add - i32.store offset=4 - local.get $0 - local.get $1 - i32.const 0 - i32.lt_s - if (result i32) - local.get $1 - local.get $4 - i32.add - local.tee $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - else - local.get $1 - local.get $4 - local.get $1 - local.get $4 - i32.lt_s - select - end - local.tee $1 - local.get $2 - local.get $1 - local.get $2 i32.gt_s select - local.get $2 - i32.sub - i32.const 1 - i32.shl - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16628 - i32.lt_s - if - i32.const 33040 - i32.const 33088 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer local.tee $3 - i32.const 0 - i32.store - local.get $0 - local.tee $2 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $4 - local.get $3 - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - i32.load - local.tee $3 - i32.store - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - local.get $0 local.get $2 i32.load offset=4 - i32.const 4 - local.get $4 - local.get $4 - i32.const 4 - i32.gt_u - select - local.tee $2 - i32.const 1 - i32.shl i32.add i32.store offset=4 local.get $0 @@ -65104,6 +65564,196 @@ select end local.tee $1 + local.get $3 + local.get $1 + local.get $3 + i32.gt_s + select + local.get $3 + i32.sub + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Int16Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store + local.get $0 + local.tee $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + i32.load + local.tee $4 + i32.store + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 4 + local.get $3 + local.get $3 + i32.const 4 + i32.gt_u + select + local.tee $2 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $1 + local.get $2 + local.get $1 + local.get $2 + i32.gt_s + select + local.get $2 + i32.sub + i32.const 1 + i32.shl + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/typedarray/Uint16Array#subarray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16628 + i32.lt_s + if + i32.const 33040 + i32.const 33088 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 0 + i32.store + local.get $0 + local.tee $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $3 + local.get $4 + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + i32.load + local.tee $4 + i32.store + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.load offset=4 + i32.const 4 + local.get $3 + local.get $3 + i32.const 4 + i32.gt_u + select + local.tee $2 + i32.const 1 + i32.shl + i32.add + i32.store offset=4 + local.get $0 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + else + local.get $1 + local.get $3 + local.get $1 + local.get $3 + i32.lt_s + select + end + local.tee $1 local.get $2 local.get $1 local.get $2 @@ -65140,7 +65790,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store local.get $0 @@ -65148,8 +65798,8 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + local.get $4 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new @@ -65158,17 +65808,17 @@ local.get $0 local.get $2 i32.load - local.tee $3 + local.tee $4 i32.store local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 local.get $2 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 4 i32.gt_u select @@ -65183,7 +65833,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -65193,9 +65843,9 @@ select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end @@ -65236,7 +65886,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store local.get $0 @@ -65244,8 +65894,8 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + local.get $4 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new @@ -65254,17 +65904,17 @@ local.get $0 local.get $2 i32.load - local.tee $3 + local.tee $4 i32.store local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 local.get $2 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 4 i32.gt_u select @@ -65279,7 +65929,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -65289,9 +65939,9 @@ select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end @@ -65332,7 +65982,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store local.get $0 @@ -65340,8 +65990,8 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + local.get $4 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new @@ -65350,17 +66000,17 @@ local.get $0 local.get $2 i32.load - local.tee $3 + local.tee $4 i32.store local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 local.get $2 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 4 i32.gt_u select @@ -65375,7 +66025,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -65385,9 +66035,9 @@ select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end @@ -65428,7 +66078,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $4 i32.const 0 i32.store local.get $0 @@ -65436,8 +66086,8 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $4 - local.get $3 + local.set $3 + local.get $4 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new @@ -65446,17 +66096,17 @@ local.get $0 local.get $2 i32.load - local.tee $3 + local.tee $4 i32.store local.get $0 - local.get $3 + local.get $4 call $~lib/rt/itcms/__link local.get $0 local.get $2 i32.load offset=4 i32.const 4 - local.get $4 - local.get $4 + local.get $3 + local.get $3 i32.const 4 i32.gt_u select @@ -65471,7 +66121,7 @@ i32.lt_s if (result i32) local.get $1 - local.get $4 + local.get $3 i32.add local.tee $1 i32.const 0 @@ -65481,9 +66131,9 @@ select else local.get $1 - local.get $4 + local.get $3 local.get $1 - local.get $4 + local.get $3 i32.lt_s select end @@ -65544,71 +66194,71 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $1 select + local.tee $2 local.tee $0 - local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.get $2 + local.get $1 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 local.get $0 + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -65616,7 +66266,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -65649,8 +66299,6 @@ i32.shr_u local.tee $2 local.get $2 - i32.const 0 - i32.gt_s select local.tee $3 local.get $1 @@ -65807,7 +66455,7 @@ i32.add end end - local.tee $1 + local.tee $0 i32.const 1 i32.shl i32.const 1 @@ -65815,8 +66463,8 @@ local.tee $2 i32.store local.get $2 - local.get $0 local.get $1 + local.get $0 call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/std/uri.optimized.wat b/tests/compiler/std/uri.optimized.wat index 77e4ebd7b4..9dfea1e60b 100644 --- a/tests/compiler/std/uri.optimized.wat +++ b/tests/compiler/std/uri.optimized.wat @@ -239,7 +239,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -247,10 +246,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 20748 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -264,7 +263,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -289,9 +288,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -299,11 +297,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 4336 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1376 i32.const 1440 @@ -312,7 +309,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 4340 @@ -327,16 +324,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -344,11 +341,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1618,8 +1615,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -3437,25 +3434,25 @@ if (result i32) i32.const 1 else - local.get $0 local.get $3 i32.const 1 i32.add i32.const 1 i32.shl + local.get $0 i32.add - local.tee $5 + local.tee $4 i32.load16_u - local.set $4 - local.get $5 - i32.load16_u offset=2 local.set $5 local.get $4 + i32.load16_u offset=2 + local.set $4 + local.get $5 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $4 + local.get $5 i32.const 32 i32.or i32.const 97 @@ -3464,12 +3461,12 @@ i32.lt_u i32.or if (result i32) - local.get $5 + local.get $4 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $5 + local.get $4 i32.const 32 i32.or i32.const 97 @@ -3481,14 +3478,14 @@ i32.const 0 end if (result i32) - local.get $5 + local.get $4 i32.const 32 i32.or i32.const 39 i32.rem_u i32.const 9 i32.sub - local.get $4 + local.get $5 i32.const 32 i32.or i32.const 39 @@ -3562,7 +3559,7 @@ i32.const 56 i32.lt_u select - local.tee $10 + local.tee $9 i32.const 17 i32.mul i32.const 2 @@ -3570,23 +3567,23 @@ i32.const 1 i32.sub i32.shl - local.set $4 + local.set $10 i32.const 128 - local.get $10 + local.get $9 i32.shr_u i32.const 1 i32.sub i32.const 0 - local.get $10 + local.get $9 select local.get $5 i32.and local.set $5 loop $while-continue|2 - local.get $10 + local.get $9 i32.const 1 i32.sub - local.tee $10 + local.tee $9 if block $while-break|2 local.get $1 @@ -3609,25 +3606,25 @@ if (result i32) i32.const 1 else - local.get $0 local.get $3 i32.const 1 i32.add i32.const 1 i32.shl + local.get $0 i32.add - local.tee $9 + local.tee $7 i32.load16_u - local.set $7 - local.get $9 - i32.load16_u offset=2 - local.set $9 + local.set $4 local.get $7 + i32.load16_u offset=2 + local.set $7 + local.get $4 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $7 + local.get $4 i32.const 32 i32.or i32.const 97 @@ -3636,12 +3633,12 @@ i32.lt_u i32.or if (result i32) - local.get $9 + local.get $7 i32.const 48 i32.sub i32.const 10 i32.lt_u - local.get $9 + local.get $7 i32.const 32 i32.or i32.const 97 @@ -3653,14 +3650,14 @@ i32.const 0 end if (result i32) - local.get $9 + local.get $7 i32.const 32 i32.or i32.const 39 i32.rem_u i32.const 9 i32.sub - local.get $7 + local.get $4 i32.const 32 i32.or i32.const 39 @@ -3716,12 +3713,12 @@ i32.const 1114111 i32.gt_u i32.const 1 - local.get $4 + local.get $10 i32.const -1 i32.eq - local.get $4 local.get $5 - i32.gt_u + local.get $10 + i32.lt_u select select if (result i32) diff --git a/tests/compiler/super-inline.optimized.wat b/tests/compiler/super-inline.optimized.wat index ab6c805e70..5f28c3de51 100644 --- a/tests/compiler/super-inline.optimized.wat +++ b/tests/compiler/super-inline.optimized.wat @@ -132,7 +132,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -140,10 +139,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17868 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -157,7 +156,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -182,9 +181,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -192,11 +190,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1440 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1248 i32.const 1312 @@ -205,7 +202,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1444 @@ -220,16 +217,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -237,11 +234,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1221,17 +1218,17 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.tee $2 + local.tee $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz if memory.size - local.tee $1 + local.tee $2 i32.const 4 - local.get $2 + local.get $3 i32.load offset=1568 - local.get $1 + local.get $2 i32.const 16 i32.shl i32.const 4 @@ -1244,16 +1241,16 @@ i32.and i32.const 16 i32.shr_u - local.tee $3 + local.tee $1 local.get $1 - local.get $3 - i32.gt_s + local.get $2 + i32.lt_s select memory.grow i32.const 0 i32.lt_s if - local.get $3 + local.get $1 memory.grow i32.const 0 i32.lt_s @@ -1261,15 +1258,15 @@ unreachable end end + local.get $3 local.get $2 - local.get $1 i32.const 16 i32.shl memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - local.get $2 + local.get $3 call $~lib/rt/tlsf/searchBlock local.tee $1 i32.eqz @@ -1296,12 +1293,12 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 call $~lib/rt/tlsf/removeBlock local.get $1 i32.load - local.tee $3 + local.tee $2 i32.const -4 i32.and i32.const 28 @@ -1311,7 +1308,7 @@ i32.ge_u if local.get $1 - local.get $3 + local.get $2 i32.const 2 i32.and i32.const 28 @@ -1320,19 +1317,19 @@ local.get $1 i32.const 32 i32.add - local.tee $3 + local.tee $2 local.get $4 i32.const 4 i32.sub i32.const 1 i32.or i32.store - local.get $2 local.get $3 + local.get $2 call $~lib/rt/tlsf/insertBlock else local.get $1 - local.get $3 + local.get $2 i32.const -2 i32.and i32.store @@ -1358,26 +1355,26 @@ i32.const 0 i32.store offset=16 global.get $~lib/rt/itcms/fromSpace - local.tee $2 + local.tee $0 i32.load offset=8 - local.set $0 + local.set $2 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $0 i32.or i32.store offset=4 local.get $1 - local.get $0 + local.get $2 i32.store offset=8 - local.get $0 - local.get $0 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and local.get $1 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/total @@ -1427,11 +1424,11 @@ ) (func $~start (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1484 i32.lt_s diff --git a/tests/compiler/templateliteral.optimized.wat b/tests/compiler/templateliteral.optimized.wat index e5535111bd..fb837cd23e 100644 --- a/tests/compiler/templateliteral.optimized.wat +++ b/tests/compiler/templateliteral.optimized.wat @@ -1,7 +1,7 @@ (module - (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_none (func)) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) @@ -318,7 +318,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -326,10 +325,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 21964 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -343,7 +342,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -368,21 +367,19 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $1 i32.load offset=12 - local.tee $0 + local.tee $1 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $0 - local.tee $2 i32.const 5536 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1408 i32.const 1472 @@ -391,7 +388,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 i32.const 3 i32.shl i32.const 5540 @@ -406,28 +403,28 @@ else i32.const 2 end - local.set $2 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 - local.set $0 - local.get $1 + local.set $1 + local.get $0 local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $1 local.get $0 + local.get $1 i32.store offset=8 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.load offset=4 i32.const 3 i32.and - local.get $1 + local.get $0 i32.or i32.store offset=4 - local.get $3 - local.get $1 + local.get $2 + local.get $0 i32.store offset=8 ) (func $~lib/rt/itcms/__visit (param $0 i32) @@ -1716,8 +1713,8 @@ i32.load offset=8 local.set $3 local.get $2 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $2 @@ -2892,40 +2889,40 @@ (local $4 i32) (local $5 i32) (local $6 i32) - block $__inlined_func$~lib/util/string/joinStringArray (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5580 - i32.lt_s - if - i32.const 21984 - i32.const 22032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $4 - i64.const 0 - i64.store - local.get $4 - i32.const 0 - i32.store offset=8 - local.get $5 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5580 + i32.lt_s + if + i32.const 21984 + i32.const 22032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinStringArray + local.get $3 i32.const 1 i32.sub - local.tee $6 + local.tee $5 i32.const 0 i32.lt_s if @@ -2934,18 +2931,19 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1184 + local.set $3 br $__inlined_func$~lib/util/string/joinStringArray end - local.get $6 + local.get $5 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $0 i32.load local.tee $0 i32.store - local.get $2 + local.get $3 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer @@ -2953,25 +2951,26 @@ i32.const 1184 local.get $0 select + local.set $3 br $__inlined_func$~lib/util/string/joinStringArray end loop $for-loop|0 local.get $3 - local.get $5 - i32.lt_s + local.get $4 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 2 i32.shl local.get $0 i32.add i32.load - local.tee $4 + local.tee $6 i32.store offset=4 - local.get $4 + local.get $6 if - local.get $4 + local.get $6 i32.const 20 i32.sub i32.load offset=16 @@ -2981,20 +2980,20 @@ i32.add local.set $2 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|0 end end global.get $~lib/memory/__stack_pointer + local.get $5 i32.const 1180 i32.load i32.const 1 i32.shr_u - local.tee $5 - local.get $6 + local.tee $6 i32.mul local.get $2 i32.add @@ -3002,17 +3001,17 @@ i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $3 i32.store offset=8 i32.const 0 - local.set $3 + local.set $4 loop $for-loop|1 - local.get $3 - local.get $6 + local.get $4 + local.get $5 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 2 i32.shl local.get $0 @@ -3025,7 +3024,7 @@ local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add local.get $2 local.get $2 @@ -3043,32 +3042,32 @@ i32.add local.set $1 end - local.get $5 + local.get $6 if local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add i32.const 1184 - local.get $5 + local.get $6 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $1 - local.get $5 + local.get $6 i32.add local.set $1 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $for-loop|1 end end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $5 i32.const 2 i32.shl local.get $0 @@ -3081,7 +3080,7 @@ local.get $1 i32.const 1 i32.shl - local.get $4 + local.get $3 i32.add local.get $0 local.get $0 @@ -3098,8 +3097,8 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 end + local.get $3 ) (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3209,25 +3208,25 @@ (local $1 i32) (local $2 i32) (local $3 i32) - block $__inlined_func$~lib/util/number/itoa32 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5580 - i32.lt_s - if - i32.const 21984 - i32.const 22032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5580 + i32.lt_s + if + i32.const 21984 + i32.const 22032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/itoa32 local.get $0 i32.eqz if @@ -3236,6 +3235,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 2032 + local.set $0 br $__inlined_func$~lib/util/number/itoa32 end global.get $~lib/memory/__stack_pointer @@ -3246,71 +3246,71 @@ local.get $0 i32.const 31 i32.shr_u - local.tee $2 + local.tee $1 select + local.tee $2 local.tee $0 - local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 100 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $1 + local.get $0 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $1 + local.get $0 i32.const 1000 i32.ge_u i32.add end else - local.get $1 + local.get $0 i32.const 10000000 i32.lt_u if (result i32) - local.get $1 + local.get $0 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $1 + local.get $0 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $1 + local.get $0 i32.const 100000000 i32.ge_u i32.add end end - local.get $2 + local.get $1 i32.add local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $0 i32.store - local.get $1 local.get $0 + local.get $2 local.get $3 call $~lib/util/number/utoa32_dec_lut - local.get $2 + local.get $1 if - local.get $1 + local.get $0 i32.const 45 i32.store16 end @@ -3318,8 +3318,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end + local.get $0 ) (func $~lib/util/number/genDigits (param $0 i64) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (result i32) (local $5 i32) @@ -3354,7 +3354,8 @@ i64.shr_u i32.wrap_i64 local.tee $2 - local.tee $5 + local.set $5 + local.get $2 i32.const 100000 i32.lt_u if (result i32) @@ -3577,7 +3578,7 @@ i32.shl i32.const 3918 i32.add - local.tee $7 + local.tee $8 i32.load16_u local.set $5 loop $while-continue|3 @@ -3622,7 +3623,7 @@ br $while-continue|3 end end - local.get $7 + local.get $8 local.get $5 i32.store16 local.get $4 @@ -3702,7 +3703,7 @@ i32.shl i32.const 3918 i32.add - local.tee $7 + local.tee $8 i32.load16_u local.set $5 loop $while-continue|6 @@ -3747,7 +3748,7 @@ br $while-continue|6 end end - local.get $7 + local.get $8 local.get $5 i32.store16 local.get $4 @@ -3755,6 +3756,8 @@ (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $2 i32.eqz if @@ -3855,7 +3858,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $2 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -3869,28 +3872,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $4 + local.set $2 loop $for-loop|1 local.get $2 - local.get $4 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $4 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end local.get $1 - local.get $2 + local.get $5 i32.add else local.get $1 @@ -3918,7 +3921,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -3965,9 +3967,12 @@ i32.add end end + local.set $1 + local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -3975,7 +3980,7 @@ local.get $2 select i32.store16 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.add else @@ -4011,7 +4016,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -4019,7 +4024,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -4066,18 +4070,21 @@ i32.add end end + local.set $2 + local.get $0 + local.get $2 i32.const 1 i32.add - local.tee $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select i32.store16 offset=4 + local.get $0 local.get $1 - local.get $2 i32.add i32.const 2 i32.add @@ -4370,25 +4377,25 @@ (func $~lib/number/F64#toString (param $0 f64) (result i32) (local $1 i32) (local $2 i32) - block $__inlined_func$~lib/util/number/dtoa (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5580 - i32.lt_s - if - i32.const 21984 - i32.const 22032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5580 + i32.lt_s + if + i32.const 21984 + i32.const 22032 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/dtoa local.get $0 f64.const 0 f64.eq @@ -4398,6 +4405,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3776 + local.set $1 br $__inlined_func$~lib/util/number/dtoa end local.get $0 @@ -4415,6 +4423,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 3808 + local.set $1 br $__inlined_func$~lib/util/number/dtoa end global.get $~lib/memory/__stack_pointer @@ -4427,72 +4436,73 @@ f64.const 0 f64.lt select + local.set $1 br $__inlined_func$~lib/util/number/dtoa end local.get $0 call $~lib/util/number/dtoa_core i32.const 1 i32.shl - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $1 i32.store - local.get $2 - i32.const 3920 local.get $1 + i32.const 3920 + local.get $2 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 end + local.get $1 ) (func $start:templateliteral (local $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) + memory.size + i32.const 16 + i32.shl + i32.const 21964 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1332 + i32.const 1328 + i32.store + i32.const 1336 + i32.const 1328 + i32.store + i32.const 1328 + global.set $~lib/rt/itcms/pinSpace + i32.const 1364 + i32.const 1360 + i32.store + i32.const 1368 + i32.const 1360 + i32.store + i32.const 1360 + global.set $~lib/rt/itcms/toSpace + i32.const 1508 + i32.const 1504 + i32.store + i32.const 1512 + i32.const 1504 + i32.store + i32.const 1504 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer block $folding-inner0 - memory.size - i32.const 16 - i32.shl - i32.const 21964 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/pinSpace - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/toSpace - i32.const 1508 - i32.const 1504 - i32.store - i32.const 1512 - i32.const 1504 - i32.store - i32.const 1504 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 5580 i32.lt_s @@ -4856,7 +4866,208 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - call $templateliteral/test_fast_paths_string + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5580 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 1088 + i32.store + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5072 + i32.store offset=8 + local.get $0 + i32.const 5072 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=8 + i32.const 1088 + i32.const 1088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5104 + i32.store offset=12 + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + i32.const 5104 + local.get $0 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5136 + i32.store offset=8 + local.get $0 + i32.const 5136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5104 + i32.store offset=12 + i32.const 5104 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5168 + i32.store offset=8 + local.get $0 + i32.const 5168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.store offset=12 + local.get $1 + i32.const 5200 + i32.store offset=16 + local.get $0 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5232 + i32.store offset=8 + local.get $0 + i32.const 5232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5200 + i32.store offset=16 + i32.const 1088 + i32.const 5200 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5264 + i32.store offset=8 + local.get $0 + i32.const 5264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5296 + i32.store offset=8 + local.get $0 + i32.const 5296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 28 i32.sub @@ -4881,14 +5092,14 @@ local.get $0 i32.const 1 call $templateliteral/Ref#constructor - local.tee $1 + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 2 call $templateliteral/Ref#constructor - local.tee $0 + local.tee $1 i32.store offset=4 - local.get $1 + local.get $0 call $templateliteral/Ref#toString local.set $2 global.get $~lib/memory/__stack_pointer @@ -4909,13 +5120,13 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 call $templateliteral/Ref#toString local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=16 - local.get $0 + local.get $1 call $templateliteral/Ref#toString local.set $3 global.get $~lib/memory/__stack_pointer @@ -4946,20 +5157,20 @@ global.get $~lib/memory/__stack_pointer i32.const 5440 i32.store offset=16 - local.get $1 + local.get $0 call $templateliteral/Ref#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=24 i32.const 5440 i32.const 1 - local.get $1 + local.get $0 call $~lib/staticarray/StaticArray<~lib/string/String>#__uset global.get $~lib/memory/__stack_pointer i32.const 5440 i32.store offset=16 - local.get $0 + local.get $1 call $templateliteral/Ref#toString local.set $0 global.get $~lib/memory/__stack_pointer @@ -5078,219 +5289,6 @@ global.set $~started call $start:templateliteral ) - (func $templateliteral/test_fast_paths_string - (local $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5580 - i32.lt_s - if - i32.const 21984 - i32.const 22032 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 1088 - i32.store - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5072 - i32.store offset=8 - local.get $0 - i32.const 5072 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 31 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=8 - i32.const 1088 - i32.const 1088 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=12 - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - i32.const 5104 - local.get $0 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5136 - i32.store offset=8 - local.get $0 - i32.const 5136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=12 - i32.const 5104 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store offset=8 - local.get $0 - i32.const 5168 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=12 - local.get $1 - i32.const 5200 - i32.store offset=16 - local.get $0 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5232 - i32.store offset=8 - local.get $0 - i32.const 5232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.store offset=16 - i32.const 1088 - i32.const 5200 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5264 - i32.store offset=8 - local.get $0 - i32.const 5264 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5296 - i32.store offset=8 - local.get $0 - i32.const 5296 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $templateliteral/Ref#toString (param $0 i32) (result i32) (local $1 i32) global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/throw.optimized.wat b/tests/compiler/throw.optimized.wat index b642240692..4d5708a9b9 100644 --- a/tests/compiler/throw.optimized.wat +++ b/tests/compiler/throw.optimized.wat @@ -132,7 +132,7 @@ i32.load offset=4 i32.const -4 i32.and - local.tee $2 + local.tee $3 i32.eqz if i32.const 0 @@ -165,7 +165,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 local.get $1 i32.store offset=8 local.get $1 @@ -173,22 +173,22 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $3 i32.or i32.store offset=4 end global.get $~lib/rt/itcms/toSpace local.set $3 local.get $0 - local.tee $2 - i32.load offset=12 local.tee $1 + i32.load offset=12 + local.tee $2 i32.const 1 i32.le_u if (result i32) i32.const 1 else - local.get $1 + local.get $2 local.tee $0 i32.const 1728 i32.load @@ -219,25 +219,25 @@ local.set $0 local.get $3 i32.load offset=8 - local.set $1 - local.get $2 + local.set $2 + local.get $1 local.get $0 local.get $3 i32.or i32.store offset=4 - local.get $2 local.get $1 + local.get $2 i32.store offset=8 - local.get $1 - local.get $1 + local.get $2 + local.get $2 i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $1 i32.or i32.store offset=4 local.get $3 - local.get $2 + local.get $1 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1123,144 +1123,146 @@ (func $~start (local $0 i32) (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1756 - i32.lt_s - br_if $folding-inner0 + block $__inlined_func$start:throw global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 1056 - i32.store - local.get $0 - i32.const 1216 - i32.store offset=8 - local.get $0 i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1756 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - local.get $1 - i32.const 1056 - i32.store - loop $while-continue|0 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1756 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i64.const 0 + i64.store local.get $0 - i32.const 1 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 1056 + i32.store + local.get $0 + i32.const 1216 + i32.store offset=8 + local.get $0 + i32.const 12 i32.add - local.tee $0 - i32.const 10 + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1756 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i64.const 0 + i64.store + local.get $1 + i64.const 0 + i64.store offset=8 + local.get $1 + i32.const 1056 + i32.store + loop $while-continue|0 local.get $0 + i32.const 1 + i32.add + local.tee $0 i32.const 10 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 1216 + i32.const 1088 + i32.store offset=4 + local.get $0 + i32.const 10 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 1216 + i32.store offset=8 + i32.const 1248 + i32.const 1168 + i32.const 23 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1296 i32.store offset=8 - i32.const 1248 - i32.const 1168 - i32.const 23 - i32.const 7 - call $~lib/builtins/abort - unreachable + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 1296 - i32.store offset=8 - br $while-continue|0 end - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 1328 - i32.store offset=12 - local.get $0 - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1348 - i32.const 1344 - i32.store - i32.const 1352 - i32.const 1344 - i32.store - i32.const 1344 - global.set $~lib/rt/itcms/pinSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/toSpace - i32.const 1588 - i32.const 1584 - i32.store - i32.const 1592 - i32.const 1584 - i32.store - i32.const 1584 - global.set $~lib/rt/itcms/fromSpace - memory.size - drop - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|07 + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 1328 + i32.store offset=12 + local.get $0 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1348 + i32.const 1344 + i32.store + i32.const 1352 + i32.const 1344 + i32.store + i32.const 1344 + global.set $~lib/rt/itcms/pinSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/toSpace + i32.const 1588 + i32.const 1584 + i32.store + i32.const 1592 + i32.const 1584 + i32.store + i32.const 1584 + global.set $~lib/rt/itcms/fromSpace + memory.size + drop + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|00 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + br $while-continue|00 + end + end + end + call $~lib/rt/itcms/step + loop $while-continue|1 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step - br $while-continue|07 + br $while-continue|1 end end + br $__inlined_func$start:throw end - call $~lib/rt/itcms/step - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - br $while-continue|1 - end - end - return + i32.const 18160 + i32.const 18208 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end - i32.const 18160 - i32.const 18208 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable ) ) diff --git a/tests/compiler/typeof.optimized.wat b/tests/compiler/typeof.optimized.wat index 7490a5871a..51d427ca80 100644 --- a/tests/compiler/typeof.optimized.wat +++ b/tests/compiler/typeof.optimized.wat @@ -263,7 +263,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -271,10 +270,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 18220 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -288,7 +287,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -313,9 +312,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -323,11 +321,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1792 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1552 i32.const 1616 @@ -336,7 +333,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1796 @@ -351,16 +348,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -368,11 +365,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1936,8 +1933,8 @@ i32.load offset=8 local.set $4 local.get $1 - local.get $2 global.get $~lib/rt/itcms/white + local.get $2 i32.or i32.store offset=4 local.get $1 diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat index f9244a6592..883d189a7b 100644 --- a/tests/compiler/wasi/trace.optimized.wat +++ b/tests/compiler/wasi/trace.optimized.wat @@ -1172,38 +1172,39 @@ ) (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i64) (param $3 i32) (param $4 i64) (param $5 i32) (result i32) (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i32) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i64) + (local $11 i32) + (local $12 i64) (local $13 i64) local.get $2 local.get $1 i64.sub - local.set $9 + local.set $10 local.get $2 i64.const 1 i32.const 0 local.get $3 i32.sub - local.tee $12 + local.tee $11 i64.extend_i32_s local.tee $1 i64.shl - local.tee $11 + local.tee $12 i64.const 1 i64.sub local.tee $13 i64.and - local.set $8 + local.set $7 local.get $2 local.get $1 i64.shr_u i32.wrap_i64 local.tee $6 - local.tee $3 + local.set $3 + local.get $6 i32.const 100000 i32.lt_u if (result i32) @@ -1249,9 +1250,9 @@ i32.add end end - local.set $10 + local.set $9 loop $while-continue|0 - local.get $10 + local.get $9 i32.const 0 i32.gt_s if @@ -1267,7 +1268,7 @@ block $case2|1 block $case1|1 block $case0|1 - local.get $10 + local.get $9 i32.const 1 i32.sub br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 @@ -1275,7 +1276,7 @@ local.get $6 i32.const 1000000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 1000000000 i32.rem_u @@ -1285,7 +1286,7 @@ local.get $6 i32.const 100000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 100000000 i32.rem_u @@ -1295,7 +1296,7 @@ local.get $6 i32.const 10000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 10000000 i32.rem_u @@ -1305,7 +1306,7 @@ local.get $6 i32.const 1000000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 1000000 i32.rem_u @@ -1315,7 +1316,7 @@ local.get $6 i32.const 100000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 100000 i32.rem_u @@ -1325,7 +1326,7 @@ local.get $6 i32.const 10000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 10000 i32.rem_u @@ -1335,7 +1336,7 @@ local.get $6 i32.const 1000 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 1000 i32.rem_u @@ -1345,7 +1346,7 @@ local.get $6 i32.const 100 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 100 i32.rem_u @@ -1355,7 +1356,7 @@ local.get $6 i32.const 10 i32.div_u - local.set $7 + local.set $3 local.get $6 i32.const 10 i32.rem_u @@ -1363,64 +1364,64 @@ br $break|1 end local.get $6 - local.set $7 + local.set $3 i32.const 0 local.set $6 br $break|1 end i32.const 0 - local.set $7 + local.set $3 end + local.get $3 local.get $5 - local.get $7 i32.or if local.get $5 - local.tee $3 + local.tee $8 i32.const 1 i32.add local.set $5 - local.get $3 + local.get $8 i32.const 1 i32.shl local.get $0 i32.add - local.get $7 + local.get $3 i32.const 65535 i32.and i32.const 48 i32.add i32.store16 end - local.get $10 + local.get $9 i32.const 1 i32.sub - local.set $10 - local.get $4 - local.get $8 + local.set $9 + local.get $7 local.get $6 i64.extend_i32_u - local.get $12 + local.get $11 i64.extend_i32_s i64.shl i64.add local.tee $1 - i64.ge_u + local.get $4 + i64.le_u if - local.get $10 + local.get $9 global.get $~lib/util/number/_K i32.add global.set $~lib/util/number/_K - local.get $10 + local.get $9 i32.const 2 i32.shl i32.const 2200 i32.add i64.load32_u - local.get $12 + local.get $11 i64.extend_i32_s i64.shl - local.set $11 + local.set $2 local.get $5 i32.const 1 i32.sub @@ -1428,53 +1429,53 @@ i32.shl local.get $0 i32.add - local.tee $0 + local.tee $6 i32.load16_u - local.set $7 + local.set $3 loop $while-continue|3 - local.get $11 + local.get $2 local.get $4 local.get $1 i64.sub i64.le_u i32.const 0 local.get $1 - local.get $9 + local.get $10 i64.lt_u select if (result i32) i32.const 1 - local.get $9 + local.get $10 local.get $1 i64.sub local.get $1 - local.get $11 + local.get $2 i64.add - local.tee $2 - local.get $9 + local.tee $7 + local.get $10 i64.sub i64.gt_u - local.get $2 - local.get $9 + local.get $7 + local.get $10 i64.lt_u select else i32.const 0 end if - local.get $7 + local.get $3 i32.const 1 i32.sub - local.set $7 + local.set $3 local.get $1 - local.get $11 + local.get $2 i64.add local.set $1 br $while-continue|3 end end - local.get $0 - local.get $7 + local.get $6 + local.get $3 i32.store16 local.get $5 return @@ -1482,19 +1483,19 @@ br $while-continue|0 end end - loop $while-continue|4 (result i32) + loop $while-continue|4 local.get $4 i64.const 10 i64.mul local.set $4 - local.get $8 + local.get $7 i64.const 10 i64.mul - local.tee $2 - local.get $12 + local.tee $1 + local.get $11 i64.extend_i32_s i64.shr_u - local.tee $1 + local.tee $2 local.get $5 i64.extend_i32_s i64.or @@ -1511,7 +1512,7 @@ i32.shl local.get $0 i32.add - local.get $1 + local.get $2 i32.wrap_i64 i32.const 65535 i32.and @@ -1519,91 +1520,91 @@ i32.add i32.store16 end - local.get $10 + local.get $9 i32.const 1 i32.sub - local.set $10 - local.get $2 + local.set $9 + local.get $4 + local.get $1 local.get $13 i64.and - local.tee $8 - local.get $4 - i64.ge_u + local.tee $7 + i64.le_u br_if $while-continue|4 - local.get $10 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $8 - local.set $1 + end + local.get $9 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $7 + local.set $1 + i32.const 0 + local.get $9 + i32.sub + i32.const 2 + i32.shl + i32.const 2200 + i32.add + i64.load32_u + local.get $10 + i64.mul + local.set $2 + local.get $5 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + local.get $0 + i32.add + local.tee $6 + i32.load16_u + local.set $3 + loop $while-continue|6 + local.get $12 + local.get $4 + local.get $1 + i64.sub + i64.le_u i32.const 0 - local.get $10 - i32.sub - i32.const 2 - i32.shl - i32.const 2200 - i32.add - i64.load32_u - local.get $9 - i64.mul - local.set $9 - local.get $5 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - local.get $0 - i32.add - local.tee $0 - i32.load16_u - local.set $7 - loop $while-continue|6 - local.get $11 - local.get $4 + local.get $1 + local.get $2 + i64.lt_u + select + if (result i32) + i32.const 1 + local.get $2 local.get $1 i64.sub - i64.le_u - i32.const 0 local.get $1 - local.get $9 - i64.lt_u + local.get $12 + i64.add + local.tee $7 + local.get $2 + i64.sub + i64.gt_u + local.get $2 + local.get $7 + i64.gt_u select - if (result i32) - i32.const 1 - local.get $9 - local.get $1 - i64.sub - local.get $1 - local.get $11 - i64.add - local.tee $2 - local.get $9 - i64.sub - i64.gt_u - local.get $2 - local.get $9 - i64.lt_u - select - else - i32.const 0 - end - if - local.get $7 - i32.const 1 - i32.sub - local.set $7 - local.get $1 - local.get $11 - i64.add - local.set $1 - br $while-continue|6 - end + else + i32.const 0 + end + if + local.get $3 + i32.const 1 + i32.sub + local.set $3 + local.get $1 + local.get $12 + i64.add + local.set $1 + br $while-continue|6 end - local.get $0 - local.get $7 - i32.store16 - local.get $5 end + local.get $6 + local.get $3 + i32.store16 + local.get $5 ) (func $~lib/util/memory/memcpy (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2613,6 +2614,8 @@ (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $2 i32.eqz if @@ -2713,7 +2716,7 @@ i32.const 2 local.get $4 i32.sub - local.tee $2 + local.tee $5 i32.const 1 i32.shl local.get $0 @@ -2727,28 +2730,28 @@ i32.const 3014704 i32.store i32.const 2 - local.set $4 + local.set $2 loop $for-loop|1 local.get $2 - local.get $4 - i32.gt_s + local.get $5 + i32.lt_s if - local.get $4 + local.get $2 i32.const 1 i32.shl local.get $0 i32.add i32.const 48 i32.store16 - local.get $4 + local.get $2 i32.const 1 i32.add - local.set $4 + local.set $2 br $for-loop|1 end end local.get $1 - local.get $2 + local.get $5 i32.add else local.get $1 @@ -2776,7 +2779,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $1 i32.const 100000 i32.lt_u @@ -2823,9 +2825,12 @@ i32.add end end + local.set $1 + local.get $0 + local.get $1 i32.const 1 i32.add - local.tee $1 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 @@ -2833,7 +2838,7 @@ local.get $2 select i32.store16 offset=4 - local.get $1 + local.get $0 i32.const 2 i32.add else @@ -2869,7 +2874,7 @@ local.tee $0 i32.const 0 i32.lt_s - local.tee $4 + local.tee $5 if i32.const 0 local.get $0 @@ -2877,7 +2882,6 @@ local.set $0 end local.get $0 - local.get $0 local.tee $2 i32.const 100000 i32.lt_u @@ -2924,18 +2928,21 @@ i32.add end end + local.set $2 + local.get $0 + local.get $2 i32.const 1 i32.add - local.tee $2 + local.tee $0 call $~lib/util/number/utoa32_dec_lut local.get $3 i32.const 45 i32.const 43 - local.get $4 + local.get $5 select i32.store16 offset=4 + local.get $0 local.get $1 - local.get $2 i32.add i32.const 2 i32.add diff --git a/tests/compiler/while.optimized.wat b/tests/compiler/while.optimized.wat index f3abeed2cb..995f0147ed 100644 --- a/tests/compiler/while.optimized.wat +++ b/tests/compiler/while.optimized.wat @@ -120,7 +120,6 @@ end block $__inlined_func$~lib/rt/itcms/Object#unlink local.get $0 - local.tee $1 i32.load offset=4 i32.const -4 i32.and @@ -128,10 +127,10 @@ i32.eqz if i32.const 0 - local.get $1 + local.get $0 i32.const 17908 i32.lt_u - local.get $1 + local.get $0 i32.load offset=8 select i32.eqz @@ -145,7 +144,7 @@ end br $__inlined_func$~lib/rt/itcms/Object#unlink end - local.get $1 + local.get $0 i32.load offset=8 local.tee $1 i32.eqz @@ -170,9 +169,8 @@ i32.store offset=4 end global.get $~lib/rt/itcms/toSpace - local.set $3 + local.set $2 local.get $0 - local.tee $2 i32.load offset=12 local.tee $1 i32.const 1 @@ -180,11 +178,10 @@ if (result i32) i32.const 1 else - local.get $1 - local.tee $0 i32.const 1488 i32.load - i32.gt_u + local.get $1 + i32.lt_u if i32.const 1296 i32.const 1360 @@ -193,7 +190,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 3 i32.shl i32.const 1492 @@ -208,16 +205,16 @@ else i32.const 2 end - local.set $0 - local.get $3 + local.set $3 + local.get $2 i32.load offset=8 local.set $1 - local.get $2 local.get $0 + local.get $2 local.get $3 i32.or i32.store offset=4 - local.get $2 + local.get $0 local.get $1 i32.store offset=8 local.get $1 @@ -225,11 +222,11 @@ i32.load offset=4 i32.const 3 i32.and - local.get $2 + local.get $0 i32.or i32.store offset=4 - local.get $3 local.get $2 + local.get $0 i32.store offset=8 global.get $~lib/rt/itcms/visitCount i32.const 1 @@ -1157,348 +1154,348 @@ (local $0 i32) (local $1 i32) (local $2 i32) - block $folding-inner0 - i32.const 10 - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|0 - end - end + i32.const 10 + local.set $0 + loop $while-continue|0 local.get $0 if - i32.const 0 - i32.const 1056 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|0 end + end + local.get $0 + if i32.const 0 - local.set $2 + i32.const 1056 i32.const 10 - local.set $0 - loop $while-continue|00 - local.get $0 - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $1 - i32.const 1 - i32.add - local.set $1 - loop $while-continue|1 - local.get $0 - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $while-continue|1 - end - end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 29 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 30 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - br $while-continue|00 - end - end + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $2 + i32.const 10 + local.set $0 + loop $while-continue|00 local.get $0 if - i32.const 0 - i32.const 1056 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 9 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $2 - i32.const 1 - local.set $0 - loop $while-continue|01 local.get $0 - local.tee $1 i32.const 1 i32.sub local.set $0 local.get $1 - if (result i32) - local.get $2 - i32.const 1 - i32.add - local.tee $2 - else + i32.const 1 + i32.add + local.set $1 + loop $while-continue|1 + local.get $0 + if + local.get $0 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $while-continue|1 + end + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 9 + i32.ne + if i32.const 0 + i32.const 1056 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable end - br_if $while-continue|01 + br $while-continue|00 end + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 9 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $2 + i32.const 1 + local.set $0 + loop $while-continue|01 local.get $0 - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 + local.tee $1 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 + i32.sub local.set $0 - loop $while-continue|02 - local.get $0 + local.get $1 + if (result i32) + local.get $2 i32.const 1 i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $while-continue|02 + local.tee $2 + else + i32.const 0 end + br_if $while-continue|01 + end + local.get $0 + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $while-continue|02 local.get $0 + i32.const 1 + i32.add + local.tee $0 i32.const 10 i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 58 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + br_if $while-continue|02 + end + local.get $0 + i32.const 10 + i32.ne + if i32.const 0 - local.set $0 - loop $while-continue|03 (result i32) - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 10 - i32.ne - br_if $while-continue|03 - local.get $0 - end + i32.const 1056 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $while-continue|03 + local.get $0 + i32.const 1 + i32.add + local.tee $0 i32.const 10 i32.ne + br_if $while-continue|03 + end + local.get $0 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 72 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + loop $while-continue|04 + local.get $0 if - i32.const 0 - i32.const 1056 - i32.const 72 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - loop $while-continue|04 local.get $0 - if - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|04 - end + i32.const 1 + i32.sub + local.set $0 + br $while-continue|04 end + end + local.get $0 + if + i32.const 0 + i32.const 1056 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 10 + local.set $0 + i32.const 10 + local.set $2 + loop $while-continue|05 local.get $0 if - i32.const 0 - i32.const 1056 - i32.const 117 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 10 - local.set $0 - i32.const 10 - local.set $2 - loop $while-continue|05 - local.get $0 - if - loop $while-continue|16 + loop $while-continue|16 + local.get $2 + if local.get $2 - if - local.get $2 - i32.const 1 - i32.sub - local.set $2 - br $while-continue|16 - end + i32.const 1 + i32.sub + local.set $2 + br $while-continue|16 end - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $while-continue|05 end + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $while-continue|05 end - local.get $0 - if - i32.const 0 - i32.const 1056 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $2 - if - i32.const 0 - i32.const 1056 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - memory.size - i32.const 16 - i32.shl - i32.const 17908 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1220 - i32.const 1216 - i32.store - i32.const 1224 - i32.const 1216 - i32.store - i32.const 1216 - global.set $~lib/rt/itcms/pinSpace - i32.const 1252 - i32.const 1248 - i32.store - i32.const 1256 - i32.const 1248 - i32.store - i32.const 1248 - global.set $~lib/rt/itcms/toSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace + end + local.get $0 + if i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $2 + if + i32.const 0 + i32.const 1056 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + memory.size + i32.const 16 + i32.shl + i32.const 17908 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1220 + i32.const 1216 + i32.store + i32.const 1224 + i32.const 1216 + i32.store + i32.const 1216 + global.set $~lib/rt/itcms/pinSpace + i32.const 1252 + i32.const 1248 + i32.store + i32.const 1256 + i32.const 1248 + i32.store + i32.const 1248 + global.set $~lib/rt/itcms/toSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1524 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 call $while/Ref#constructor - local.tee $2 + local.tee $0 i32.store - loop $while-continue|06 - local.get $2 + loop $while-continue|07 + local.get $0 if - local.get $1 + local.get $2 i32.const 1 i32.add - local.tee $1 + local.tee $2 i32.const 10 i32.eq if i32.const 0 - local.set $2 + local.set $0 else global.get $~lib/memory/__stack_pointer call $while/Ref#constructor - local.tee $2 + local.tee $0 i32.store end - br $while-continue|06 + br $while-continue|07 end end - local.get $1 + local.get $2 i32.const 10 i32.ne if @@ -1509,7 +1506,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 if i32.const 0 i32.const 1056 @@ -1523,7 +1520,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -1533,33 +1530,33 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 call $while/Ref#constructor - local.tee $2 + local.tee $0 i32.store - loop $while-continue|08 + loop $while-continue|06 call $while/Ref#constructor if - block $while-break|09 - local.get $1 + block $while-break|07 + local.get $2 i32.const 1 i32.add - local.tee $1 + local.tee $2 i32.const 10 i32.eq if i32.const 0 - local.set $2 - br $while-break|09 + local.set $0 + br $while-break|07 end - br $while-continue|08 + br $while-continue|06 end end end - local.get $1 + local.get $2 i32.const 10 i32.ne if @@ -1570,7 +1567,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 if i32.const 0 i32.const 1056 @@ -1585,47 +1582,47 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - loop $while-continue|07 + loop $while-continue|08 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 1 i32.lt_s - br_if $while-continue|07 + br_if $while-continue|08 end i32.const 0 local.set $0 - loop $while-continue|09 + loop $while-continue|010 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 1 i32.lt_s - br_if $while-continue|09 + br_if $while-continue|010 end global.get $~lib/rt/itcms/state i32.const 0 i32.gt_s if - loop $while-continue|011 + loop $while-continue|012 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|011 + br $while-continue|012 end end end call $~lib/rt/itcms/step drop - loop $while-continue|112 + loop $while-continue|113 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|112 + br $while-continue|113 end end global.get $~lib/rt/itcms/total @@ -1896,8 +1893,8 @@ i32.load offset=8 local.set $3 local.get $0 - local.get $1 global.get $~lib/rt/itcms/white + local.get $1 i32.or i32.store offset=4 local.get $0 From dcf21b36dd0c5b9928a6ef4808293af8af9b819d Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 28 Aug 2021 07:29:24 +0300 Subject: [PATCH 26/32] update binaryen --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b844762fde..7c3f3610c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "101.0.0-nightly.20210819", + "binaryen": "101.0.0-nightly.20210828", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" @@ -733,9 +733,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "101.0.0-nightly.20210819", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210819.tgz", - "integrity": "sha512-61Tiv6wvNVm5YINSgXx9wuY4nOGDgeHf0g4mLeZispgpQf1PRqd9ws0fvM2GAwUFkNoPsdUxviMk5WSOzc+7nw==", + "version": "101.0.0-nightly.20210828", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210828.tgz", + "integrity": "sha512-bf7RoY0Xv7TA60ZhGy80NXWmf0q6ea+4KisrIObU3sARwWPNBitorI62OYD5RHCCSsZm6jkFTEhOJSMqtXf1Ew==", "bin": { "wasm-opt": "bin/wasm-opt" } @@ -3508,9 +3508,9 @@ "dev": true }, "binaryen": { - "version": "101.0.0-nightly.20210819", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210819.tgz", - "integrity": "sha512-61Tiv6wvNVm5YINSgXx9wuY4nOGDgeHf0g4mLeZispgpQf1PRqd9ws0fvM2GAwUFkNoPsdUxviMk5WSOzc+7nw==" + "version": "101.0.0-nightly.20210828", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210828.tgz", + "integrity": "sha512-bf7RoY0Xv7TA60ZhGy80NXWmf0q6ea+4KisrIObU3sARwWPNBitorI62OYD5RHCCSsZm6jkFTEhOJSMqtXf1Ew==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 81379cf19d..4c3fd0daac 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "101.0.0-nightly.20210819", + "binaryen": "101.0.0-nightly.20210828", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" From 0a2093c9bc5505bb054378a499847b26c59bbda2 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 28 Aug 2021 07:47:18 +0300 Subject: [PATCH 27/32] update addTable --- src/glue/binaryen.d.ts | 2 +- src/module.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index 88ae557c75..ea48192241 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -531,7 +531,7 @@ export declare function _BinaryenTagGetName(tag: TagRef): StringRef; export declare function _BinaryenTagGetParams(tag: TagRef): TypeRef; export declare function _BinaryenTagGetResults(tag: TagRef): TypeRef; -export declare function _BinaryenAddTable(module: ModuleRef, name: StringRef, initial: Index, maximum: Index): TableRef; +export declare function _BinaryenAddTable(module: ModuleRef, name: StringRef, initial: Index, maximum: Index, type: TypeRef): TableRef; export declare function _BinaryenRemoveTable(module: ModuleRef, table: StringRef): void; export declare function _BinaryenGetNumTables(module: ModuleRef): Index; export declare function _BinaryenGetTable(module: ModuleRef, name: StringRef): TableRef; diff --git a/src/module.ts b/src/module.ts index c966666b96..e32d6266ab 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2056,7 +2056,7 @@ export class Module { var cArr = allocPtrArray(names); var tableRef = binaryen._BinaryenGetTable(this.ref, cStr); if (!tableRef) { - tableRef = binaryen._BinaryenAddTable(this.ref, cStr, initial, maximum); + tableRef = binaryen._BinaryenAddTable(this.ref, cStr, initial, maximum, TypeRef.Funcref); } else { binaryen._BinaryenTableSetInitial(tableRef, initial); binaryen._BinaryenTableSetMax(tableRef, maximum); From 7f3c8107716190697d8dca4ad4426971ed398cfc Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Mon, 30 Aug 2021 12:36:47 +0300 Subject: [PATCH 28/32] update --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7c3f3610c4..9143096290 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "101.0.0-nightly.20210828", + "binaryen": "101.0.0-nightly.20210830", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" @@ -733,9 +733,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "101.0.0-nightly.20210828", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210828.tgz", - "integrity": "sha512-bf7RoY0Xv7TA60ZhGy80NXWmf0q6ea+4KisrIObU3sARwWPNBitorI62OYD5RHCCSsZm6jkFTEhOJSMqtXf1Ew==", + "version": "101.0.0-nightly.20210830", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210830.tgz", + "integrity": "sha512-ecsTdz8wT7pU/y/Z2aHzpVEv7h/HXP3/dh9l4fxZk2S8Cl39rr3BVAi5hbO5MEFAncRtTUu0EQBINainggWG0Q==", "bin": { "wasm-opt": "bin/wasm-opt" } @@ -3508,9 +3508,9 @@ "dev": true }, "binaryen": { - "version": "101.0.0-nightly.20210828", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210828.tgz", - "integrity": "sha512-bf7RoY0Xv7TA60ZhGy80NXWmf0q6ea+4KisrIObU3sARwWPNBitorI62OYD5RHCCSsZm6jkFTEhOJSMqtXf1Ew==" + "version": "101.0.0-nightly.20210830", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210830.tgz", + "integrity": "sha512-ecsTdz8wT7pU/y/Z2aHzpVEv7h/HXP3/dh9l4fxZk2S8Cl39rr3BVAi5hbO5MEFAncRtTUu0EQBINainggWG0Q==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 4c3fd0daac..f442b51923 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "101.0.0-nightly.20210828", + "binaryen": "101.0.0-nightly.20210830", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" From d6a882af4bf58cbc508021f021cd8ab7fe7c4f6e Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Wed, 1 Sep 2021 09:19:50 +0300 Subject: [PATCH 29/32] update --- package-lock.json | 14 +++++++------- package.json | 2 +- src/compiler.ts | 4 ++-- src/glue/binaryen.d.ts | 2 +- src/module.ts | 10 +++++----- 5 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9143096290..028ed59773 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "101.0.0-nightly.20210830", + "binaryen": "101.0.0-nightly.20210901", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" @@ -733,9 +733,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "101.0.0-nightly.20210830", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210830.tgz", - "integrity": "sha512-ecsTdz8wT7pU/y/Z2aHzpVEv7h/HXP3/dh9l4fxZk2S8Cl39rr3BVAi5hbO5MEFAncRtTUu0EQBINainggWG0Q==", + "version": "101.0.0-nightly.20210901", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210901.tgz", + "integrity": "sha512-eJtbSIquGkQkozR2Z4fYtQLv+S3uZv3ML/dtTudmJBig4rN4xlilfBX9fe7NS9af7hfHg3SQDaQ8TevOS0PUKQ==", "bin": { "wasm-opt": "bin/wasm-opt" } @@ -3508,9 +3508,9 @@ "dev": true }, "binaryen": { - "version": "101.0.0-nightly.20210830", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210830.tgz", - "integrity": "sha512-ecsTdz8wT7pU/y/Z2aHzpVEv7h/HXP3/dh9l4fxZk2S8Cl39rr3BVAi5hbO5MEFAncRtTUu0EQBINainggWG0Q==" + "version": "101.0.0-nightly.20210901", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210901.tgz", + "integrity": "sha512-eJtbSIquGkQkozR2Z4fYtQLv+S3uZv3ML/dtTudmJBig4rN4xlilfBX9fe7NS9af7hfHg3SQDaQ8TevOS0PUKQ==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index f442b51923..b1178655ee 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "101.0.0-nightly.20210830", + "binaryen": "101.0.0-nightly.20210901", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" diff --git a/src/compiler.ts b/src/compiler.ts index 9a7632c779..2d630d5abd 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -7267,7 +7267,7 @@ export class Compiler extends DiagnosticEmitter { // We know the last operand is optional and omitted, so inject setting // ~argumentsLength into that operand, which is always safe. let lastOperand = operands[maxOperands - 1]; - assert(!(getSideEffects(lastOperand) & SideEffects.WritesGlobal)); + assert(!(getSideEffects(lastOperand, module.ref) & SideEffects.WritesGlobal)); let lastOperandType = parameterTypes[maxArguments - 1]; operands[maxOperands - 1] = module.block(null, [ module.global_set(this.ensureArgumentsLength(), module.i32(numArguments)), @@ -7374,7 +7374,7 @@ export class Compiler extends DiagnosticEmitter { // into the index argument, which becomes executed last after any operands. var argumentsLength = this.ensureArgumentsLength(); var sizeTypeRef = this.options.sizeTypeRef; - if (getSideEffects(functionArg) & SideEffects.WritesGlobal) { + if (getSideEffects(functionArg, module.ref) & SideEffects.WritesGlobal) { let flow = this.currentFlow; let temp = flow.getTempLocal(this.options.usizeType, findUsedLocals(functionArg)); functionArg = module.block(null, [ diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index ea48192241..5763561632 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -577,7 +577,7 @@ export declare function _BinaryenModuleSetFeatures(module: ModuleRef, featureFla export declare function _BinaryenAddCustomSection(module: ModuleRef, name: StringRef, contents: ArrayRef, contentsSize: Index): void; -export declare function _BinaryenExpressionGetSideEffects(expr: ExpressionRef, features: FeatureFlags): SideEffects; +export declare function _BinaryenExpressionGetSideEffects(expr: ExpressionRef, module: ModuleRef): SideEffects; export declare function _RelooperCreate(module: ModuleRef): RelooperRef; export declare function _RelooperAddBlock(relooper: RelooperRef, code: ExpressionRef): RelooperBlockRef; diff --git a/src/module.ts b/src/module.ts index e32d6266ab..ff50f3c26e 100644 --- a/src/module.ts +++ b/src/module.ts @@ -1436,7 +1436,7 @@ export class Module { // when encountering a local with an unknown value. This helper only drops // the pre-evaluated condition if it has relevant side effects. // see WebAssembly/binaryen#1237 - if ((getSideEffects(condition) & ~(SideEffects.ReadsLocal | SideEffects.ReadsGlobal)) != 0) { + if ((getSideEffects(condition, this.ref) & ~(SideEffects.ReadsLocal | SideEffects.ReadsGlobal)) != 0) { return this.block(null, [ this.drop(condition), result @@ -3063,12 +3063,12 @@ export enum SideEffects { Any = 8191 /* _BinaryenSideEffectAny */ } -export function getSideEffects(expr: ExpressionRef, features: FeatureFlags = FeatureFlags.All): SideEffects { - return binaryen._BinaryenExpressionGetSideEffects(expr, features); +export function getSideEffects(expr: ExpressionRef, module: ModuleRef): SideEffects { + return binaryen._BinaryenExpressionGetSideEffects(expr, module); } -export function hasSideEffects(expr: ExpressionRef, features: FeatureFlags = FeatureFlags.All): bool { - return getSideEffects(expr, features) != SideEffects.None; +export function hasSideEffects(expr: ExpressionRef, module: ModuleRef): bool { + return getSideEffects(expr, module) != SideEffects.None; } // helpers From caf9e21012038488431046868c48e454eb109541 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Fri, 3 Sep 2021 12:52:42 +0300 Subject: [PATCH 30/32] update --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 028ed59773..a335fa0606 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "101.0.0-nightly.20210901", + "binaryen": "101.0.0-nightly.20210903", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" @@ -733,9 +733,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "101.0.0-nightly.20210901", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210901.tgz", - "integrity": "sha512-eJtbSIquGkQkozR2Z4fYtQLv+S3uZv3ML/dtTudmJBig4rN4xlilfBX9fe7NS9af7hfHg3SQDaQ8TevOS0PUKQ==", + "version": "101.0.0-nightly.20210903", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210903.tgz", + "integrity": "sha512-HxvcBKGnhwOe0X0h9MpOWTfXtzDeIr865+p5JmwdgxSa4j1c+4Ou0yk0rW6hIjU8tWsNFMnVkdYD2BzAdXhszg==", "bin": { "wasm-opt": "bin/wasm-opt" } @@ -3508,9 +3508,9 @@ "dev": true }, "binaryen": { - "version": "101.0.0-nightly.20210901", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210901.tgz", - "integrity": "sha512-eJtbSIquGkQkozR2Z4fYtQLv+S3uZv3ML/dtTudmJBig4rN4xlilfBX9fe7NS9af7hfHg3SQDaQ8TevOS0PUKQ==" + "version": "101.0.0-nightly.20210903", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210903.tgz", + "integrity": "sha512-HxvcBKGnhwOe0X0h9MpOWTfXtzDeIr865+p5JmwdgxSa4j1c+4Ou0yk0rW6hIjU8tWsNFMnVkdYD2BzAdXhszg==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index b1178655ee..2545020a05 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "101.0.0-nightly.20210901", + "binaryen": "101.0.0-nightly.20210903", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" From 42a9aeb4eb1627803ce35d327d235737d6de64fb Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 4 Sep 2021 10:13:01 +0300 Subject: [PATCH 31/32] update --- package-lock.json | 14 +++++++------- package.json | 2 +- src/module.ts | 4 +++- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index a335fa0606..95336101b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,7 +8,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "101.0.0-nightly.20210903", + "binaryen": "101.0.0-nightly.20210904", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" @@ -733,9 +733,9 @@ "dev": true }, "node_modules/binaryen": { - "version": "101.0.0-nightly.20210903", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210903.tgz", - "integrity": "sha512-HxvcBKGnhwOe0X0h9MpOWTfXtzDeIr865+p5JmwdgxSa4j1c+4Ou0yk0rW6hIjU8tWsNFMnVkdYD2BzAdXhszg==", + "version": "101.0.0-nightly.20210904", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210904.tgz", + "integrity": "sha512-2AvJhErttuoMvgNcYPPpPy7C12PSvDdtZWtEeX/Otm/Vtf4ePvBpT3UIA00hGAh8HNaGr+dzFNstxTUvjNwZTg==", "bin": { "wasm-opt": "bin/wasm-opt" } @@ -3508,9 +3508,9 @@ "dev": true }, "binaryen": { - "version": "101.0.0-nightly.20210903", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210903.tgz", - "integrity": "sha512-HxvcBKGnhwOe0X0h9MpOWTfXtzDeIr865+p5JmwdgxSa4j1c+4Ou0yk0rW6hIjU8tWsNFMnVkdYD2BzAdXhszg==" + "version": "101.0.0-nightly.20210904", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-101.0.0-nightly.20210904.tgz", + "integrity": "sha512-2AvJhErttuoMvgNcYPPpPy7C12PSvDdtZWtEeX/Otm/Vtf4ePvBpT3UIA00hGAh8HNaGr+dzFNstxTUvjNwZTg==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 2545020a05..194579b8bf 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://github.com/AssemblyScript/assemblyscript/issues" }, "dependencies": { - "binaryen": "101.0.0-nightly.20210903", + "binaryen": "101.0.0-nightly.20210904", "long": "^4.0.0", "source-map-support": "^0.5.19", "ts-node": "^6.2.0" diff --git a/src/module.ts b/src/module.ts index ff50f3c26e..1ee657b283 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2260,7 +2260,9 @@ export class Module { passes.push("remove-unused-module-elements"); // + // --- PassRunner::addDefaultFunctionOptimizationPasses --- - + if (optimizeLevel >= 2) { + passes.push("once-reduction"); + } if (optimizeLevel >= 3 || shrinkLevel >= 1) { passes.push("rse"); passes.push("vacuum"); From 55e920f4ac4e17ab0ba0cf8b452a9ddf1fd97d11 Mon Sep 17 00:00:00 2001 From: MaxGraey Date: Sat, 4 Sep 2021 12:47:14 +0300 Subject: [PATCH 32/32] upd fixtures --- tests/compiler/managed-cast.optimized.wat | 51 +++++++++---------- tests/compiler/std-wasi/console.optimized.wat | 2 +- tests/compiler/std-wasi/crypto.optimized.wat | 1 - tests/compiler/std-wasi/process.optimized.wat | 1 - 4 files changed, 25 insertions(+), 30 deletions(-) diff --git a/tests/compiler/managed-cast.optimized.wat b/tests/compiler/managed-cast.optimized.wat index f9b4bd20f1..ad41c09de9 100644 --- a/tests/compiler/managed-cast.optimized.wat +++ b/tests/compiler/managed-cast.optimized.wat @@ -1470,10 +1470,9 @@ call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1515,10 +1514,9 @@ call $managed-cast/Cat#constructor local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $1 local.get $0 i32.store - local.get $1 + global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1534,25 +1532,25 @@ i32.const 20 i32.sub i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1632 i32.load i32.le_u if loop $do-continue|0 i32.const 1 - local.get $1 + local.get $2 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof drop - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $1 + local.tee $2 br_if $do-continue|0 end end @@ -1605,7 +1603,6 @@ end local.get $1 local.get $0 - local.tee $1 i32.store offset=4 block $__inlined_func$~lib/rt/__instanceof11 (result i32) local.get $0 @@ -1676,25 +1673,25 @@ i32.const 20 i32.sub i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1632 i32.load i32.le_u if loop $do-continue|015 i32.const 1 - local.get $1 + local.get $2 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof14 drop - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $1 + local.tee $2 br_if $do-continue|015 end end @@ -1709,7 +1706,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1717,12 +1714,12 @@ i32.add global.set $~lib/memory/__stack_pointer call $managed-cast/Cat#constructor - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store + local.tee $0 local.get $1 + i32.store + local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -1731,35 +1728,35 @@ i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $0 + local.get $1 if block $__inlined_func$~lib/rt/__instanceof17 (result i32) - local.get $0 + local.get $1 i32.const 20 i32.sub i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1632 i32.load i32.le_u if loop $do-continue|018 i32.const 1 - local.get $1 + local.get $2 i32.const 3 i32.eq br_if $__inlined_func$~lib/rt/__instanceof17 drop - local.get $1 + local.get $2 i32.const 3 i32.shl i32.const 1636 i32.add i32.load offset=4 - local.tee $1 + local.tee $2 br_if $do-continue|018 end end @@ -1776,10 +1773,10 @@ end else i32.const 0 - local.set $0 + local.set $1 end - local.get $2 local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 0377458094..ef33924c32 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -2080,10 +2080,10 @@ local.get $1 local.tee $5 local.tee $4 + local.get $4 i32.const 20 i32.sub i32.load offset=16 - local.get $4 i32.add local.set $1 loop $while-continue|0 diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index c418b046db..9918702766 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -4314,7 +4314,6 @@ local.get $5 i32.store i32.const 6680 - local.get $4 local.get $3 i32.const 8 i32.shl diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index 43a30263c3..6367cbbb29 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -2025,7 +2025,6 @@ local.get $5 i32.store i32.const 1096 - local.get $4 local.get $3 i32.const 8 i32.shl